Изменение кластера Managed Service for Kubernetes
Для обращения к кластеру Kubernetes используйте его имя или уникальный идентификатор, которые можно узнать с помощью команды:
yc managed-kubernetes cluster list
Результат:
+----------------------+----------+---------------------+---------+---------+-------------------------+-----------------------+
| ID | NAME | CREATED AT | HEALTH | STATUS | EXTERNAL ENDPOINT | INTERNAL ENDPOINT |
+----------------------+----------+---------------------+---------+---------+-------------------------+-----------------------+
| cati493bu7ia******** | k8s-demo | 2019-11-20 11:26:36 | HEALTHY | RUNNING | https://84.201.174.147/ | https://192.168.0.27/ |
+----------------------+----------+---------------------+---------+---------+-------------------------+-----------------------+
Изменить кластер Managed Service for Kubernetes
Важно
Публичный IP-адрес можно назначить только при создании кластера Managed Service for Kubernetes. После этого назначить публичный IP-адрес существующему кластеру невозможно.
Вы можете изменить следующие параметры кластера Managed Service for Kubernetes:
-
Имя.
-
Описание.
-
Конфигурацию ресурсов для мастера.
-
Политику обновлений.
-
Список групп безопасности.
-
Настройки отправки логов в Yandex Cloud Logging.
Внимание
Не удаляйте группы безопасности, привязанные к работающему кластеру Managed Service for Kubernetes: это может привести к нарушению его работы и потере данных.
-
Маску подсети узлов Managed Service for Kubernetes.
Важно
- Если изменить маску подсети для работающего кластера Managed Service for Kubernetes, его блоки CIDR могут быть израсходованы, тогда развертывание подов на новых группах узлов станет невозможным.
- После изменения маски подсети необходимо пересоздать группы узлов кластера.
Инструкция по изменению зоны доступности кластера приведена в разделе Миграция ресурсов Kubernetes в другую зону доступности.
Чтобы изменить кластер Managed Service for Kubernetes:
- Откройте раздел Managed Service for Kubernetes в каталоге, где требуется изменить кластер Managed Service for Kubernetes.
- Нажмите на имя нужного кластера Managed Service for Kubernetes.
- Нажмите кнопку Редактировать в правом верхнем углу.
- В открывшемся окне измените необходимые параметры.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить кластер Managed Service for Kubernetes:
-
Посмотрите описание команды CLI для изменения кластера Managed Service for Kubernetes:
yc managed-kubernetes cluster update --help -
Выполните команду, передав список изменяемых настроек (в примере приведены не все настройки):
yc managed-kubernetes cluster update <имя_кластера_Managed_Service_for_Kubernetes> \ --new-name <новое_имя_кластера_Managed_Service_for_Kubernetes> \ --description <описание_кластера_Managed_Service_for_Kubernetes> \ --service-account-id <идентификатор_сервисного_аккаунта_для_ресурсов> \ --service-account-name <имя_сервисного_аккаунта_для_ресурсов> \ --node-service-account-id <идентификатор_сервисного_аккаунта_для_узлов_Kubernetes> \ --security-group-ids <список_идентификаторов_групп_безопасности> \ --master-logging enabled=<отправка_логов>,` `log-group-id=<идентификатор_лог-группы>,` `folder-id=<идентификатор_каталога>,` `kube-apiserver-enabled=<отправка_логов_kube-apiserver>,` `cluster-autoscaler-enabled=<отправка_логов_cluster-autoscaler>,` `events-enabled=<отправка_событий_Kubernetes>` `audit-enabled=<отправка_событий_аудита>Где:
-
--new-name— имя кластера Managed Service for Kubernetes. -
--description— описание кластера Managed Service for Kubernetes. -
--service-account-id,--service-account-name— сервисный аккаунт для управления кластером Managed Service for Kubernetes. -
--node-service-account-id,--node-service-account-name— сервисный аккаунт для управления узлами Managed Service for Kubernetes. -
--security-group-ids— группы безопасности кластера Managed Service for Kubernetes.Важно
От настройки групп безопасности зависит работоспособность и доступность кластера, а также запущенных в нем сервисов.
-
--master-logging— отправка логов в Cloud Logging:enabled— флаг отправки логов:trueилиfalse.log-group-id— идентификатор лог-группы, в которую нужно отправлять логи.folder-id— идентификатор каталога, в который нужно отправлять логи. Логи будут отправляться в лог-группу каталога по умолчанию.kube-apiserver-enabled— флаг отправки логов kube-apiserver :trueилиfalse.cluster-autoscaler-enabled— флаг отправки логовcluster-autoscaler:trueилиfalse.events-enabled— флаг отправки событий Kubernetes:trueилиfalse.audit-enabled— флаг отправки событий аудита:trueилиfalse.
Если отправка логов включена, но не указаны ни
log-group-id, ниfolder-id, логи будут отправляться в каталог, где находится кластер Managed Service for Kubernetes, в лог-группу по умолчанию. Указывать одновременноlog-group-idиfolder-idнельзя. -
--version— версию Kubernetes. -
--latest-revision— получить все доступные обновления для текущей версии мастера Managed Service for Kubernetes. -
--auto-upgrade— управлять автоматическими обновлениями кластера Managed Service for Kubernetes. -
Управление окном обновлений:
--anytime-maintenance-window— обновлять в любое время.--daily-maintenance-window— обновлять ежедневно в выбранное время.--weekly-maintenance-window— обновлять в выбранные дни.
-
Чтобы изменить кластер Managed Service for Kubernetes:
-
Откройте актуальный конфигурационный файл с описанием кластера Managed Service for Kubernetes.
О том, как создать такой файл, см. в разделе Создание кластера Managed Service for Kubernetes.
-
Измените нужные параметры в описании кластера Managed Service for Kubernetes.
Чтобы изменить настройки отправки логов в Cloud Logging, измените значения параметров в блоке
master_logging. Если такого блока нет — создайте его.resource "yandex_kubernetes_cluster" "<имя_кластера>" { ... master { ... master_logging { enabled = <отправка_логов> log_group_id = "<идентификатор_лог-группы>" folder_id = "<идентификатор_каталога>" kube_apiserver_enabled = <отправка_логов_kube-apiserver> cluster_autoscaler_enabled = <отправка_логов_cluster-autoscaler> events_enabled = <отправка_событий_Kubernetes> audit_enabled = <отправка_событий_аудита> } } }Где:
enabled— флаг отправки логов:trueилиfalse.log_group_id— идентификатор лог-группы, в которую нужно отправлять логи.folder_id— идентификатор каталога, в который нужно отправлять логи. Логи будут отправляться в лог-группу каталога по умолчанию.kube_apiserver_enabled— флаг отправки логов kube-apiserver :trueилиfalse.cluster_autoscaler_enabled— флаг отправки логовcluster-autoscaler:trueилиfalse.events_enabled— флаг отправки событий Kubernetes:trueилиfalse.audit_enabled— флаг отправки событий аудита:trueилиfalse.
Если отправка логов включена, но не указаны ни
log_group_id, ниfolder_id, логи будут отправляться в каталог, где находится кластер Managed Service for Kubernetes, в лог-группу по умолчанию. Указывать одновременноlog_group_idиfolder_idнельзя. -
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на создание и изменение кластера Managed Service for Kubernetes 30 минутами.
Операции, которые длятся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts, например:resource "yandex_kubernetes_cluster" "<имя_кластера>" { ... timeouts { create = "60m" update = "60m" } }Подробнее см. в документации провайдера Terraform.
-
Управлять облачными метками кластера Managed Service for Kubernetes
Вы можете выполнять следующие действия с облачными метками кластера Managed Service for Kubernetes:
Добавить облачную метку
- Откройте раздел Managed Service for Kubernetes в каталоге, где расположен кластер Managed Service for Kubernetes.
- Нажмите на имя нужного кластера Managed Service for Kubernetes.
- Нажмите кнопку Редактировать в правом верхнем углу.
- В поле Метки нажмите Добавить метку.
- Введите ключ и значение и нажмите Enter.
- Нажмите кнопку Сохранить.
Выполните команду:
yc managed-kubernetes cluster add-labels k8s-demo --labels new_label=test_label
Результат:
done (1s)
id: abcd123ef4gh********
folder_id: l1m01nopqr1s********
...
description: My test Kubernetes cluster
labels:
new_label: test_label
...
Изменить облачную метку
Чтобы изменить облачную метку, потребуется удалить ее и создать заново:
- Откройте раздел Managed Service for Kubernetes в каталоге, где расположен кластер Managed Service for Kubernetes.
- Нажмите на имя нужного кластера Managed Service for Kubernetes.
- Нажмите кнопку Редактировать в правом верхнем углу.
- В поле Метки нажмите на крестик рядом с нужной меткой, чтобы удалить ее.
- Нажмите Добавить метку и введите ключ и/или значение новой метки.
- Нажмите Enter, а затем — Сохранить.
Выполните команду:
yc managed-kubernetes cluster update k8s-demo --labels test_label=my_k8s_label
Важно
Существующий набор меток (labels) полностью перезаписывается набором, переданным в запросе.
Результат:
done (1s)
id: abcd123ef4gh********
folder_id: l1m01nopqr1s********
...
description: My test Kubernetes cluster
labels:
test_label: my_k8s_label
...
Удалить облачную метку
- Откройте раздел Managed Service for Kubernetes в каталоге, где расположен кластер Managed Service for Kubernetes.
- Нажмите на имя нужного кластера Managed Service for Kubernetes.
- Нажмите кнопку Редактировать в правом верхнем углу.
- В поле Метки нажмите на крестик рядом с нужной меткой.
- Нажмите кнопку Сохранить.
Выполните команду:
yc managed-kubernetes cluster remove-labels k8s-demo --labels test_label
Результат:
done (1s)
id: cati493bu7ia********
folder_id: b1g88tflru0e********
created_at: "2019-11-20T11:26:36Z"
name: k8s-demo
...
Изменить конфигурацию ресурсов мастера
Примечание
Функциональность выбора и изменения конфигурации мастера находится на стадии Preview.
-
Откройте раздел Managed Service for Kubernetes в каталоге, где требуется изменить кластер Managed Service for Kubernetes.
-
Нажмите на имя нужного кластера Managed Service for Kubernetes.
-
Нажмите кнопку Редактировать в правом верхнем углу.
-
В блоке Конфигурация мастера раскройте секцию Вычислительные ресурсы и выберите конфигурацию ресурсов для мастера.
Выбранная конфигурация задает минимальные значения ресурсов для мастера. В зависимости от нагрузки объем RAM и количество vCPU мастера будут автоматически увеличиваться.
По умолчанию для работы одного хоста мастера предоставляются следующие ресурсы:
- платформа — Intel Cascade Lake;
- гарантированная доля vCPU — 100%;
- количество vCPU — 2;
- объем RAM — 8 ГБ.
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Укажите нужную конфигурацию ресурсов мастера в команде изменения кластера:
yc managed-kubernetes cluster update <имя_кластера_Managed_Service_for_Kubernetes> \
--master-scale-policy policy=auto,min-resource-preset-id=<класс_хостов_мастера>
Выбранная конфигурация задает минимальные значения ресурсов для мастера. В зависимости от нагрузки объем RAM и количество vCPU мастера будут автоматически увеличиваться.
Результат:
done (1s)
id: abcd123ef4gh********
folder_id: l1m01nopqr1s********
...
description: My test Kubernetes cluster
master:
scale_policy:
auto_scale:
min_resource_preset_id: <класс_хостов_мастера>
...
-
Откройте актуальный конфигурационный файл с описанием кластера Managed Service for Kubernetes.
О том, как создать такой файл, см. в разделе Создание кластера Managed Service for Kubernetes.
-
Добавьте или измените в описании кластера Managed Service for Kubernetes конфигурацию вычислительных ресурсов мастера в блоке
scale_policy:resource "yandex_kubernetes_cluster" "<имя_кластера>" { ... master { ... scale_policy { auto_scale { min_resource_preset_id = "<класс_хостов_мастера>" } } } }Выбранная конфигурация задает минимальные значения ресурсов для мастера. В зависимости от нагрузки объем RAM и количество vCPU мастера будут автоматически увеличиваться.
-
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на создание и изменение кластера Managed Service for Kubernetes 30 минутами.
Операции, которые длятся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts, например:resource "yandex_kubernetes_cluster" "<имя_кластера>" { ... timeouts { create = "60m" update = "60m" } }Подробнее см. в документации провайдера Terraform.
-
Чтобы изменить конфигурацию ресурсов мастера, воспользуйтесь методом Update для ресурса Cluster и передайте в запросе параметр masterSpec.scalePolicy.autoScale.minResourcePresetId.
Выбранная конфигурация задает минимальные значения ресурсов для мастера. В зависимости от нагрузки объем RAM и количество vCPU мастера будут автоматически увеличиваться.