Мы настроили кластер Kubernetes на машинах EC2 в нашей учетной записи AWS с помощью инструмента kops (https://github.com/kubernetes/kops) и на основе сообщений AWS (https://aws.amazon.com/blogs/compute/kubernetes-clusters-aws-kops/), а также другие ресурсы.
Мы хотим настроить кластер мастера и подчиненных устройств K8s таким образом, чтобы:
- Он будет автоматически изменять размер (как главных, так и узлов / подчиненных) в зависимости от загрузки системы.
- Работает в режиме Multi-AZ, т. Е. По крайней мере один ведущий и один ведомый в каждой AZ (зоне доступности) в одном регионе, например, для us-east-1a, us-east-1b, us-east-1c и т. д.
Мы пытались настроить кластер следующими способами, чтобы добиться вышеизложенного.
Создан кластер K8s на машинах AWS EC2, используя следующую конфигурацию kops: количество узлов = 3, количество мастеров = 3, зоны = us-east-1c, us-east-1b, us-east-1a. Мы заметили, что кластер K8s был создан с 3 ведущими и 3 ведомыми узлами. Каждый из главного и подчиненного серверов находился в каждой из 3 зон доступности.
Затем мы попытались изменить размер узлов / ведомых устройств в кластере, используя (https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-run-on-master.yaml). Мы установили node_asg_min на 3 и node_asg_max на 5. Когда мы увеличили рабочую нагрузку на ведомые устройства таким образом, что сработала политика автоматического масштабирования, мы увидели, что были созданы дополнительные (после 3 по умолчанию, созданных во время установки) ведомые узлы, и они действительно присоединились к кластер в различных АЗ. Это сработало, как и ожидалось. Здесь нет вопросов.
Мы также хотели настроить кластер таким образом, чтобы количество мастеров увеличивалось в зависимости от нагрузки на систему. Есть ли способ добиться этого? Мы попробовали несколько подходов, и результаты представлены ниже:
A) Мы не были уверены, поможет ли здесь автоматическое масштабирование кластера, но тем не менее попытались изменить размер мастеров в кластере, используя (https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-run-on-master.yaml). Это полезно при создании нового кластера, но бесполезно для изменения размера мастеров в существующем кластере. Мы не нашли параметр для указания node_asg_min, node_asg_max для Master так, как он присутствует для подчиненных узлов. Есть ли способ добиться этого?
B) Мы увеличили количество MIN с 1 до 3 в ASG (группа автоматического масштабирования), связанном с одним или тремя IG (группой экземпляров) для каждого мастера. Мы обнаружили, что были созданы новые экземпляры. Однако они не присоединились к главному кластеру. Есть ли способ добиться этого?
Не могли бы вы указать нам шаги и ресурсы о том, как это сделать правильно, чтобы мы могли настроить количество мастеров для автоматического изменения размера в зависимости от загрузки системы и в режиме нескольких зон доступности?
С уважением, Шаши