Операции с классическим кластером#

Внимание

В данном разделе описывается работа с предыдущей версий кластеров Kubernetes в К2 Облаке. Эта версия не поддерживает автоматически масштабируемые группы рабочих узлов и не будет дальше развиваться. Мы настоятельно рекомендуем вам использовать EKS-кластеры при создании новых кластеров Kubernetes.

В веб-интерфейсе сервиса Кластеры Kubernetes можно выполнять следующие действия:

Создание кластера#

Создание кластера можно разделить на две части: создание инфраструктуры и установка кластера. Создание инфраструктуры заключается в создании нужного количества экземпляров заданной конфигурации из подготовленного образа. После успешного старта экземпляров запускается процесс установки кластера. При успешном завершении установки статус кластера изменяется на Запущен.

Кластер со статусом Запущен считается готовым к эксплуатации. Любой другой статус кластера говорит о незавершённом процессе его создания. Дополнительными сервисами считаются Ingress-контроллер, Docker registry и EBS-провайдер. Создание кластера включает в себя создание экземпляров, установку в них компонентов Kubernetes и опциональную установку дополнительных сервисов. При создании кластера с дополнительными сервисами статус Запущен говорит и об их успешной установке.

К2 Облако упрощает использование Kubernetes и позволяет развернуть всю инфраструктуру для кластера нажатием одной кнопки. Чтобы создать кластер Kubernetes, перейдите в раздел Кластеры Kubernetes Кластеры, нажмите на стрелку вниз рядом с кнопкой Создать и выберите Создать кластер.

На первом шаге создания кластера задайте необходимые параметры:

  • Имя.

  • Версию Kubernetes, которая будет установлена на все узлы.

  • VPC, в которой будет создан кластер.

  • Опцию Отказоустойчивый кластер. В случае выбора этой опции будет запущен отказоустойчивый кластер, состоящий из трёх узлов, размещённых в трёх зонах доступности или группе размещения в рамках одной зоны доступности. При выходе из строя любого из них кластер продолжит функционировать на оставшихся узлах.

  • Опцию Автообновление сертификатов. В случае выбора этой опции сертификаты, необходимые для работы кластера Kubernetes, будут обновляться автоматически.

  • Адрес подсети для подов. Вы можете указать блок IP-адресов в нотации CIDR (X.X.X.X/Y), который будет выделен для подсети подов. Если вы не укажете этот параметр, будет выделен диапазон IP-адресов по умолчанию.

  • Адрес подсети для сервисов. Вы можете указать блок IP-адресов в нотации CIDR (X.X.X.X/Y), который будет выделен для подсети сервисов. Если вы не укажете этот параметр, будет выделен диапазон IP-адресов по умолчанию.

На втором шаге задайте параметры сети, необходимые для работы кластера:

  • Подсети, в которых будет создан кластер.

  • SSH-ключ для подключения к кластеру.

  • Группы безопасности для регулирования трафика на интерфейсах экземпляров в подсети.

  • Опцию Назначить Elastic IP для API-сервера. В случае выбора опции мастер-узлу будет назначен Elastic IP для внешнего доступа к API-серверу кластера.

На третьем шаге выберите конфигурацию мастер-узла, на котором будут размещены служебные приложения, необходимые для работы кластера. Эта конфигурация будет применяться ко всем мастер-узлам при выборе опции Отказоустойчивый кластер. Для экземпляра укажите тип, а для диска — тип, размер и IOPS (если это возможно для данного типа).

Примечание

Компоненты мастер-узла чувствительны к производительности. Рекомендуем использовать диски с высокой производительностью gp2: Универсальный (SSD), io2: Максимальный (SSD)

На четвёртом шаге необходимо указать конфигурацию рабочих узлов, где будут выполняться пользовательские задачи. Укажите необходимое количество рабочих узлов, тип экземпляра и характеристики диска: тип, размер и IOPS (если это доступно для данного типа). В случае выбора опции Использовать группы размещения будут созданы группы размещения, в которых затем будут запускаться экземпляры для рабочих узлов кластера.

