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.34.1-mws.1" }}
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.34.1-mws.1" 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) worker нод в нод группе (see below for nested schema)scale(Attributes) Необходимо заполнить одно из полей fixed или auto scale (see below for nested schema)service_account(Attributes) serviceAccount необходим для поддержки функций:- скачивания образов из облачного registry (права на чтение образов)
- сбор системных метрик с worker нод (права на чтение статусов worker нод) (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-ей и контейнеровimage_storage_size(String) размер хранилища для image-ей и контейнеров. Размер в Gbkind(String)labels(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) Описывает статусную модель k8s нод групп. (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) Количество узлов в node group
Nested Schema for scale.autoscaling
Заголовок раздела «Nested Schema for scale.autoscaling»Required:
max(Number) Максимальное количество нод в Node group.min(Number) Минимально количество нод в Node group.
Nested Schema for service_account
Заголовок раздела «Nested Schema for service_account»Required:
ref(String)
Nested Schema for subnet
Заголовок раздела «Nested Schema for subnet»Optional:
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)
Nested Schema for vm_type
Заголовок раздела «Nested Schema for vm_type»Optional:
ref(String)
Nested Schema for labels
Заголовок раздела «Nested Schema for labels»Required:
key(String) Ключ может состоять из двух частей: необязательный префикс и ключ, разделенные ’/’ Максимальная длина префикса 253 символа. Максимальная длина ключа 63 символа.value(String) Значение метки на узле.
Nested Schema for metadata
Заголовок раздела «Nested Schema for metadata»Optional:
description(String) Описание ресурсаdisplay_name(String) Отображаемое имя свойстваname(String, Deprecated) Обязательное уникальное, глобально или в пределах проекта, имя. Используется в качестве части составного идентификатора объекта.
Read-Only:
create_time(String) Дата создания объектаdelete_time(String) Время запроса на удаление ресурсаid(String) ID свойстваpurge_time(String) Время удаления ресурса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) Количество виртуальных ядер на нодеimage_storage_iops(Number) Количество операций ввода-вывода в секунду (IOPS) для хранилища image-ей и контейнеровimage_storage_size(String)labels(Attributes List) (see below for nested schema)memory(String) Количество оперативной памяти на нодеnode_group_status(Attributes) (see below for nested schema)nodes_ready(Number) Текущее количество нод готовых для работыready(Attributes) Информация о статусе реконсиляции (see below for nested schema)rollout_strategy(Attributes) Стратегия перекатки (rollout) worker нод в нод группе (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.node_group_status
Заголовок раздела «Nested Schema for status.node_group_status»Read-Only:
message(String)state(String) текущий статус node group.
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) Максимальное количество нод в Node group.min(Number) Минимально количество нод в Node group.
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)
Nested Schema for status.vm_type
Заголовок раздела «Nested Schema for status.vm_type»Read-Only:
ref(String)