Kubernetes/Kops: как это работает - новый созданный узел, объединяющий кластер

Я работаю с kops для поддержки кластера kubernetes, но немного запутался по поводу того, как он присоединяет новый узел к кластеру.

Во-первых, я думаю, что для настройки кублета в каждом узле в качестве API-сервера следует использовать имя ELB dns. но я не могу найти ничего поддержки.

Затем я обнаружил, что в пользовательских данных нового созданного экземпляра есть некоторые элементы конфигурации для kubelet:

 `kubeconfigPath: /var/lib/kubelet/kubeconfig`

Когда я вхожу в экземпляр и нахожу, что сервер, настроенный в файле kubeconfig, является другим именем DNS вместо моего ELB, попробуйте разрешить его, но не удалось. После попытки применить этот kubeconfig к другому kubelet, он показывает ошибку с: Не удается подключиться к серверу.

Так как же это работает в копях, когда мы добавляем новые узлы? Я не могу найти какой-либо документ..

1 ответ

На самом деле, вы правы. ELB мастеров добавлен в /var/lib/kubelet/kubeconfig каждого узла, и это действительно разрешает его (я проверил это прямо сейчас).

# cat /var/lib/kubelet/kubeconfig
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: ...
    server: https://api.internal.prod.mycluster.com
  name: local
contexts:
- context:
    cluster: local
    user: kubelet
  name: service-account-context
current-context: service-account-context
kind: Config
users:
- name: kubelet
  user:
    client-certificate-data: ...


# ping api.internal.prod.mycluster.com
PING api.internal.prod.mycluster.com (172.28.11.5) 56(84) bytes of data.

Это касается мастеров: вам не нужно перенастраивать узлы, потому что адрес ELB одинаков. Еще проще с узлами: вам нужно только зарегистрировать их.

В любом случае, если вам все еще интересно это - попробуйте найти группу автоматического масштабирования / запустить конфигурацию (данные пользователя):

PS. Не просто верь мне - проверь это.

Другие вопросы по тегам