- tocdepth
2
Создание CCE-кластера и пула узлов
Добавьте в конфигурационный файл блок кода, который создаст VPC и подсеть:
resource "sbercloud_vpc" "cce_vpc" { name = "cce_vpc" cidr = "192.168.0.0/16" } resource "sbercloud_vpc_subnet" "cce_vpc_subnet_1" { name = "cce_vpc_subnet_1" cidr = "192.168.0.0/24" gateway_ip = "192.168.0.1" primary_dns = "100.125.13.59" secondary_dns = "100.125.65.14" vpc_id = sbercloud_vpc.cce_vpc.id }
Примечание
Для корректной работы используйте внутренние адреса DNS платформы Advanced: 100.125.13.59 и 100.125.65.14.
Если нужно использовать пользовательские DNS-серверы, настройте перенаправление на внутренние адреса DNS платформы Advanced или укажите один из адресов в настройках подсети. Например:
resource "sbercloud_vpc_subnet" "cce_vpc_subnet_1" { name = "cce_vpc_subnet_1" cidr = "192.168.0.0/16" gateway_ip = "192.168.0.1" primary_dns = "100.125.13.59" secondary_dns = "8.8.8.8" vpc_id = sbercloud_vpc.myvpc.id }
Выберите вкладку с нужным режимом работы сети CCE-кластера и добавьте в конфигурационный файл блок кода, который создаст CCE-кластер:
resource "sbercloud_cce_cluster" "cce_cluster" { name = "cce-cluster" flavor_id = "cce.s1.small" container_network_type = "overlay_l2" vpc_id = sbercloud_vpc. cce_vpc.id subnet_id = sbercloud_vpc_subnet. cce_vpc_subnet_1.id container_network_cidr = "10.0.0.0/16" service_network_cidr = "10.247.0.0/16" }
Параметр
Описание
name
Название кластера
flavor_id
container_network_type
Режим работы сети
vpc_id
VPC, в котором будут расположены рабочие узлы
subnet_id
Подсеть, в которой будут расположены рабочие узлы
container_network_cidr
Сегмент сети для контейнеров
service_network_cidr
Сегмент сети для сервисов
resource "sbercloud_cce_cluster" "cce_cluster" { name = "cce-cluster" flavor_id = "cce.s1.small" container_network_type = "vpc-router" vpc_id = sbercloud_vpc. cce_vpc.id subnet_id = sbercloud_vpc_subnet. cce_vpc_subnet_1.id container_network_cidr = "10.0.0.0/16" service_network_cidr = "10.247.0.0/16" }
Параметр
Описание
name
Название кластера
flavor_id
container_network_type
Режим работы сети
vpc_id
VPC, в котором будут расположены рабочие узлы
subnet_id
Подсеть, в которой будут расположены рабочие узлы
container_network_cidr
Сегмент сети для контейнеров
service_network_cidr
Сегмент сети для сервисов
resource "sbercloud_cce_cluster" "cce_cluster" { name = "cce-cluster" flavor_id = "cce.s2.small" container_network_type = "eni" vpc_id = sbercloud_vpc.cce_vpc.id subnet_id = sbercloud_vpc_subnet.cce_vpc_subnet_1.id eni_subnet_id = sbercloud_vpc_subnet.cce_vpc_subnet_1.ipv4_subnet_id eni_subnet_cidr = sbercloud_vpc_subnet.cce_vpc_subnet_1.cidr service_network_cidr = "10.247.0.0/16" }
Параметр
Описание
name
Название кластера
flavor_id
container_network_type
Режим работы сети
vpc_id
VPC, в котором будут расположены рабочие узлы
subnet_id
Подсеть, в которой будут расположены рабочие узлы
eni_subnet_id
ID подсети для контейнеров
eni_subnet_cidr
Сегмент сети для контейнеров
service_network_cidr
Сегмент сети для сервисов
Добавьте в конфигурационный файл блок кода, который создаст пул узлов:
resource "sbercloud_cce_node_pool" "cce_cluster_node_pool" { cluster_id = sbercloud_cce_cluster.cce_cluster.id name = "cce-cluster-node-pool " os = "CentOS 7.6" initial_node_count = 1 flavor_id = "s7n.xlarge.2" password = var.node_password scall_enable = true min_node_count = 1 max_node_count = 5 scale_down_cooldown_time = 100 priority = 1 root_volume { size = 40 volumetype = "SAS" } data_volumes { size = 100 volumetype = "SAS" } labels = { label1 = "label1" label2 = "label2" } tags = { tag1 = "tag1" tag2 = "tag2" } }
Параметр
Описание
cluster_id
ID CCE-кластера.
name
Название пула узлов.
os
Операционная система рабочего узла.
initial_node_count
Начальное количество ожидаемых узлов в пуле узлов. Этот параметр также можно использовать для последующего масштабирования количества узлов вручную.
flavor_id
Спецификация узла.
password
Пароль рабочего узла.
scall_enable
Включение/отключение автомасштабирования.
min_node_count
Минимальное количество рабочих узлов.
max_node_count
Максимальное количество рабочих узлов.
scale_down_cooldown_time
Время между операциями масштабирования в минутах.
priority
Приоритет пула узлов.
root_volume
Параметры системного диска.
data_volumes
Параметры диска с данными.
labels
Список меток.
tags
Список тегов.
Добавьте в конфигурационный файл блок кода, который добавит надстройку «autoscaler»:
data "sbercloud_cce_addon_template" "autoscaler" { cluster_id = sbercloud_cce_cluster.cce_cluster.id name = "autoscaler" version = "1.25.7" } resource "sbercloud_cce_addon" "autoscaler" { cluster_id = sbercloud_cce_cluster.cce_cluster.id template_name = "autoscaler" version = "1.25.7" values { basic = jsondecode(data.sbercloud_cce_addon_template.autoscaler.spec).basic custom = merge( jsondecode(data.sbercloud_cce_addon_template.autoscaler.spec).parameters.custom, { cluster_id = sbercloud_cce_cluster.cce_cluster.id tenant_id = var.tenant_id } ) } }
В шагах 4–5 используются две переменные:
password
иtenant_id
. Добавьте их значения в файлvariables.tf
по шаблону:variable "tenant_id" { default = "account-id" } variable "node_password" { default = "password" }
Где:
account-id
замените на Account ID в разделе My Credentials.password
замените на пароль, который будет задан для рабочего узла.
Добавьте в конфигурационный файл блок кода, который установит надстройку «cce-hpa-controller»:
resource "sbercloud_cce_addon" "cce-hpa-controller" { cluster_id = sbercloud_cce_cluster.cce_cluster.id template_name = "cce-hpa-controller" }
Конфигурационный файл готов. Содержимое файлов, полученных в результате выполнения инструкции, можно скопировать ниже.
Полный пример конфигурационного файла. Tunnel Network
terraform {
required_providers {
sbercloud = {
source = "sbercloud-terraform/sbercloud" # Initialize Cloud.ru provider
}
}
}
# Configure Cloud.ru provider
provider "sbercloud" {
auth_url = "https://iam.ru-moscow-1.hc.sbercloud.ru/v3" # Authorization address
region = "ru-moscow-1" # The region where the cloud infrastructure will be deployed
# Authorization keys
access_key = var.access_key
secret_key = var.secret_key
}
resource "sbercloud_vpc" "cce_vpc" {
name = "cce_vpc"
cidr = "192.168.0.0/16"
}
resource "sbercloud_vpc_subnet" "cce_vpc_subnet_1" {
name = "cce_vpc_subnet_1"
cidr = "192.168.0.0/24"
gateway_ip = "192.168.0.1"
primary_dns = "100.125.13.59"
secondary_dns = "100.125.65.14"
vpc_id = sbercloud_vpc.cce_vpc.id
}
resource "sbercloud_cce_cluster" "cce_cluster" {
name = "cce-cluster"
flavor_id = "cce.s1.small"
container_network_type = "overlay_l2"
vpc_id = sbercloud_vpc. cce_vpc.id
subnet_id = sbercloud_vpc_subnet. cce_vpc_subnet_1.id
container_network_cidr = "10.0.0.0/16"
service_network_cidr = "10.247.0.0/16"
}
resource "sbercloud_cce_node_pool" "cce_cluster_node_pool" {
cluster_id = sbercloud_cce_cluster.cce_cluster.id
name = "cce-cluster-node-pool "
os = "CentOS 7.6"
initial_node_count = 1
flavor_id = "s7n.xlarge.2"
password = var.node_password
scall_enable = true
min_node_count = 1
max_node_count = 5
scale_down_cooldown_time = 100
priority = 1
root_volume {
size = 40
volumetype = "SAS"
}
data_volumes {
size = 100
volumetype = "SAS"
}
labels = {
label1 = "label1"
label2 = "label2"
}
tags = {
tag1 = "tag1"
tag2 = "tag2"
}
}
data "sbercloud_cce_addon_template" "autoscaler" {
cluster_id = sbercloud_cce_cluster.cce_cluster.id
name = "autoscaler"
version = "1.25.7"
}
resource "sbercloud_cce_addon" "autoscaler" {
cluster_id = sbercloud_cce_cluster.cce_cluster.id
template_name = "autoscaler"
version = "1.25.7"
values {
basic = jsondecode(data.sbercloud_cce_addon_template.autoscaler.spec).basic
custom = merge(
jsondecode(data.sbercloud_cce_addon_template.autoscaler.spec).parameters.custom,
{
cluster_id = sbercloud_cce_cluster.cce_cluster.id
tenant_id = var.tenant_id
}
)
}
}
resource "sbercloud_cce_addon" "cce-hpa-controller" {
cluster_id = sbercloud_cce_cluster.cce_cluster.id
template_name = "cce-hpa-controller"
}
Полный пример конфигурационного файла. VPC Network
terraform {
required_providers {
sbercloud = {
source = "sbercloud-terraform/sbercloud" # Initialize Cloud.ru provider
}
}
}
# Configure Cloud.ru provider
provider "sbercloud" {
auth_url = "https://iam.ru-moscow-1.hc.sbercloud.ru/v3" # Authorization address
region = "ru-moscow-1" # The region where the cloud infrastructure will be deployed
# Authorization keys
access_key = var.access_key
secret_key = var.secret_key
}
resource "sbercloud_vpc" "cce_vpc" {
name = "cce_vpc"
cidr = "192.168.0.0/16"
}
resource "sbercloud_vpc_subnet" "cce_vpc_subnet_1" {
name = "cce_vpc_subnet_1"
cidr = "192.168.0.0/24"
gateway_ip = "192.168.0.1"
primary_dns = "100.125.13.59"
secondary_dns = "100.125.65.14"
vpc_id = sbercloud_vpc.cce_vpc.id
}
resource "sbercloud_cce_cluster" "cce_cluster" {
name = "cce-cluster"
flavor_id = "cce.s1.small"
container_network_type = "vpc-router"
vpc_id = sbercloud_vpc. cce_vpc.id
subnet_id = sbercloud_vpc_subnet. cce_vpc_subnet_1.id
container_network_cidr = "10.0.0.0/16"
service_network_cidr = "10.247.0.0/16"
}
resource "sbercloud_cce_node_pool" "cce_cluster_node_pool" {
cluster_id = sbercloud_cce_cluster.cce_cluster.id
name = "cce-cluster-node-pool "
os = "CentOS 7.6"
initial_node_count = 1
flavor_id = "s7n.xlarge.2"
password = var.node_password
scall_enable = true
min_node_count = 1
max_node_count = 5
scale_down_cooldown_time = 100
priority = 1
root_volume {
size = 40
volumetype = "SAS"
}
data_volumes {
size = 100
volumetype = "SAS"
}
labels = {
label1 = "label1"
label2 = "label2"
}
tags = {
tag1 = "tag1"
tag2 = "tag2"
}
}
data "sbercloud_cce_addon_template" "autoscaler" {
cluster_id = sbercloud_cce_cluster.cce_cluster.id
name = "autoscaler"
version = "1.25.7"
}
resource "sbercloud_cce_addon" "autoscaler" {
cluster_id = sbercloud_cce_cluster.cce_cluster.id
template_name = "autoscaler"
version = "1.25.7"
values {
basic = jsondecode(data.sbercloud_cce_addon_template.autoscaler.spec).basic
custom = merge(
jsondecode(data.sbercloud_cce_addon_template.autoscaler.spec).parameters.custom,
{
cluster_id = sbercloud_cce_cluster.cce_cluster.id
tenant_id = var.tenant_id
}
)
}
}
resource "sbercloud_cce_addon" "cce-hpa-controller" {
cluster_id = sbercloud_cce_cluster.cce_cluster.id
template_name = "cce-hpa-controller"
}
Полный пример конфигурационного файла. Cloud Native Network 2.0
terraform {
required_providers {
sbercloud = {
source = "sbercloud-terraform/sbercloud" # Initialize Cloud.ru provider
}
}
}
# Configure Cloud.ru provider
provider "sbercloud" {
auth_url = "https://iam.ru-moscow-1.hc.sbercloud.ru/v3" # Authorization address
region = "ru-moscow-1" # The region where the cloud infrastructure will be deployed
# Authorization keys
access_key = var.access_key
secret_key = var.secret_key
}
resource "sbercloud_vpc" "cce_vpc" {
name = "cce_vpc"
cidr = "192.168.0.0/16"
}
resource "sbercloud_vpc_subnet" "cce_vpc_subnet_1" {
name = "cce_vpc_subnet_1"
cidr = "192.168.0.0/24"
gateway_ip = "192.168.0.1"
primary_dns = "100.125.13.59"
secondary_dns = "100.125.65.14"
vpc_id = sbercloud_vpc.cce_vpc.id
}
resource "sbercloud_cce_cluster" "cce_cluster" {
name = "cce-cluster"
flavor_id = "cce.s2.small"
container_network_type = "eni"
vpc_id = sbercloud_vpc.cce_vpc.id
subnet_id = sbercloud_vpc_subnet.cce_vpc_subnet_1.id
eni_subnet_id = sbercloud_vpc_subnet.cce_vpc_subnet_1.ipv4_subnet_id
eni_subnet_cidr = sbercloud_vpc_subnet.cce_vpc_subnet_1.cidr
service_network_cidr = "10.247.0.0/16"
}
resource "sbercloud_cce_node_pool" "cce_cluster_node_pool" {
cluster_id = sbercloud_cce_cluster.cce_cluster.id
name = "cce-cluster-node-pool "
os = "CentOS 7.6"
initial_node_count = 1
flavor_id = "s7n.xlarge.2"
password = var.node_password
scall_enable = true
min_node_count = 1
max_node_count = 5
scale_down_cooldown_time = 100
priority = 1
root_volume {
size = 40
volumetype = "SAS"
}
data_volumes {
size = 100
volumetype = "SAS"
}
labels = {
label1 = "label1"
label2 = "label2"
}
tags = {
tag1 = "tag1"
tag2 = "tag2"
}
}
data "sbercloud_cce_addon_template" "autoscaler" {
cluster_id = sbercloud_cce_cluster.cce_cluster.id
name = "autoscaler"
version = "1.25.7"
}
resource "sbercloud_cce_addon" "autoscaler" {
cluster_id = sbercloud_cce_cluster.cce_cluster.id
template_name = "autoscaler"
version = "1.25.7"
values {
basic = jsondecode(data.sbercloud_cce_addon_template.autoscaler.spec).basic
custom = merge(
jsondecode(data.sbercloud_cce_addon_template.autoscaler.spec).parameters.custom,
{
cluster_id = sbercloud_cce_cluster.cce_cluster.id
tenant_id = var.tenant_id
}
)
}
}
resource "sbercloud_cce_addon" "cce-hpa-controller" {
cluster_id = sbercloud_cce_cluster.cce_cluster.id
template_name = "cce-hpa-controller"
}
для Dev & Test