Создание кластера Kubernetes
Создайте кластер Kubernetes, а затем создайте группу узлов.
Перед началом работы
Чтобы создать кластер Kubernetes:
-
Войдите в консоль управления. Если вы еще не зарегистрированы, перейдите в консоль управления и следуйте инструкциям.
-
На странице биллинга убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе
ACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его. -
Если у вас еще нет каталога, создайте его.
-
Установите Kubernetes CLI (kubectl).
-
Убедитесь, что у вас достаточно свободных ресурсов в облаке.
-
Если у вас еще нет сети, создайте ее.
-
Если у вас еще нет подсетей, создайте их в зонах доступности, где будут созданы кластер Kubernetes и группа узлов.
-
Создайте сервисные аккаунты:
- Сервисный аккаунт с ролью editor на каталог, в котором создается кластер Kubernetes. От его имени будут создаваться ресурсы, необходимые кластеру Kubernetes.
- Сервисный аккаунт с ролью container-registry.images.puller на каталог с реестром Docker-образов. От его имени узлы будут скачивать из реестра необходимые Docker-образы.
Вы можете использовать один и тот же сервисный аккаунт для обеих операций.
Создайте кластер Kubernetes
- В консоли управления выберите каталог, в котором будет создан кластер 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 test-k8s \
--network-name default \
--zone ru-central1-a \
--subnet-name default-a \
--public-ip \
--release-channel regular \
--version 1.13 \
--cluster-ipv4-range 10.1.0.0/16 \
--service-ipv4-range 10.2.0.0/16 \
--service-account-name default-sa \
--node-service-account-name default-sa \
--daily-maintenance-window start=22:00,duration=10h
done (5m47s)
id: cathn0s6qobfa61p3u6k
folder_id: b1g66jflru0ek1omtsu0
created_at: "2019-12-02T13:50:26Z"
name: test-k8s
status: RUNNING
health: HEALTHY
network_id: enpg0laccbrtg80ff9ro
master:
zonal_master:
zone_id: ru-central1-a
internal_v4_address: 172.23.0.15
external_v4_address: 84.201.128.175
version: "1.13"
endpoints:
internal_v4_endpoint: https://172.23.0.15/
external_v4_endpoint: https://84.201.128.175/
master_auth:
cluster_ca_certificate: |
-----BEGIN CERTIFICATE-----
MIICyDCCAbCgAwIBAgIBADANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDEwprdWJl
...
5ojvE6TqXJD5yANkK/eX6KAawlXey02BnNO/c7Ip6ShQdjTrf8OrlpvtDE4=
-----END CERTIFICATE-----
version_info:
current_version: "1.13"
maintenance_policy:
auto_upgrade: true
maintenance_window:
daily_maintenance_window:
start_time:
hours: 22
duration: 36000s
ip_allocation_policy:
cluster_ipv4_cidr_block: 10.1.0.0/16
service_ipv4_cidr_block: 10.2.0.0/16
service_account_id: aje3932acd0c5ur7gatp
node_service_account_id: aje3932acd0c5hg8dagp
release_channel: REGULAR
Где:
--name
— имя кластера Kubernetes.--network-name
— имя сети.--zone
— зона доступности.--subnet-name
— имя подсети.--public-ip
— флаг, который указывается, если кластеру Kubernetes требуется публичный IP-адрес.--release-channel
— релизный канал.--version
— версия Kubernetes.--cluster-ipv4-range
— диапазон IP-адресов, из которого будут выделяться IP-адреса для подов.--service-ipv4-range
— диапазон IP-адресов, из которого будут выделяться IP-адреса для сервисов.--service-account-id
— уникальный идентификатор сервисного аккаунта для ресурсов. От его имени будут создаваться ресурсы, необходимые кластеру Kubernetes.--node-service-account-id
— уникальный идентификатор сервисного аккаунта для узлов. От его имени узлы будут скачивать из реестра необходимые Docker-образы.--daily-maintenance-window
— настройки окна обновлений.