Skip to content

Установка инфраструктуры 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

  1. Войдите в KubeSphere UI (временно по IP:30880)
  2. PlatformCluster SettingsGateway Settings
  3. Включите gateway без дополнительных настроек
  4. Запомните порт, который назначил 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

Верификация системы

Проверка доступности сервисов

После полной установки проверьте доступность:

  1. KubeSphere UI: http://kubesphere.lakehouse.company.local
  2. Логин: admin, Пароль: P@88w0rd (или ваш пароль)

  3. ArgoCD UI: http://argocd.lakehouse.company.local

  4. Логин: 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. ```