Что делать с кластером перед присоединением его к федерации v2?

#kubernetes #federation

#kubernetes #федерация

Вопрос:

Я использую федерацию v2. Я установил плоскость управления федерацией и присоединил хост-кластер к федерации. Когда я присоединился ко второму кластеру с помощью приведенного ниже кода

 kubefed2 join federated01 --cluster-context federated01 --host-cluster-context xxxx --add-to-registry --v=2
  

Я получил

 I0420 22:05:19.420250   24789 join.go:184] Failed to get joining cluster config: context "federated01" does not exist
F0420 22:05:19.420269   24789 join.go:133] Error: context "federated01" does not exist
  

Как добавить конфигурацию объединения в кластер? Кто-нибудь может мне помочь?

Ответ №1:

Я предполагаю, что вы должны предоставить сведения о кластере, контексте и аутентификации на плоскости управления федерацией, чтобы присоединиться к новому члену:

Кроме того, для работы с объединенными кластерами на плоскости управления федерацией требуются учетные данные присоединенных кластеров. Эти учетные данные получены из локальной конфигурации kubeconfig. kubefed join использует имя кластера, указанное в качестве аргумента, для поиска контекста кластера в локальной конфигурации kubeconfig. Если ему не удается найти соответствующий контекст, он завершает работу с ошибкой.

Возможно, вы сможете проверить kubeconfig , к какому кластеру вы хотите присоединиться, с помощью команды:

kubectl config view .

Затем вы можете вручную ввести достаточную информацию о кластере в хост-кластер kubeconfig :

kubectl config set-cluster

kubectl config set-context

kubectl config set-credentials

Более подробную информацию о доступе к нескольким кластерам можно найти в соответствующей официальной документации.

Ответ №2:

Понятно, что в конфигурационном файле отсутствует контекст federated01: ~/.kube/config . Контекст требует добавления некоторых других параметров в конфигурацию. И когда контекст будет создан должным образом, вы сможете установить соединение с кластерами с хоста и присоединить их к Федерации.

Давайте подробно рассмотрим, как добавить указанную информацию в конфигурацию. Наиболее универсальным и часто применяемым способом является установление соединения между кластерами через конечную точку API.

В кластере federated01:

  1. Получить конечную точку API кластера federated01, например: https://federated01.example.com/api /

  2. Получите токен доступа к api для кластера federated01, например: eyYNCzwS4F57w

На хост-кластере:

  1. Создайте пользователя, например, kubefed-user1 и добавьте токен в конфигурационный файл:

набор конфигурации kubectl-учетные данные kubefed-user1 —token=’eyYNCzwS4F57w’

  1. Добавьте запись кластера в конфигурацию и сопоставьте с ней конечную точку API:

набор конфигурации kubectl-cluster kubefed-federated01 —server=’https://federated01.example.com/api /’

  1. Наконец, опишите контекст federated01, который был пропущен в вашем случае:

набор конфигурации kubectl-context federated01 —cluster=kubefed-federated01 —user=kubefed-user1 —пространство имен=по умолчанию

  1. Проверьте, доступен ли кластер federated01 или нет из хост-кластера:

kubectl —context federated01 получает узлы

Если вы увидите узлы кластера, это означает, что вы можете присоединить кластер federated01 к Федерации:

kubefedctl присоединяется к федерации01 —v=2 —host-cluster-context xxxx —kubefed-namespace=гггг

Пространство имен гггг — это пространство имен, в котором установлен kubefed. В случае, если официальная документация выглядит довольно сложной, вы можете получить более подробную информацию в этом руководстве, основанном на последней версии KubeFed. В руководстве описаны два типа подключения к кластеру и некоторые другие особенности, которые могут быть полезны при использовании гибридной инфраструктуры.