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. Не просто верь мне - проверь это.