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

Добавление внешнего Kubernetes-кластера

Внешний кластер — это Kubernetes-кластер, созданный вне платформы Боцман и не управляемый ею.

Платформа Боцман позволяет добавить и управлять таким кластером и его объектами из Web-интерфейса.

Для добавление внешнего kubernetes-кластера под управление Платформой выполните действия по этой инструкции:

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

  • Аккаунт администратора платформы.
  • Сетевая доступность: из внешнего кластера должен быть доступен Web-интерфейс платформы.

Шаг 1. Создание API-ключа

1. Перейдите в меню АккаунтAPI ключи.

2. Нажмите кнопку Создать API ключ и укажите срок действия (TTL) 1 день.

Меню создания API-ключа
Меню создания API-ключа

Создание API-ключа Создание API-ключа

3. Скопируйте и сохраните Bearer Token.

Bearer Token Bearer Token

Шаг 2. Регистрация кластера

export BOOTSMAN_WEB=https://WEB_PANEL_URL # (1)
export TOKEN='token_xxxxx:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy' # (2)
export CLUSTER_NAME=my_imported_cluster # (3)

CLUSTER_ID=$(curl -sk -X POST "$BOOTSMAN_WEB/v3/clusters" \
      -H "Authorization: Bearer $TOKEN" \
      -H 'Content-Type: application/json' \
      -d "{
            \"type\": \"cluster\",
            \"name\": \"$CLUSTER_NAME\",
            \"dockerRootDir\": \"/var/lib/docker\",
            \"enableNetworkPolicy\": false,
            \"enableClusterAlerting\": false,
            \"enableClusterMonitoring\": false
          }" | jq -r '.id')

    echo "cluster id: $CLUSTER_ID"


curl -sk -X POST "$BOOTSMAN_WEB/v3/clusterregistrationtokens" \
      -H "Authorization: Bearer $TOKEN" \
      -H 'Content-Type: application/json' \
      -d "{\"type\":\"clusterRegistrationToken\",\"clusterId\":\"$CLUSTER_ID\"}" \
      | jq '{manifestUrl, command, insecureCommand, nodeCommand, token}'


MANIFEST=$(curl -sk "$BOOTSMAN_WEB/v3/clusterregistrationtokens?clusterId=$CLUSTER_ID" \
      -H "Authorization: Bearer $TOKEN" | jq -r '.data[0].manifestUrl')

kubectl apply -f "$MANIFEST"

# Для регистрации без проверки TLS-сертификата
# curl -k -O $MANIFEST
# kubectl apply -f $(echo $MANIFEST | awk -F'/' '{print $NF}')
  1. Полный URL Web-интерфейса платформы (не внешнего кластера).
  2. Bearer Token, созданный на шаге 1.
  3. Имя, под которым кластер будет отображаться в платформе.