Стадия жизненного цикла модуля: General Availability
Как поднять кластер
- Настройте облачное окружение.
- Включите модуль или передайте флаг
--extra-config-map-data base64_encoding_of_custom_configс параметрами модуля в скрипт установкиinstall.sh. - Создайте один или несколько custom resource GCPInstanceClass.
- Создайте один или несколько custom resource NodeGroup для управления количеством и процессом заказа машин в облаке.
Добавление CloudStatic узлов в кластер
К виртуальным машинам, которые вы хотите добавить к кластеру в качестве узлов, добавьте Network Tag, аналогичный префиксу кластера.
Префикс кластера можно узнать, воспользовавшись следующей командой:
d8 k -n kube-system get secret d8-cluster-configuration -o json | jq -r '.data."cluster-configuration.yaml"' \
| base64 -d | grep prefix
Как создать прерываемые узлы в GCP?
Прерываемые виртуальные машины в Google Cloud называются preemptible-инстансами. Чтобы группа узлов заказывала их, установите параметр preemptible ресурса GCPInstanceClass в true.
Пример:
apiVersion: deckhouse.io/v1
kind: GCPInstanceClass
metadata:
name: worker-preempt
spec:
machineType: n1-standard-4
diskSizeGb: 30
preemptible: true
---
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
name: worker-preempt
spec:
nodeType: CloudEphemeral
cloudInstances:
classReference:
kind: GCPInstanceClass
name: worker-preempt
minPerZone: 2
maxPerZone: 4
zones:
- europe-west4-a
Вместе с этим параметром Deckhouse Platform (DP) отключает автоматический перезапуск виртуальной машины и задаёт её остановку при обслуживании хоста.
Ограничения прерываемых узлов в GCP
Учитывайте следующие ограничения:
- Параметр
preemptibleдействует только для групп узлов типа CloudEphemeral, потому что GCPInstanceClass применяется только к ним. - DP не отслеживает уведомления Google Cloud о предстоящем прерывании и не выполняет drain узла заранее. Когда Google Cloud останавливает инстанс, узел переходит в состояние
NotReady, а группа заказывает новый узел взамен прерванного. До этого момента поды остановленного узла могут отображаться в Kubernetes API в состоянииRunning, хотя они уже недоступны. - Размещайте на прерываемых узлах только ту нагрузку, которая переносит внезапную потерю узла.
Изменение параметра preemptible в существующем GCPInstanceClass приводит к пересозданию всех узлов соответствующей группы.