VK Cloud logo

Terraform көмегімен бірінші буындағы кластерді құру

Төменде Terraform көмегімен бірінші буындағы кластерді құру сипатталады. Сондай-ақ бірінші буындағы кластерді VK Cloud жеке кабинетінде де құра аласыз.

Әртүрлі кластерлерді құруға арналған дайын конфигурациялық файлдар мысалдары Terraform бөлімінде келтірілген.

Кластерді құру алдында

  1. Кластерді құру жоспарланып отырған аймақ үшін қолжетімді ресурстармен және квоталармен танысыңыз. Әртүрлі аймақтар үшін әртүрлі квоталар бапталған болуы мүмкін.

    Қажет болса, квоталарды ұлғайтыңыз.

  2. Cloud Containers сервисіндегі Terraform пайдалану ерекшеліктерімен танысыңыз.

  3. Егер бұл әлі жасалмаса, Terraform орнатып, ортаны баптаңыз.

  4. Егер бұл әлі жасалмаса, OpenStack CLI орнатыңыз және авторизациядан өтіңіз.

  5. Terraform конфигурациялық файлын жасаңыз.

1. Қажетті дереккөздерді дайындаңыз

  1. Кластердің master-түйіндері үшін виртуалды машинаның қай түрі пайдаланылатынын анықтаңыз:

    1. Келесі пәрменді орындаңыз:

      openstack flavor list

      Қолжетімді виртуалды машина түрлері шығарылады.

    2. Қажетті виртуалды машина түрін таңдап, оның атын Name бағанынан жазып алыңыз.

  2. Кластер қай Kubernetes нұсқасымен құрылуы керек екенін анықтаңыз:

    1. Конфигурациялық файлға келесі жолдарды қосыңыз:

      data "vkcs_kubernetes_clustertemplates" "k8s-template-list" {}output "k8s-version-list" {    value = data.vkcs_kubernetes_clustertemplates.k8s-template-list.cluster_templates.*.version}
    2. Келесі пәрменді орындаңыз:

      terraform refresh
    3. Келесі пәрменді орындаңыз:

      terraform output k8s-version-list

      Kubernetes-тің қолжетімді нұсқаларының тізімі шығарылады.

    4. Қажетті Kubernetes нұсқасын таңдап, оның нөмірін жазып алыңыз.

  3. Конфигурациялық файлға дереккөздерді қосыңыз:

    1. Master-түйіндерге арналған виртуалды машина шаблоны. Мысал:

      data "vkcs_compute_flavor" "k8s-master-flavor" {    name = "STD3-2-4"}

      Шаблон атауы ретінде бұрын алынған атты көрсетіңіз.

    2. Кластер шаблоны. Мысал:

      data "vkcs_kubernetes_clustertemplate" "k8s-template" {    version = "<ВЕРСИЯ_KUBERNETES>"}

      Нұсқа ретінде бұрын алынған нұсқа нөмірін көрсетіңіз.

2. Кластер конфигурациясын сипаттаңыз

Конфигурациялық файлға кластер ресурсін қосыңыз:

resource "vkcs_kubernetes_cluster" "k8s-cluster" {  name                     = "k8s-cluster"  cluster_type             = "<ТИП_КЛАСТЕРА>"  cluster_template_id      = data.vkcs_kubernetes_clustertemplate.k8s-template.id  master_flavor            = data.vkcs_compute_flavor.k8s-master-flavor.id  master_count             = <КОЛИЧЕСТВО_MASTER_УЗЛОВ>  cluster_node_volume_type = "<ТИП_ДИСКА>"  network_id               = "<ИДЕНТИФИКАТОР_СЕТИ>"  subnet_id                = "<ИДЕНТИФИКАТОР_ПОДСЕТИ>"  availability_zone        = "<ЗОНА_ДОСТУПНОСТИ>"  floating_ip_enabled      = true}

Мұнда:

  • cluster_type — кластер түрі:

    • standart (әдепкі бойынша) — кластердің барлық master-түйіндері бір қолжетімділік аймағында орналасады. Істен шығуға төзімділік аймақ деңгейінде қамтамасыз етіледі.
    • regional — кластердің master-түйіндері үш қолжетімділік аймағының әрқайсысында орналасады, бұл аймақтардың бірі істен шыққан жағдайда да басқаруды сақтауға мүмкіндік береді. Master-түйіндердің жалпы саны — 3 немесе одан көп.
  • master_count — master-түйіндер саны. Тақ сан болуы керек. Стандартты кластер үшін master-түйіндер саны 1, 3 немесе 5 болуы керек. Аймақтық кластер үшін — 3 немесе 5. Толығырақ Сервис архитектурасы бөлімінде.

  • cluster_node_volume_type — түйіндер пайдаланатын деректерді сақтау үшін диск түрі. Таңдалған диск түрі кластердің өнімділігіне әсер етеді. Қолжетімді мәндер: ceph-ssd (әдепкі бойынша) және high-iops.

  • availability_zone — кластердің қолжетімділік аймағы. Егер кластер түрі стандартты болса, параметрді пайдаланыңыз. Москва аймағы үшін үш қолжетімділік аймағының бірін көрсетіңіз: ME1, MS1 немесе PA2.

  • availability_zones — кластердің қолжетімділік аймақтары. Егер кластер түрі аймақтық болса, параметрді пайдаланыңыз. Москва аймағы үшін үш қолжетімділік аймағын көрсетіңіз: ["ME1", "MS1", "PA2"]. Егер кластер аймақтық болса және availability_zones параметрі көрсетілмесе, қолжетімділік аймақтары автоматты түрде қойылады.

  • network_id және subnet_id — тиісінше желі мен ішкі желінің идентификаторлары. Оларды әртүрлі тәсілдермен көрсетуге болады:

    Егер қажетті желілер мен ішкі желілер бұрыннан бар болса және олардың идентификаторлары сізге белгілі болса, идентификаторларды нақты көрсетіңіз.

    Мысал:

    resource "vkcs_kubernetes_cluster" "k8s-cluster" {  name                = "k8s-cluster"  ...  network_id          = "sample-id-4212-a090-9f30519275e5"  subnet_id           = "sample-id-4bd6-bda4-f66dc7fbaa4f"  ...}
  • floating_ip_enabled — API-кластерге жария IP мекенжайын тағайындау:

    • true — кластерді құру кезінде оған интернеттен кластерге қол жеткізу үшін Floating IP мекенжайы тағайындалады. Мұндай IP мекенжайын тағайындау үшін subnet_id идентификаторы бар кластердің ішкі желісі сыртқы желіге қолжетімді маршрутизаторға қосылған болуы керек.
    • false — кластерге Floating IP мекенжайы тағайындалмайды.

Terraform көмегімен кластерге аддондарды орнату үшін қолжетімді аддондар тізімін алыңыз және қажеттілерін орнатыңыз.

3. Бір немесе бірнеше worker-түйіндер тобының конфигурациясын сипаттаңыз

Бұл операция Worker-түйіндер тобын басқару бөлімінде егжей-тегжейлі сипатталған.

4. Кластерді құру процедурасын іске қосыңыз

  1. Terraform конфигурациялық файлының дұрыстығын тексеріңіз:

    terraform validate
  2. Жоспарланған өзгерістермен танысыңыз:

    terraform plan
  3. Жоспарланған өзгерістерді қолданыңыз:

    terraform apply

    Kubernetes кластерін құру басталады. Бұл процесс кластер өлшеміне байланысты ұзақ уақыт алуы мүмкін.

Келесі не?