На пятом шаге вы можете выбрать дополнительные сервисы, которые будут установлены в кластер:

  • Ingress controller для маршрутизации запросов. Для данного сервиса можно выбрать опцию Назначить Elastic IP для Ingress-controller.

  • Docker registry, для которого нужно задать параметры диска (тип, размер, IOPS), в котором будут храниться образы ваших контейнеров.

  • EBS-провайдер, в котором нужно выбрать учётную запись пользователя К2 Облака для управления дисками.

На последнем шаге вы можете указать пользовательские данные, описывающие операции, которые автоматически выполнятся при создании узлов кластера. С помощью пользовательских данных можно, например, устанавливать пакеты, создавать и изменять файлы, исполнять shell-скрипты. Для добавления пользовательских данных в форме нужно указать:

  • Тип пользовательских данных. На данный момент поддерживаются два типа пользовательских данных: x-shellscript и cloud-config.

  • Пользовательские данные. При выборе типа x-shellscript добавьте в это поле свой shell-скрипт. При выборе типа cloud-config добавьте в это поле конфигурацию для cloud-config в формате YAML. Примеры действий, выполняемых cloud-config, и соответствующих конфигураций можно найти в официальной документации cloud-init.

Указанные пользовательские данные будут применены ко всем узлам кластера.

После выполнения предыдущих шагов нажмите Создать.

Примечание

Процесс создания кластера Kubernetes может занять от 5 до 15 минут.

При создании кластера дополнительно устанавливается приложение Cluster-manager, необходимое для корректной работы мониторинга и изменения количества рабочих узлов в кластере. Его удаление может повлечь некорректную работу сервиса Кластеры Kubernetes с кластером, из которого приложение будет удалено.

Для корректной работы кластера при его создании автоматически создаётся новая группа безопасности. В группу будут добавлены следующие правила:

  • разрешающее входящий трафик от интерфейсов, находящихся в этой же группе безопасности;

  • разрешающее весь исходящий IPv4-трафик.

В случае удаления кластера группа безопасности будет удалена.

Варианты размещения узлов кластера#

При выборе опции Отказоустойчивый кластер возможны следующие варианты размещения узлов кластера:

  • Выбрано размещение в трёх зонах доступности, на шаге выбора конфигурации рабочих узлов задан флаг Использовать группы размещения. Эта комбинация гарантирует размещение узлов на разных вычислительных узлах в каждой из зон доступности.

  • Выбрано размещение в трёх зонах доступности, на шаге выбора конфигурации рабочих узлов флаг Использовать группы размещения не задан. В этой комбинации мастер-узлы и рабочие узлы будут распределены по трём зонам доступности, но распределение рабочих узлов по разным вычислительным узлам внутри зоны доступности не гарантируется.

  • Выбрано размещение в одной зоне доступности, а на шаге выбора конфигурации рабочих узлов задан флаг Использовать группы размещения. Эта комбинация гарантирует размещение узлов на разных вычислительных узлах в одной зоне доступности, но их распределение происходит независимо друг от друга. Поэтому мастер-узел может оказаться на одном вычислительном узле с рабочим узлом.

  • Выбрано размещение в одной зоне доступности, на шаге выбора конфигурации рабочих узлов флаг Использовать группы размещения не задан. В этой комбинации мастер-узлы размещаются на разных вычислительных узлах в одной зоне доступности, но распределение рабочих узлов по разным вычислительным узлам внутри зоны доступности не гарантируется.

Изменение параметров кластера#

Изменить количество рабочих узлов в кластере#

При необходимости вы можете изменить количество рабочих узлов кластера. Для этого перейдите на страницу кластера и отредактируйте поле Количество рабочих узлов на вкладке Информация. В открывшемся окне вы можете указать количество добавляемых или удаляемых рабочих узлов, а также изменить тип экземпляра для добавляемых узлов, если необходимо. При изменении типа экземпляра он останется прежним у имеющихся рабочих узлов.

При увеличении количества рабочих узлов создаётся новый экземпляр, на него устанавливаются необходимые компоненты кластера, а кластер переконфигурируется для добавления нового узла. Во время этого процесса кластер находится в состоянии Не готов. После успешного окончания этого процесса кластер перейдёт в состояние Готов.

