Перейти к содержанию

External ETCD

Требования к запуску новых кластеров с внешним Etcd

Перед началом установки кластера следует удовлетворить следующие требования:

Заметка

Etcd может быть как в кластерном, так и одиночном исполнении

Заметка

Использовать одну инсталяцию Etcd для 2-х и более кластеров невозможно

  • Работоспособный Etcd
  • Доступ будущего кластера к Etcd

Изменения в установке Управляющего кластера

В файловую систему АРМ администратора нужно скопировать сертификаты для авторизации в Etcd:

  • Корневой сертификат Etcd
  • Клиентский сертификат
  • Ключ клиентского сертификата

Далее дополните конфигурацию для установки параметрами

...
controlPlane:
  etcd:
    caCertificateFile: ${FULL_PATH_ETCD_CA_CERTIFICATE_FILE}
    clientCertificateFile: ${FULL_PATH_ETCD_CLIENT_CERTIFICATE_FILE}
    clientKeyFile: ${FULL_PATH_ETCD_CLIENT_KEY_FILE}
    endpoints:
      - ${ETCD_ENDPOINT_1}
      - ${ETCD_ENDPOINT_2}
      - ${ETCD_ENDPOINT_3}
...
Имя параметра Описание Комментарий
FULL_PATH_ETCD_CA_CERTIFICATE_FILE Абсолютный путь до корневого сертификата
FULL_PATH_ETCD_CLIENT_CERTIFICATE_FILE Абсолютный путь до клиентского сертификата
FULL_PATH_ETCD_CLIENT_KEY_FILE Абсолютный путь до ключа клиентского сертификата
ETCD_ENDPOINT Список Etcd endpoints Формат "https://${ip}:${port}".

Далее используйте стандартную инструкцию установки управляющего кластера.

Изменения в установке Подчинённого кластера

Перед установкой создайте секреты на управляющем кластере

apiVersion: v1
kind: Secret
metadata:
  name: ${SUBCLUSTER_NAME}-etcd
  namespace: ${SUBCLUSTER_NAMESPACE}
data:
  tls.crt: ${SUBCLUSTER_ETCD_CA_CERTIFICATE}
type: Opaque
apiVersion: v1
kind: Secret
metadata:
  name: ${SUBCLUSTER_NAME}-apiserver-etcd-client
  namespace: ${SUBCLUSTER_NAMESPACE}
data:
  tls.crt: ${SUBCLUSTER_ETCD_CLIENT_CERTIFICATE}
  tls.key: ${SUBCLUSTER_ETCD_CLIENT_KEY}
type: Opaque
Имя параметра Описание Комментарий
${SUBCLUSTER_NAME} Имя будущего подчинённого кластера
${SUBCLUSTER_NAMESPACE} Namespace, в котором будет создан подчинённый кластер
${SUBCLUSTER_ETCD_CA_CERTIFICATE} Содержимое корневого сертификата, закодированное в base64
${SUBCLUSTER_ETCD_CLIENT_CERTIFICATE} Содержимое клиентского сертификата, закодированное в base64
${SUBCLUSTER_ETCD_CLIENT_KEY} Содержимое ключа клиентского сертификата, закодированное в base64

Далее в зависимости от метода установки передайте параметр ETCD_ENDPOINTS

Wizard

apiVersion: provisioning.bootsman.tech/v1alpha1
kind: Cluster
metadata:
  name: ${SUBCLUSTER_NAME}
  namespace: ${SUBCLUSTER_NAMESPACE}
spec:
  capiConfig:
    controlPlane:
      etcd:
        endpoints:
          - https://${ETCD_IP_1}:2379
          - https://${ETCD_IP_2}:2379
          - https://${ETCD_IP_3}:2379
. . .