Изменение типов экземпляров в кластере контейнеров
Некоторые из наших контейнеров работают лучше с памятью выше типа экземпляра, в настоящее время развернутого в нашем кластере контейнеров. Существует ли рекомендуемая практика для восстановления шаблона контейнера контейнера для более крупных экземпляров после создания кластера ядра контейнера?
Например, перейдите из экземпляров GCE с n1-стандартным-2 в n1-highmem-8 для запуска контейнеров с объемом выше 8 ГБ ОЗУ?
Ответы
Ответ 1
перейти от экземпляров GCE от n1-standard-2 до n1-highmem-8 для запуска контейнеров с объемом выше 8 ГБ?
Kubernetes 1.12 (сентябрь 2018) должен предоставить официальный способ управления вашим существующим ресурсом с помощью проблемы кубернетов 21 "Вертикальное масштабирование подстроек" (или " VPA ": вертикальный автосканер ").
Как объявлено в блоге:
Вертикальное масштабирование Pods теперь находится в стадии бета-версии, что позволяет варьировать пределы ресурсов на контейнере за время его существования. В частности, это ценно для домашних животных (то есть стручков, которые очень дорого разрушают и воссоздают).
Предупреждение:
Это приземление около 1.12, но это запуск независимого аддона. Он не включен в релиз 1.12 Kubernetes.
Sig-Architecture в начале этого цикла решила сохранить API VPA как CRD и, таким образом, не привязывать его к какой-либо конкретной версии K8S.
См. Больше в:
![https://banzaicloud.com/img/blog/cluster-autoscaler/vertical-pod-autoscaler.png]()
Последняя статья из BanzaiCloud немного устарела (некоторые ссылки больше не действительны), но она по-прежнему показывает, как вы можете управлять своими ресурсами pod.
Ответ 2
В Container Engine в настоящее время нет API для этого, но поскольку он использует группу экземпляров Compute Engine для узлов вашего кластера, вы можете обновить его без необходимости помощи GKE. В Консоли разработчика скопируйте шаблон экземпляра, который выглядит как "gke--" и измените тип машины в нем, затем отредактируйте аналогично именованный экземпляр для использования нового шаблона. Эти параметры можно найти в Compute > Compute Engine > Instance templates
и Compute > Compute Engine > Instance groups
, соответственно.
Ответ 3
Другой подход:
(1), чтобы создать новый node -pool для кластера GKE с вертикально масштабированными машинами...
$ gcloud container node-pools create pool-n1std2 --zone europe-west1-d --cluster prod-cluster-1 --machine-type n1-standard-2 --image-type gci --disk-size=250 --num-nodes 3
(2), затем перенастройте рабочие нагрузки со старых узлов...
$ kubectl drain gke-prod-cluster-1-default-pool-f1eabad5-9ml5 --delete-local-data --force
(3) и, наконец, удалить старый node -pool
$ gcloud container node-pools delete default-pool --cluster=prod-cluster-1
Примечания:
- Предупреждение: Шаг 2 удаляет node локальные тома, например
emptyDir
!!!
- Шаг 2 необходимо повторить для каждого node в пуле
- Вместо того, чтобы дренировать узлы, можно настроить правильный
nodeSelector
, чтобы запланировать контейнеры в новый пул. Соответствие меток должно быть cloud.google.com/gke-nodepool: pool-n1std2
Ответ 4