При уменьшении количества рабочих узлов в первую очередь удаляются узлы, которые были запущены первыми. Желаемое количество узлов переводится в режим обслуживания и затем удаляется из кластера средствами Kubernetes API. После этого удаляются освобождённые экземпляры. Во время этого процесса кластер находится в состоянии Не готов. После успешного окончания этого процесса кластер переходит в состояние Готов.

Примечание

Если вы хотите гарантированно избежать удаления определённого рабочего узла при масштабировании, то для уменьшения размеров кластера можете выбрать конкретный узел для удаления.

Если изменить количество рабочих узлов не удаётся, кластер продолжит работать. Запись со сведениями о сбое появится на вкладке Предупреждения.

Включить/выключить автоматическое обновление сертификатов#

Кластер Kubernetes использует PKI-инфраструктуру для безопасного обмена сообщениями между своими компонентами. Для нормальной работы кластера используемые сертификаты необходимо своевременно обновлять.

Утилита cluster-manager регулярно проверяет срок действия сертификатов. Если оставшийся срок действия составляет менее двух недель, то пользователю направляются предупреждения.

Вы можете обновить сертификаты самостоятельно или включить опцию Автообновление сертификатов. Чтобы включить или выключить автоматическое обновление сертификатов на мастер-узлах кластера, перейдите на страницу кластера и измените значение поля Автообновление сертификатов на вкладке Информация.

Автоматическое обновление сертификатов по умолчанию доступно для всех новых кластеров. Если у вас есть кластеры Kubernetes, в которых автоматическое обновление не доступно (поле Автообновление сертификатов не отображается), но вы хотите воспользоваться этой опцией, оставьте заявку на портале поддержки или напишите на электронную почту support@k2.cloud.

Внимание

При включённом обновлении сертификатов не рекомендуется обновлять их вручную — при ошибке кластер может стать неработоспособным.

Если автоматическое обновление отключено, вам необходимо самостоятельно следить за сроками жизни сертификатов и обновлять их при необходимости.

Редактировать пользовательские данные#

Пользовательские данные можно менять после создания кластера Kubernetes. Это позволяет, в частности, автоматически выполнять новые скрипты во время запуска дополнительных узлов при масштабировании кластера. Пользовательские данные можно отредактировать на вкладке Информация на странице кластера. Для этого нажмите на иконку редактирования возле параметра Пользовательские данные. В открывшемся окне выберите тип данных и введите сами данные.

Удаление ресурсов#

Удалить рабочий узел#

Если рабочий узел стал не нужен, например, вы перенесли все поды с него на другой узел, то его можно удалить. Удалить рабочий узел можно только тогда, когда кластер Kubernetes имеет статус Запущен и находится в состоянии Готов.

Примечание

Рабочий узел нельзя удалить, если для всех остальных рабочих узлов включена опция Scheduling disabled.

Внимание

Перед удалением рабочего узла убедитесь, что в конфигурациях размещённых на нём подов нет Persistent Volumes. Если удалить рабочий узел с такими дисками, то использующие их приложения могут оказаться временно недоступны. Восстановление работоспособности может занять до 10 мин, пока сервис Kubernetes не смонтирует диски на другом рабочем узле.

Чтобы удалить рабочий узел:

  1. Перейдите в раздел Кластеры Kubernetes Кластеры.

  2. Найдите кластер в таблице и нажмите на идентификатор кластера для перехода на его страницу.

  3. Откройте вкладку Экземпляры.

  4. Выберите экземпляр, на котором размещён рабочий узел, в таблице ресурсов.

  5. Нажмите Удалить и подтвердите действие в открывшемся окне.

Удалить кластер Kubernetes#

Удаление кластера заключается в удалении всех созданных для него экземпляров. Экземпляры созданные для дополнительных сервисов также удаляются. Все созданные EBS-провайдером диски будут доступны для удаления в подразделе Диски раздела Хранение данных.

Чтобы удалить кластер Kubernetes и связанные с ним сервисы (Container Registry, EBS-провайдер), перейдите в раздел Кластеры Kubernetes Кластеры, выберите кластер и нажмите Удалить.

Внимание

При удалении кластера диск с образами Docker Registry будет также удален!