Это ожидаемое поведение, потому что kubespray не создает ASG, которые являются ресурсами, специфичными для AWS.Можно заметить, что kubespray работает только с существующими машинами;в репо они предлагают игрушки-терраформы для предоставления машин, но сам kubespray не входит в этот бизнес.
У вас есть несколько вариантов:
Пост-подготовка с использованием scale.yml
- Предоставление нового узла с использованием вашего любимого механизма
- Создайте файл инвентаризации, содержащий его, и машины
etcd
(предположительно, чтобы kubespray мог выдавать etcdсертификаты для нового узла - Вызовите
scale.yml
playbook
Вы можете наслаждаться AWX в поддержку этого.
Использование обычного kubeadm join
Это механизм, который я использую для своих кластеров, FWIW
Создание токена соединения kubeadm с помощью kubeadm token create --ttl 0
(или любой другой TTL, который вам удобнее использовать)
Вам нужно будет сделать это только один раз или, возможно, один раз для ASG, в зависимости от ваших допусков безопасности
Используйте механизм cloud-init , чтобы гарантировать, что docker
, kubeadm
и * 10На компьютере имеется 48 * двоичных файлов
Вы также можете использовать AMI для этого, если вам нравится создавать AMI
- Затем вызовите
kubeadm join
, как описано здесь:https://kubernetes.io/docs/setup/independent/high-availability/#install-workers
Использование контроллера машины
Существует множество компонентов "контроллера машины" , которые нацелены на использование пользовательских контроллеров в Kubernetes для управления пулами узловдекларативно.У меня нет опыта с ними, но я верю, что они работают.Эта ссылка была только первой, которая пришла на ум, но есть и другие
У наших друзей в Kubedex есть целая страница, посвященная этому вопросу