Управление метками узлов кластера Kubernetes
Вы можете добавлять метки сразу на все узлы в группе узлов. Для этого задайте набор меток в параметре node_labels
при создании группы узлов.
-
Создайте кластер Kubernetes.
Вы можете использовать уже работающий кластер Kubernetes или создать новый.
Как создать кластерКонсоль управленияCLIAPI- В консоли управления выберите каталог, в котором будет создан кластер Kubernetes.
- В списке сервисов выберите Managed Service for Kubernetes.
- Нажмите кнопку Создать кластер.
- Введите имя и описание кластера Kubernetes.
- Укажите Сервисный аккаунт для ресурсов, который будет использоваться для создания ресурсов.
- Укажите Сервисный аккаунт для узлов, который будет использоваться узлами для доступа к реестру Docker-образов.
- Укажите релизный канал.
- В блоке Конфигурация мастера:
-
В поле Версия Kubernetes выберите версию Kubernetes, которая будет установлена на мастере.
-
В поле Публичный адрес выберите способ назначения адреса:
- Автоматически — чтобы назначить случайный IP-адрес из пула адресов Yandex.Cloud.
- Без адреса — чтобы не назначать публичный IP-адрес.
-
В поле Тип мастера выберите тип мастера:
- Зональный — создается в подсети в одной зоне доступности.
- Региональный — создается распределенно в трех подсетях в каждой зоне доступности.
-
Выберите Зону доступности, в которой будет создан мастер.
Шаг доступен только для зонального мастера.
-
В поле Формат сети выберите способ отображения сетей:
- Список — отображается список доступных сетей. Если у вас нет облачной сети, нажмите кнопку Создать сеть:
- В открывшемся окне задайте имя сети. Укажите, что необходимо создать подсети. Нажмите кнопку Создать сеть. По умолчанию будет создана сеть с подсетями в каждой зоне доступности.
- ID — необходимо ввести уникальные идентификаторы необходимых сетей.
- Список — отображается список доступных сетей. Если у вас нет облачной сети, нажмите кнопку Создать сеть:
-
В поле Облачная сеть выберите сеть, в которой будет создан мастер.
-
В поле Подсеть выберите подсеть, в которой будет создан мастер.
Для регионального мастера необходимо указать три подсети в каждой зоне доступности.
-
- В блоке Настройки окна обновлений:
- В поле Частота обновлений / Отключение настройте окно для обновлений:
- Отключено — отключение автоматических обновлений.
- В любое время — обновления разрешены в любое время.
- Ежедневно — обновления будут происходить во временном интервале, указанном в поле Время (UTC) и продолжительность.
- В выбранные дни — обновления будут происходить во временном интервале, указанном в поле Расписание по дням.
- В поле Частота обновлений / Отключение настройте окно для обновлений:
- В блоке Сетевые настройки кластера:
- Укажите CIDR кластера — диапазон IP-адресов, из которого будут выделяться IP-адреса для подов.
- Укажите CIDR сервисов — диапазон IP-адресов, из которого будут выделяться IP-адреса для сервисов.
- Нажмите кнопку Создать кластер.
Если у вас еще нет интерфейса командной строки Yandex.Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра
--folder-name
или--folder-id
.Создайте кластер Kubernetes:
yc managed-kubernetes cluster create \ --name k8s-labels \ --service-account-name k8s \ --node-service-account-name docker \ --zone ru-central1-a \ --network-name k8s-labels
Где:
--name
— имя кластера Kubernetes.--service-account-id
— уникальный идентификатор сервисного аккаунта для ресурсов. От его имени будут создаваться ресурсы, необходимые кластеру Kubernetes.--node-service-account-id
— уникальный идентификатор сервисного аккаунта для узлов. От его имени узлы будут скачивать из реестра необходимые Docker-образы.--zone
— зона доступности.--network-name
— имя сети.
Результат выполнения команды:
done (6m9s) id: abcsk1s2f3fmb5h0pd94 folder_id: d4f56ga82mev0cljderg created_at: "2020-09-24T13:20:45Z" name: k8s-labels status: RUNNING health: HEALTHY network_id: higph7rfondivd8jflu9 master: zonal_master: zone_id: ru-central1-a internal_v4_address: 10.0.0.32 version: "1.16" endpoints: internal_v4_endpoint: https://10.0.0.32 master_auth: cluster_ca_certificate: | -----BEGIN CERTIFICATE----- MIICyDCCAbCgAwIBAgIBADANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDEwprdWJl ... piOjXzqDCLzCkfFuNimHejsSvVFN4N1bYYBCBMkhaYDzV5Ypfy/Jy0aHJ9U= -----END CERTIFICATE----- version_info: current_version: "1.16" maintenance_policy: auto_upgrade: true maintenance_window: anytime: {} ip_allocation_policy: cluster_ipv4_cidr_block: 10.112.0.0/16 node_ipv4_cidr_mask_size: "24 service_ipv4_cidr_block: 10.96.0.0/16 service_account_id: ajedclfluactb5868n99 node_service_account_id: ajeo8f063dmnicot7t7j release_channel: REGULAR
-
Создайте группу узлов с метками.
При создании группы узлов укажите необходимые метки в формате
ключ:значение
:- В консоли управления в блоке Дополнительно в поле Метки узла.
- С помощью CLI — укажите флаг
--node-labels key=value[,key=value...]
. - С помощью API — выполните запрос методом create для ресурса NodeGroup и укажите метки узла.
Консоль управленияCLIAPI- В консоли управления выберите каталог, в котором создан кластер Kubernetes.
- В списке сервисов выберите Managed Service for Kubernetes.
- Выберите кластер Kubernetes, для которого необходимо создать группу узлов.
- На странице кластера Kubernetes перейдите на вкладку Группы узлов.
- Нажмите кнопку Создать группу узлов.
- Введите имя группы узлов.
- Укажите Версию Kubernetes для узлов.
- В блоке Масштабирование:
- Выберите тип политики масштабирования.
- Укажите количество узлов в группе узлов.
- В блоке В процессе создания и обновления разрешено укажите максимальное количество виртуальных машин, на которое можно превысить и уменьшить размер группы.
- В блоке Вычислительные ресурсы:
- Выберите платформу.
- Укажите необходимое количество vCPU и гарантированную долю vCPU, а также объем RAM.
- В блоке Хранилище:
- Укажите Тип диска узла:
- HDD — стандартный сетевой диск, сетевое блочное хранилище на HDD-накопителе.
- SSD — быстрый сетевой диск, сетевое блочное хранилище на SSD-накопителе.
- Укажите размер диска узла.
- Укажите Тип диска узла:
- В блоке Сетевые настройки:
- В поле Публичный адрес выберите способ назначения адреса:
- Автоматически — чтобы назначить случайный IP-адрес из пула адресов Yandex.Cloud.
- Без адреса — чтобы не назначать публичный IP-адрес.
- Укажите расположение узлов по зонам доступности и сетям.
- В поле Публичный адрес выберите способ назначения адреса:
- В блоке Доступ укажите данные для доступа на узел:
- В поле Логин введите имя пользователя.
- В поле SSH-ключ вставьте содержимое файла публичного ключа.
- В блоке Настройки окна обновлений:
- В поле Частота обновлений / Отключение выберите окно для обновлений:
- Отключено — отключение автоматических обновлений.
- В любое время — обновления разрешены в любое время.
- Ежедневно — обновления будут происходить во временной интервал, указанный в поле Время (UTC) и продолжительность.
- В выбранные дни — обновления будут происходить во временной интервал, указанный в поле Расписание по дням.
- В поле Частота обновлений / Отключение выберите окно для обновлений:
- В блоке Дополнительно:
- В поле Метки узла нажмите кнопку Добавить метку и укажите ее ключ и значение. Если необходимо, добавьте несколько меток.
- Нажмите кнопку Создать группу узлов.
Создайте группу узлов:
yc managed-kubernetes node-group create \ --name k8s-labels-node \ --cluster-name k8s-labels \ --disk-type network-ssd \ --fixed-size 1 \ --node-labels environment=production,apps/tier=backend
Где:
--name
— имя группы узлов.--cluster-name
— имя кластера Kubernetes, в котором будет создана группа узлов.--disk-type
— тип диска узла.--fixed-size
— количество узлов в группе.--node-labels
— метки узла. Можно указать несколько меток через запятую.
Результат выполнения команды:
done (2m19s) id: catkuапро07enihqmk51 cluster_id: abcsk1s2f3fmb5h0pd94 created_at: "2020-09-24T13:32:24Z" name: k8s-labels-node status: RUNNING node_template: platform_id: standard-v2 resources_spec: memory: "4294967296" cores: "2" core_fraction: "100" boot_disk_spec: disk_type_id: network-ssd disk_size: "103079215104" v4_address_spec: {} scheduling_policy: {} scale_policy: fixed_scale: size: "1" allocation_policy: locations: - zone_id: ru-central1-a subnet_id: e9bm87gkjd81eroc6dqg deploy_policy: max_expansion: "3" instance_group_id: cl1v2gh33j1c71df9jsv node_version: "1.17" version_info: current_version: "1.17" maintenance_policy: auto_upgrade: true auto_repair: true maintenance_window: anytime: {} node_labels: apps/tier: backend environment: production
-
Посмотрите информацию о созданной группе узлов с метками:
Консоль управленияCLIAPI- В консоли управления выберите каталог, в котором создан кластер Kubernetes.
- В списке сервисов выберите Managed Service for Kubernetes.
- Выберите кластер Kubernetes, в котором создана группа узлов.
- На странице кластера Kubernetes перейдите на вкладку Узлы.
- На странице одного из узлов, перейдите на вкладку Метки. На вкладке перечислены системные и пользовательские метки узла.
- Посмотрите все узлы кластера Kubernetes:
kubectl get nodes
Результат выполнения команды:
NAME STATUS ROLES AGE VERSION catkuапро07enihqmk51-hgjd Ready <none> 1h v1.17.8 catkuапро07enihqmk51-lskc Ready <none> 1h v1.17.8
- Посмотрите информацию о выбранном узле кластера Kubernetes:
kubectl describe node catkuапро07enihqmk51-hgjd
Результат выполнения команды:
Name: catkuапро07enihqmk51-hgjd Roles: <none> Labels: apps/tier=backend beta.kubernetes.io/arch=amd64 beta.kubernetes.io/instance-type=standard-v2 beta.kubernetes.io/os=linux environment=production failure-domain.beta.kubernetes.io/zone=ru-central1-a kubernetes.io/arch=amd64 kubernetes.io/hostname=catkuапро07enihqmk51-hgjd kubernetes.io/os=linux node.kubernetes.io/kube-proxy-ds-ready=true node.kubernetes.io/masq-agent-ds-ready=true node.kubernetes.io/node-problem-detector-ds-ready=true yandex.cloud/node-group-id=catkuапро07enihqmk51 yandex.cloud/pci-topology=k8s yandex.cloud/preemptible=false