Skip to main content
Version: 1.12-grodno (current)

Кластер Kubernetes

Документация Yandex Cloud

Все кластеры Kubernetes развертываются с помощью Terraform модулей k8s_master и k8s_nodes.


Основной кластер

k8s-medikt-net

ПараметрЗначение
Версия KubernetesПоследняя стабильная (Cloud Native)
Зона размещенияru-central1-a
Подсеть172.16.50.0/24
Public IP masterfalse (internal only)
Логированиевключено (kube-apiserver, events, audit, cluster-autoscaler)
KMS ключ24h ротация

Инфраструктура

VPC

  • Подсеть (172.16.50.0/24) - подсеть для всех узлов кластера
  • NAT Gateway - обеспечивает исходящий доступ узлов к Yandex Container Registry, Object Storage и другим сервисам
  • Route Table - маршрут по умолчанию (0.0.0.0/0) через NAT Gateway для подсети кластера

Security Groups

k8s-main-sg - базовые правила для работы кластера

  • Входящий трафик от балансировщика (health checks на 10501)
  • Входящий трафик из self_security_group (взаимодействие master-узел, узел-узел)
  • Входящий трафик из 10.96.0.0/16, 10.112.0.0/16 (под-под, сервис-сервис)
  • Входящий ICMP из 172.16.0.0/12, 10.0.0.0/8, 192.168.0.0/16 (отладка)
  • Исходящий трафик на 0.0.0.0/0

k8s-public-services - разрешает входящий трафик на NodePort из интернета

  • Входящий TCP на 30000-32767 из 0.0.0.0/0

k8s-master-whitelist - разрешает доступ к API Kubernetes только из доверенных сетей

  • Входящий TCP на 6443/443 из: 95.161.152.59/32, 84.201.183.0/24, 158.160.4.248/32, 51.250.53.0/24, 178.154.237.0/24

Группы узлов

core_nodes_ssd (web-api-ssd)

  • Тип: web-api-ssd
  • vCPU: 8
  • RAM: 8 GB
  • Диск: network-ssd
  • Preemptible: false
  • Auto-scale: 2-5
  • Назначение: Web API приложения
  • Labels: api_affinity=true, web_affinity=true

cc_nodes200 (cc-nodes200)

  • Тип: cc-nodes200
  • vCPU: 8
  • RAM: 8 GB
  • Диск: network-hdd (200 GB)
  • Preemptible: true (дешевая VM, может быть остановлена при нехватке ресурсов)
  • Auto-scale: 1-5
  • Назначение: Transcoding Workers, Composer, Chunker
  • Labels: workers_affinity=true, composer_affinity=true, chunker_affinity=true

transcoders (transcoder_workers8)

  • Тип: transcoders
  • vCPU: 8
  • RAM: 8 GB
  • Диск: network-ssd
  • Preemptible: true
  • Auto-scale: 1-5
  • Назначение: Transcoding workers
  • Labels: t_affinity=true

featbit (featbit_nodes)

  • Тип: featbit
  • vCPU: 4
  • RAM: 8 GB
  • Диск: network-ssd
  • Preemptible: false
  • Auto-scale: 1-2
  • Назначение: Feature flags сервер
  • Labels: featbit_affinity=true, api_affinity=false, web_affinity=false

monitoring (monitoring_nodes)

  • Тип: k8s-medikt-net-monitoring
  • vCPU: 4
  • RAM: 4 GB
  • Диск: network-ssd
  • Preemptible: false
  • Auto-scale: 1-2
  • Назначение: Мониторинг (Prometheus, Alertmanager, Grafana)
  • Labels: monitoring_affinity=true

nats (nats_nodes)

  • Тип: nats
  • vCPU: 2
  • RAM: 2 GB
  • Диск: network-ssd
  • Preemptible: false
  • Auto-scale: 3-3 (фиксированный)
  • Назначение: NATS cluster (3 ноды для отказоустойчивости)
  • Labels: nats_affinity=true

Terraform модули

k8s_master:

  • Создает кластер Kubernetes
  • Настраивает логирование в Cloud Logging
  • Создает VPC подсеть и route table
  • Создает KMS ключ для шифрования
  • Создает security groups

k8s_nodes:

  • Создает группу узлов с указанными параметрами
  • Поддерживает preemptible виртуальные машины
  • Автомасштабирование