• Русский
  • Импорт стандартного кластера Kubernetes

    Поддерживается интеграция стандартных нативных Kubernetes кластеров, развернутых с помощью kubeadm, в платформу для единого управления.

    Содержание

    Терминология

    ТерминОписание
    Managed Kubernetes ClusterТип Kubernetes кластера, предоставляемого облачными провайдерами, где Master-ноды и их компоненты управляются провайдером. Пользователи не могут войти или управлять Master-нодами.
    Unmanaged Kubernetes ClusterВ отличие от этого, некоторые облачные провайдеры предоставляют кластеры, где пользователи управляют Master-нодами, например Alibaba Cloud ACK Dedicated Edition или Tencent Cloud TKE Independent Cluster.

    Предварительные требования

    Примечания

    По умолчанию платформа мониторит трафик NIC, соответствующий шаблону eth.*|en.*|wl.*|ww.*. Если у вашего NIC другая схема именования, обновите конфигурацию после интеграции согласно [Custom NIC Monitoring].

    Получение адреса реестра

    • Чтобы использовать реестр, развернутый платформой при установке глобального кластера, выполните на глобальном управляющем узле:

      if [ "$(kubectl get productbase -o jsonpath='{.items[].spec.registry.preferPlatformURL}')" = 'false' ]; then
          REGISTRY=$(kubectl get cm -n kube-public global-info -o jsonpath='{.data.registryAddress}')
      else
          REGISTRY=$(kubectl get cm -n kube-public global-info -o jsonpath='{.data.platformURL}' | awk -F // '{print $NF}')
      fi
      echo "Registry address: $REGISTRY"
    • Чтобы использовать внешний реестр, задайте REGISTRY вручную:

      REGISTRY=<external-registry-address>  # например, registry.example.cn:60080 или 192.168.134.43
      echo "Registry address: $REGISTRY"

    Проверка необходимости дополнительной конфигурации реестра

    1. Выполните проверку поддержки HTTPS с доверенным сертификатом CA:

      REGISTRY=<registry-address-from-previous-step>
      
      if curl -s -o /dev/null --retry 3 --retry-delay 5 -- "https://${REGISTRY}/v2/"; then
          echo 'Pass: Registry uses a trusted CA certificate. No extra config needed.'
      else
          echo 'Fail: Registry does not support HTTPS or uses an untrusted certificate. Follow "Trust Insecure Registry".'
      fi
    2. Если проверка не пройдена, смотрите Как доверять небезопасному реестру?

    Получение информации о кластере

    См. Как получить информацию о кластере?.

    Интеграция кластера

    1. В левом меню перейдите в Cluster Management > Clusters.

    2. Нажмите Import Cluster.

    3. Настройте параметры следующим образом:

      ПараметрОписание
      RegistryРеестр, в котором хранятся необходимые образы компонентов платформы. Варианты: Platform Default (настроен при глобальной установке), Private Registry (требуются адрес, порт, имя пользователя, пароль), Public Registry (требуется обновление учетных данных облака).
      Cluster InfoМожно ввести вручную или распарсить из файла KubeConfig. Обязательные поля: Cluster Address, CA Certificate (Base64-декодированный при ручном вводе) и Authentication (токен или клиентский сертификат с правами cluster-admin).
    4. Нажмите Check Connectivity. Платформа проверит сетевой доступ и автоматически определит тип кластера.

    5. Если проверка успешна, нажмите Import для завершения.

      Прогресс можно отслеживать через диалоговое окно execution progress (status.conditions). После интеграции кластер отображается в списке как здоровый.

    Сетевая конфигурация

    Обеспечьте сетевое соединение между глобальным кластером и импортированным кластером.

    FAQ

    Почему кнопка «Add Node» отключена?

    Для управляемых и неуправляемых кластеров добавление узлов через UI платформы не поддерживается. Добавляйте узлы напрямую или через провайдера.

    Какие сертификаты поддерживаются?

    1. Сертификаты Kubernetes: можно просматривать только сертификаты API Server; другие сертификаты не поддерживаются и не будут автоматически обновляться.
    2. Сертификаты компонентов платформы: доступны для просмотра и автоматического обновления.

    Какие функции не поддерживаются?

    • Управляемые кластеры: отсутствует аудит логов.
    • Управляемые кластеры: мониторинг ETCD, Scheduler, Controller Manager не поддерживается (доступны только метрики API Server).
    • Все кластеры: сертификаты, кроме API Server, не поддерживаются.

    Как исправить сбои развертывания распределенного хранилища из-за runtime Containerd?

    При использовании Containerd развертывание распределенного хранилища не удается, если не настроить Containerd на всех узлах:

    1. Отредактируйте /etc/systemd/system/containerd.service, установите LimitNOFILE=1048576.
    2. Выполните systemctl daemon-reload.
    3. Перезапустите Containerd: systemctl restart containerd.
    4. На управляющих узлах перезапустите поды распределенного хранилища:
      kubectl delete pod --all -n rook-ceph