mws_mk8s_node_group (Resource)
Заголовок раздела «mws_mk8s_node_group (Resource)»Группа узлов в кластере Managed Kubernetes — это группа виртуальных машин Compute, на которых запускаются контейнеры с приложениями
Примеры использования
Заголовок раздела «Примеры использования»resource "mws_vpc_network" "network" { network = var.network_name}
resource "mws_vpc_subnet" "subnet_a" { subnet = "${var.subnet_name}-a" network = mws_vpc_network.network.network cidr = var.subnet_cidr_a}
resource "mws_vpc_subnet" "subnet_b" { subnet = "${var.subnet_name}-b" network = mws_vpc_network.network.network cidr = var.subnet_cidr_b}
resource "mws_vpc_address" "address" { address = var.address_name network = mws_vpc_network.network.network subnet = mws_vpc_subnet.subnet_a.metadata.id}
resource "mws_iam_service_account" "sa" { service_account = var.service_account_name}
resource "mws_mk8s_cluster" "example" { availability = { zonal_ha = { // zonal high available zone = "ru-central1-b" } }
cluster_name = var.cluster_name
metadata = { description = "Zonal HA Kubernetes cluster" display_name = "HA Example Cluster" }
network = { pods_cidr = var.pods_cidr services_cidr = var.services_cidr primary_endpoint = { ref = mws_vpc_address.address.id } }
version_control = { release_channel = "stable" maintenance_window = { weekly = { days = ["MONDAY", "WEDNESDAY"] hour = 3 } } version = "v1.35.6-mws.4" }}
resource "mws_mk8s_node_group" "example" { cluster_name = mws_mk8s_cluster.example.cluster_name node_group_name = "${var.cluster_name}-example-node-group"
service_account = { ref = mws_iam_service_account.sa.metadata.id }
subnet = { ref = mws_vpc_subnet.subnet_a.metadata.id }
vm_type = { ref = "compute/vmTypes/gen-2-8" }
scale = { autoscaling = { min = 1 max = 3 } }
rollout_strategy = { max_surge = 1 max_unavailable = 0 }
version_control = { auto_update = true version = "v1.35.6-mws.4" maintenance_window = { weekly = { days = ["MONDAY", "WEDNESDAY"] hour = 3 duration = "4h" } } }
image_storage_size = "20Gb"
labels = [ { key = "environment", value = "production" }, { key = "team", value = "devops" } ]
taints = []
zone = "ru-central1-a"}
variable "network_name" { type = string default = "my-ha-network" description = "VPC network name"}
variable "subnet_name" { type = string default = "my-ha-subnet" description = "Base name for subnets"}
variable "subnet_cidr_a" { type = string default = "192.168.0.0/17" description = "CIDR for subnet A"}
variable "subnet_cidr_b" { type = string default = "192.168.128.0/17" description = "CIDR for subnet B"}
variable "address_name" { type = string default = "k8s-primary-ip" description = "Name for the primary endpoint address"}
variable "service_account_name" { type = string default = "my-service-account" description = "Service account name"}
variable "cluster_name" { type = string default = "ha-k8s-cluster" description = "Name of the Kubernetes cluster"}
variable "pods_cidr" { type = string default = "10.244.0.0/16" description = "Pods CIDR block"}
variable "services_cidr" { type = string default = "10.96.0.0/16" description = "Services CIDR block"}Required
Заголовок раздела «Required»cluster_name(String) Имя Clusternode_group_name(String) Имя Node-группыrollout_strategy(Attributes) Стратегия обновления (rollout) узлов в группе узлов (see below for nested schema)scale(Attributes) Необходимо заполнить одно из полей — “fixed” или “autoscaling” (see below for nested schema)service_account(Attributes) Сервисный аккаунт для выполнения функций:- скачивание образов из Artifact Registry (требуются права на чтение образов);
- сбор системных метрик с узлов (требуются права на чтение статусов узлов) (see below for nested schema)
subnet(Attributes) (see below for nested schema)version_control(Attributes) (see below for nested schema)vm_type(Attributes) Тип VM (see below for nested schema)
Optional
Заголовок раздела «Optional»image_storage_iops(Number) Количество операций ввода-вывода в секунду (IOPS) для хранилища образов и контейнеровimage_storage_size(String) Размер хранилища для образов и контейнеров, в Gb
Размер в байтах. Формат: <число> [единица измерения]. Допустимые единицы измерения: “B”, “KB”, “MB”, “GB”, “TB”, “PB”, “EB”, “ZB”, “YB”, “RB”, “QB”. По умолчанию: “B”. Допустимые значения — положительные целые числа и дробные числа с ненулевой целой частью. Значение базовой единицы измерения (в байтах) должно оставаться целым. Регистр и лишние пробелы перед строкой, после строки и между ее частями игнорируются
kind(String)labels(Attributes List) (see below for nested schema)local_disks(Attributes List) Параметры локальных дисков для каждого узла в группе узлов (see below for nested schema)metadata(Attributes) Набор общих для всех пользовательских объектов атрибутов. Может быть расширен атрибутами, специфичными для контейнеров (see below for nested schema)project(String) Путь к проекту.taints(Attributes List) (see below for nested schema)timeouts(Attributes) (see below for nested schema)zone(String)
Read-Only
Заголовок раздела «Read-Only»id(String) The ID of this resource.status(Attributes) Описывает статусную модель групп узлов Kubernetes (see below for nested schema)
Nested Schema for rollout_strategy
Заголовок раздела «Nested Schema for rollout_strategy»Optional:
max_surge(Number)max_unavailable(Number)
Nested Schema for scale
Заголовок раздела «Nested Schema for scale»Optional:
autoscaling(Attributes) (see below for nested schema)fixed(Number) Количество узлов в группе узлов
Nested Schema for scale.autoscaling
Заголовок раздела «Nested Schema for scale.autoscaling»Required:
max(Number) Максимальное количество узлов в группе узловmin(Number) Минимально количество узлов в группе узлов
Nested Schema for service_account
Заголовок раздела «Nested Schema for service_account»Required:
ref(String)
Nested Schema for subnet
Заголовок раздела «Nested Schema for subnet»Required:
ref(String)
Nested Schema for version_control
Заголовок раздела «Nested Schema for version_control»Optional:
auto_update(Boolean) Авто обновление версии нод группы в рамках релизного канала и окна обслуживанияmaintenance_window(Attributes) Если окно обслуживания не заполнено, то время проведения работ не ограничено. Duration можно указывать. Если отсутствует, то не ограничено по времени (see below for nested schema)version(String) Минимальная версия NodeGroup. Не может быть выше версии кластера. Автоматически обновляется до default-версии в окно обслуживания. Если указанная версия выше текущей, обновление запустится немедленно. Во время автоматического обновления это поле не изменяется, а актуальная версия указывается в статусе NodeGroup
Nested Schema for version_control.maintenance_window
Заголовок раздела «Nested Schema for version_control.maintenance_window»Required:
weekly(Attributes) (see below for nested schema)
Nested Schema for version_control.maintenance_window.weekly
Заголовок раздела «Nested Schema for version_control.maintenance_window.weekly»Required:
days(List of String) Дни недели, в которые будет запущено задание на тех. обслуживаниеhour(Number) Час, в который будет запущено задание на тех. обслуживание
Optional:
duration(String) Допустимая продолжительность процесса обновления. Если не указано, то не ограничено по времени. Принимается только формат в часах (h)
Период времени. Поддерживаются следующие форматы:
- ISO 8601: P(n)DT(n)H(n)M(n)S. Допустимые единицы измерения: дни (“D”), часы (“H”), минуты (“M”), секунды (“S”). Только секунды могут быть дробными
- Простой формат. Допустимые единицы измерения: “d”, “h”, “m”, “s”, “ms”, “us”, “ns”. Величины должны следовать по убыванию единиц измерения
- Число в секундах
Отрицательные значения обозначаются префиксом ”-”, в простом формате могут быть ограничены скобками. Регистр и пробелы игнорируются
Nested Schema for vm_type
Заголовок раздела «Nested Schema for vm_type»Required:
ref(String)
Nested Schema for labels
Заголовок раздела «Nested Schema for labels»Required:
key(String) Ключ может состоять из двух частей: необязательный префикс и ключ, разделенные ’/’ Максимальная длина префикса 253 символа. Максимальная длина ключа 63 символаvalue(String) Значение метки на узле
Nested Schema for local_disks
Заголовок раздела «Nested Schema for local_disks»Required:
name(String) Уникальное имя диска в рамках виртуальной машиныsize(String) Размер диска. Должен быть кратен 248GB
Размер в байтах. Формат: <число> [единица измерения]. Допустимые единицы измерения: “B”, “KB”, “MB”, “GB”, “TB”, “PB”, “EB”, “ZB”, “YB”, “RB”, “QB”. По умолчанию: “B”. Допустимые значения — положительные целые числа и дробные числа с ненулевой целой частью. Значение базовой единицы измерения (в байтах) должно оставаться целым. Регистр и лишние пробелы перед строкой, после строки и между ее частями игнорируются
Optional:
device_name(String) Имя устройства в /dev/disk/by-id/mws-*. Если не указано — mws-{name}
Nested Schema for metadata
Заголовок раздела «Nested Schema for metadata»Optional:
description(String) Описание ресурсаdisplay_name(String) Отображаемое имя свойстваname(String, Deprecated) Обязательное уникальное, глобально или в пределах проекта, имя. Используется в качестве части составного идентификатора объекта
Read-Only:
create_time(String) Дата создания объекта
Дата в формате RFC3339. Пример: 2006-01-02T15:04:05Z07:00
delete_time(String) Время запроса на удаление ресурса
Дата в формате RFC3339. Пример: 2006-01-02T15:04:05Z07:00
id(String) ID свойстваpurge_time(String) Время удаления ресурса
Дата в формате RFC3339. Пример: 2006-01-02T15:04:05Z07:00
usages(Attributes List) Связи с другими ресурсами. В зависимости от типа связи операции над ресурсом могут быть ограничены (see below for nested schema)
Nested Schema for metadata.usages
Заголовок раздела «Nested Schema for metadata.usages»Read-Only:
name(String) Имя связи. Требуется для модификации коллекцииresource(String) Ссылка на ресурсusage_type(String) Тип связи. Помимо стандартных “own” и “use” могут быть добавлены специализированные типы для конкретных сервисов
Nested Schema for taints
Заголовок раздела «Nested Schema for taints»Required:
effect(String) Эффект taint на node, влияющий на pod scheduling, которые под него попадаютkey(String) Ключ может состоять из двух частей: необязательный префикс и ключ, разделенные ”/”. Максимальная длина префикса 253 символа. Максимальная длина ключа 63 символаvalue(String) Значение taint на node. Если строка пустая, то value нет
Nested Schema for timeouts
Заголовок раздела «Nested Schema for timeouts»Optional:
create(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as ”30s” or “2h45m”. Valid time units are “s” (seconds), “m” (minutes), “h” (hours).delete(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as ”30s” or “2h45m”. Valid time units are “s” (seconds), “m” (minutes), “h” (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.update(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as ”30s” or “2h45m”. Valid time units are “s” (seconds), “m” (minutes), “h” (hours).
Nested Schema for status
Заголовок раздела «Nested Schema for status»Read-Only:
cpu(String) Количество ядер vCPU на узлеimage_storage_iops(Number) Количество операций ввода-вывода в секунду (IOPS) для хранилища образов и контейнеровimage_storage_size(String) Размер в байтах. Формат: <число> [единица измерения]. Допустимые единицы измерения: “B”, “KB”, “MB”, “GB”, “TB”, “PB”, “EB”, “ZB”, “YB”, “RB”, “QB”. По умолчанию: “B”. Допустимые значения — положительные целые числа и дробные числа с ненулевой целой частью. Значение базовой единицы измерения (в байтах) должно оставаться целым. Регистр и лишние пробелы перед строкой, после строки и между ее частями игнорируютсяlabels(Attributes List) (see below for nested schema)local_disks(Attributes List) Параметры локальных дисков для каждого узла в группе узлов (see below for nested schema)memory(String) Объем оперативной памяти на узле
Размер в байтах. Формат: <число> [единица измерения]. Допустимые единицы измерения: “B”, “KB”, “MB”, “GB”, “TB”, “PB”, “EB”, “ZB”, “YB”, “RB”, “QB”. По умолчанию: “B”. Допустимые значения — положительные целые числа и дробные числа с ненулевой целой частью. Значение базовой единицы измерения (в байтах) должно оставаться целым. Регистр и лишние пробелы перед строкой, после строки и между ее частями игнорируются
node_group_status(Attributes) (see below for nested schema)nodes_ready(Number) Текущее количество узлов, готовых для работыready(Attributes) Информация о статусе реконсиляции (see below for nested schema)rollout_strategy(Attributes) Стратегия обновления (rollout) узлов в группе узлов (see below for nested schema)scale(Attributes) (see below for nested schema)service_account(Attributes) (see below for nested schema)taints(Attributes List) (see below for nested schema)version_control(Attributes) (see below for nested schema)vm_type(Attributes) (see below for nested schema)
Nested Schema for status.labels
Заголовок раздела «Nested Schema for status.labels»Required:
key(String) Ключ может состоять из двух частей: необязательный префикс и ключ, разделенные ’/’ Максимальная длина префикса 253 символа. Максимальная длина ключа 63 символаvalue(String) Значение метки на узле
Nested Schema for status.local_disks
Заголовок раздела «Nested Schema for status.local_disks»Read-Only:
device_name(String) Имя устройства в “/dev/disk/by-id/mws-*”. Если не указано — “mws-{name}”name(String) Уникальное имя диска в рамках виртуальной машиныsize(String) Размер диска
Размер в байтах. Формат: <число> [единица измерения]. Допустимые единицы измерения: “B”, “KB”, “MB”, “GB”, “TB”, “PB”, “EB”, “ZB”, “YB”, “RB”, “QB”. По умолчанию: “B”. Допустимые значения — положительные целые числа и дробные числа с ненулевой целой частью. Значение базовой единицы измерения (в байтах) должно оставаться целым. Регистр и лишние пробелы перед строкой, после строки и между ее частями игнорируются
Nested Schema for status.node_group_status
Заголовок раздела «Nested Schema for status.node_group_status»Read-Only:
message(String)state(String) Текущий статус группы узлов
Nested Schema for status.ready
Заголовок раздела «Nested Schema for status.ready»Read-Only:
message(String) Описание статусаstate(String) Состояние ресурса
Nested Schema for status.rollout_strategy
Заголовок раздела «Nested Schema for status.rollout_strategy»Read-Only:
max_surge(Number)max_unavailable(Number)
Nested Schema for status.scale
Заголовок раздела «Nested Schema for status.scale»Read-Only:
autoscaling(Attributes) (see below for nested schema)fixed(Number)
Nested Schema for status.scale.autoscaling
Заголовок раздела «Nested Schema for status.scale.autoscaling»Read-Only:
max(Number) Максимальное количество узлов в группе узловmin(Number) Минимальное количество узлов в группе узлов
Nested Schema for status.service_account
Заголовок раздела «Nested Schema for status.service_account»Read-Only:
ref(String)
Nested Schema for status.taints
Заголовок раздела «Nested Schema for status.taints»Required:
effect(String) Эффект taint на node, влияющий на pod scheduling, которые под него попадаютkey(String) Ключ может состоять из двух частей: необязательный префикс и ключ, разделенные ”/”. Максимальная длина префикса 253 символа. Максимальная длина ключа 63 символаvalue(String) Значение taint на node. Если строка пустая, то value нет
Nested Schema for status.version_control
Заголовок раздела «Nested Schema for status.version_control»Read-Only:
auto_update(Boolean)maintenance_window(Attributes) (see below for nested schema)version(String) Текущая версия NodeGroup
Nested Schema for status.version_control.maintenance_window
Заголовок раздела «Nested Schema for status.version_control.maintenance_window»Required:
weekly(Attributes) (see below for nested schema)
Nested Schema for status.version_control.maintenance_window.weekly
Заголовок раздела «Nested Schema for status.version_control.maintenance_window.weekly»Required:
days(List of String) Дни недели, в которые будет запущено задание на тех. обслуживаниеhour(Number) Час, в который будет запущено задание на тех. обслуживание
Optional:
duration(String) Допустимая продолжительность процесса обновления. Если не указано, то не ограничено по времени. Принимается только формат в часах (h)
Период времени. Поддерживаются следующие форматы:
- ISO 8601: P(n)DT(n)H(n)M(n)S. Допустимые единицы измерения: дни (“D”), часы (“H”), минуты (“M”), секунды (“S”). Только секунды могут быть дробными
- Простой формат. Допустимые единицы измерения: “d”, “h”, “m”, “s”, “ms”, “us”, “ns”. Величины должны следовать по убыванию единиц измерения
- Число в секундах
Отрицательные значения обозначаются префиксом ”-”, в простом формате могут быть ограничены скобками. Регистр и пробелы игнорируются
Nested Schema for status.vm_type
Заголовок раздела «Nested Schema for status.vm_type»Read-Only:
ref(String)