Установка инфраструктуры LakeHouse
Общая архитектура
Полный стек установки:
Kubernetes Cluster
├── KubeSphere (UI + DevOps)
├── ArgoCD (GitOps)
├── NGINX Ingress
├── Vault (секреты)
├── Платформа LakeHouse
└── Тенанты LakeHouse
Установка KubeSphere
Предварительные требования
- Kubernetes кластер версии 1.24+
- Минимум 8 CPU, 16GB RAM, 100GB storage
- Доступ к container registry:
registry.company.local - Настроенный StorageClass (например,
local-path)
Установка KubeSphere Installer
Скачайте манифест:
wget https://git.company.local/platform/kubernetes/-/raw/master/roles/k8s_master/files/kubesphere-installer.yaml
Измените образ installer в манифесте:
# В файле kubesphere-installer.yaml найдите и замените:
spec:
template:
spec:
containers:
- name: installer
image: registry.company.local/platform/kubesphere/ks-installer:v3.4.1
Примените манифест:
kubectl apply -f kubesphere-installer.yaml
Проверьте установку:
kubectl get pods -n kubesphere-system
# Должен быть pod ks-installer-*
Настройка конфигурации KubeSphere
Скачайте конфигурационный файл:
wget https://git.company.local/platform/kubernetes/-/raw/master/roles/k8s_master/files/cluster-configuration.yaml
Настройте основные параметры:
apiVersion: installer.kubesphere.io/v1alpha1
kind: ClusterConfiguration
metadata:
name: ks-installer
namespace: kubesphere-system
spec:
persistence:
storageClass: "local-path" # Ваш StorageClass
authentication:
# adminPassword: "YourSecurePassword123!!!" # Раскомментируйте для своего пароля
common:
openldap:
enabled: true # Использовать внешний LDAP
local_registry: "registry.company.local/platform" # Ваш registry
devops:
enabled: true # ВКЛЮЧИТЬ DevOps компонент
monitoring:
enabled: true
alerting:
enabled: true
Примените конфигурацию:
kubectl apply -f cluster-configuration.yaml
Мониторинг установки KubeSphere
Проверяйте логи установки:
kubectl logs -n kubesphere-system deployment/ks-installer -f
Установка может занять 20-40 минут. В конце вы должны увидеть:
#####################################################
### Welcome to KubeSphere! ###
#####################################################
Решение проблем с DevOps (s2i)
Если DevOps компонент не устанавливается из-за сертификатов:
Скачайте и примените патч:
# Скачайте патч
wget https://github.com/kubesphere/ks-devops/releases/download/v3.4.1-231116/update-s2i-cert.tar.gz
# Распакуйте и примените
tar -zxvf update-s2i-cert.tar.gz
cd update-s2i-cert
./update-s2i-cert.sh
Обновите ks-installer:
kubectl -n kubesphere-system patch deployment ks-installer --type='json' \
-p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value": "registry.company.local/platform/kubesphere/ks-installer:v3.4.1-patch.0"}]'
Перезапустите установку:
kubectl delete pod -n kubesphere-system -l app=ks-installer
Настройка ArgoCD
Подготовка к обновлению ArgoCD
KubeSphere устанавливает старую версию ArgoCD, которую необходимо обновить.
Получите список CRD ArgoCD:
kubectl get crd | grep argo
Должны отобразиться:
- applications.argoproj.io
- applicationsets.argoproj.io
- appprojects.argoproj.io
- argocdextensions.argoproj.io
Обновление labels и annotations CRD
Для каждого CRD необходимо добавить метки и аннотации:
# Пример для applications.argoproj.io
kubectl patch crd applications.argoproj.io --type='merge' \
-p '{
"metadata": {
"labels": {
"app.kubernetes.io/name": "argocd-applications",
"helm.sh/chart": "argo-cd-5.0.0"
},
"annotations": {
"meta.helm.sh/release-name": "argocd",
"meta.helm.sh/release-namespace": "argocd"
}
}
}'
Повторите для всех CRD ArgoCD из списка выше.
Установка/обновление ArgoCD
Клонируйте репозиторий ArgoCD:
git clone https://git.company.local/platform/argocd.git
cd argocd
Настройте values.yaml:
# argo/argo-cd/values.yaml
global:
domain: "argocd.lakehouse-rnd.bd-cloud.company.local" # Ваш домен
server:
ingress:
enabled: true
hostname: "argocd.lakehouse-rnd.bd-cloud.company.local" # Ваш домен
annotations:
kubernetes.io/ingress.class: nginx
Установите ArgoCD:
helm upgrade --install argocd argo/argo-cd -n argocd -f argo/argo-cd/values.yaml
Настройка сертификатов ArgoCD
Если ArgoCD не доверяет корпоративным сертификатам:
Добавьте корневые сертификаты в конфигурацию ArgoCD через ConfigMap или обновите trust store в подах.
Настройка NGINX Ingress
Базовая настройка NGINX
Файл: /etc/nginx/nginx.conf
http {
# Map для WebSocket соединений
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
# Server для KubeSphere UI
server {
listen 80;
server_name kubesphere.lakehouse.company.local; # Ваш домен
location / {
proxy_pass http://<IP_ноды>:30880; # IP вашей ноды Kubernetes
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
proxy_read_timeout 86400;
}
}
}
Включение Gateway в KubeSphere
- Войдите в KubeSphere UI (временно по IP:30880)
- Platform → Cluster Settings → Gateway Settings
- Включите gateway без дополнительных настроек
- Запомните порт, который назначил KubeSphere
Настройка NGINX для всех сервисов
Обновите /etc/nginx/nginx.conf:
server {
listen 80;
server_name *.lakehouse-rnd.bd-cloud.company.local; # Wildcard для всех поддоменов
location / {
proxy_pass http://<IP_ноды>:<PORT_из_KubeSphere>; # Порт из Gateway
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
proxy_read_timeout 86400;
}
}
Перезапустите NGINX:
nginx -t && systemctl reload nginx
Верификация системы
Проверка доступности сервисов
После полной установки проверьте доступность:
- KubeSphere UI:
http://kubesphere.lakehouse.company.local -
Логин:
admin, Пароль:P@88w0rd(или ваш пароль) -
ArgoCD UI:
http://argocd.lakehouse.company.local - Логин:
admin, Пароль:password
Внимание: Обязательным шагом является смена паролей или настройка интеграции с Keycloak
Проверка через командную строку
# Проверка статуса всех компонентов
kubectl get pods -A
# Проверка Ingress
kubectl get ingress -A
# Проверка сервисов
kubectl get services -A
Решение общих проблем
KubeSphere не устанавливается
- Проверьте ресурсы кластера
- Убедитесь в доступности container registry
- Проверьте логи ks-installer
NGINX не проксирует трафик
- Проверьте правильность IP ноды и порта
- Убедитесь, что Gateway включен в KubeSphere
- Проверьте firewall правила
ArgoCD не обновляется
- Убедитесь, что обновлены все CRD
- Проверьте версию Helm chart
- Проверьте логи ArgoCD server
Сертификатные ошибки
- Добавьте корневые сертификаты в trust store
- Для тестового окружения можно отключить проверку SSL
Дальнейшие шаги
После успешной установки KubeSphere и настройки инфраструктуры переходите к установке платформы LakeHouse.
Для вопросов и поддержки обращайтесь к команде платформы MWS Data. ```