Skip to content

tabwizard/netology_graduation_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

24 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Ρ‹ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌ Π² Yandex.Cloud


Π¦Π΅Π»ΠΈ

  1. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°Ρ‡Π½ΡƒΡŽ инфраструктуру Π½Π° Π±Π°Π·Π΅ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° ЯндСкс.Облако.
  2. Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Kubernetes кластСр.
  3. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ систСму ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.
  4. ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сборку тСстового прилоТСния с использованиСм Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².
  5. ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ CI для автоматичСской сборки ΠΈ тСстирования.
  6. ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ CD для автоматичСского развёртывания прилоТСния.

Π­Ρ‚Π°ΠΏΡ‹ выполнСния

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктуры

Для Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°Ρ‡Π½ΡƒΡŽ инфраструктуру Π² ЯО ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Terraform.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ выполнСния:

  • Π‘ΡŽΠ΄ΠΆΠ΅Ρ‚ ΠΊΡƒΠΏΠΎΠ½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½, Ρ‡Ρ‚ΠΎ слСдуСт ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ инфраструктуры ΠΈ использовании рСсурсов;
  • Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ послСднюю ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Terraform.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ установкС ΠΈ запуску Kubernetes кластСра.

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ сСрвисный Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π² дальнСйшСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Terraform для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с инфраструктурой с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ ΠΈ достаточными ΠΏΡ€Π°Π²Π°ΠΌΠΈ. НС стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
  2. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ backend для Terraform:
    Π°. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: Terraform Cloud
    Π±. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: S3 bucket Π² созданном ЯО Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π΅
  3. НастройтС workspaces
    Π°. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: создайтС Π΄Π²Π° workspace: stage ΠΈ prod. Π’ случаС Π²Ρ‹Π±ΠΎΡ€Π° этого Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΊΡ‚ сущСствования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… workspace.
    Π±. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ workspace, Π½Π°Π·Π²Π°Π² Π΅Π³ΠΎ stage. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ workspace, создаваСмый Terraform-ΠΎΠΌ ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (default).
  4. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ VPC с подсСтями Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π·ΠΎΠ½Π°Ρ… доступности.
  5. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ terraform destroy ΠΈ terraform apply Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€ΡƒΡ‡Π½Ρ‹Ρ… дСйствий.
  6. Π’ случаС использования Terraform Cloud Π² качСствС backend ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ web-интСрфСйс Terraform cloud.

ΠžΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹:

  1. Terraform сконфигурирован ΠΈ созданиС инфраструктуры посрСдством Terraform Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€ΡƒΡ‡Π½Ρ‹Ρ… дСйствий.
  2. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Π°Ρ конфигурация инфраструктуры являСтся ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ, поэтому Π² Ρ…ΠΎΠ΄Π΅ дальнСйшСго выполнСния задания Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ измСнСния.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Kubernetes кластСра

На этом этапС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Kubernetes кластСр Π½Π° Π±Π°Π·Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ созданной инфраструктуры. ВрСбуСтся ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ доступ ΠΊ рСсурсам ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°.

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ двумя способами:

  1. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Π°Ρ установка Kubernetes кластСра.
    Π°. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Terraform ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 3 Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Compute Cloud для создания Kubernetes-кластСра. Π’ΠΈΠΏ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ слСдуСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ стоимости. Если Π² дальнСйшСм ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ инстанса, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Terraform для внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
    Π±. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ ansible ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Kubespray
    Π². Π—Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ Kubernetes Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ Ρ€Π°Π½Π΅Π΅ инстансы, Π² случаС Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ рСсурсов Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Terraform.
  2. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ сСрвисом Yandex Managed Service forΒ Kubernetes
    Π°. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ terraform resource для kubernetes ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ мастСр kubernetes с Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ΄ Π² Ρ€Π°Π·Π½Ρ‹Ρ… 3 подсСтях Π±. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ terraform resource для kubernetes node group

ΠžΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

  1. Работоспособный Kubernetes кластСр.
  2. Π’ Ρ„Π°ΠΉΠ»Π΅ ~/.kube/config находятся Π΄Π°Π½Π½Ρ‹Π΅ для доступа ΠΊ кластСру.
  3. Команда kubectl get pods --all-namespaces ΠΎΡ‚Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π±Π΅Π· ошибок.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ тСстового прилоТСния

Для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ этапу Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ тСстовоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ основноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ вашСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ.

Бпособ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ:

  1. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚:
    Π°. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с простым nginx ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ статичСскиС Π΄Π°Π½Π½Ρ‹Π΅.
    Π±. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ Dockerfile для создания ΠΎΠ±Ρ€Π°Π·Π° прилоТСния.
  2. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚:
    Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ΄, Π³Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π» ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ создан Dockerfile.

ΠžΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

  1. Git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с тСстовым ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Dockerfile.
  2. РСгистр с собранным docker image. Π’ качСствС рСгистра ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ DockerHub ΠΈΠ»ΠΈ Yandex Container Registry, созданный Ρ‚Π°ΠΊΠΆΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ terraform.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° cистСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ прилоТСния

Π£ΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для автоматичСского создания ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктуры ΠΈ поднятия Kubernetes кластСра.
Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ для настройки нашСго Kubernetes кластСра.

ЦСль:

  1. Π—Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ Π² кластСр prometheus, grafana, alertmanager, экспортСр основных ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Kubernetes.
  2. Π—Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ тСстовоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, nginx сСрвСр ΠΎΡ‚Π΄Π°ΡŽΡ‰ΠΈΠΉ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ страницу.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ способ выполнСния:

  1. Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ kube-prometheus, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Kubernetes ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для grafana, prometheus, alertmanager ΠΈ node_exporter. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ всС эти прилоТСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.
  2. Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ qbec, основанный Π½Π° jsonnet. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ helm ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ² ΠΈ helm charts
  3. Если Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС Π²Ρ‹ Π½Π΅ воспользовались Terraform Cloud, Ρ‚ΠΎ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΉΡ‚Π΅ Π² кластСр atlantis для отслСТивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ инфраструктуры.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚:

  1. Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ helm charts

ΠžΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

  1. Git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ для настройки Kubernetes.
  2. Http доступ ΠΊ web интСрфСйсу grafana.
  3. Π”Π°ΡˆΠ±ΠΎΡ€Π΄Ρ‹ Π² grafana ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ состояниС Kubernetes кластСра.
  4. Http доступ ΠΊ тСстовому ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ.

Установка ΠΈ настройка CI/CD

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ci/cd систСму для автоматичСской сборки docker image ΠΈ дСплоя прилоТСния ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°.

ЦСль:

  1. АвтоматичСская сборка docker ΠΎΠ±Ρ€Π°Π·Π° ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с тСстовым ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
  2. АвтоматичСский Π΄Π΅ΠΏΠ»ΠΎΠΉ Π½ΠΎΠ²ΠΎΠ³ΠΎ docker ΠΎΠ±Ρ€Π°Π·Π°.

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ teamcity, jenkins Π»ΠΈΠ±ΠΎ gitlab ci

ΠžΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

  1. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ci/cd сСрвиса доступСн ΠΏΠΎ http.
  2. ΠŸΡ€ΠΈ любом ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ с тСстовым ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ происходит сборка ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π² рСгистр Docker ΠΎΠ±Ρ€Π°Π·Π°.
  3. ΠŸΡ€ΠΈ создании Ρ‚Π΅Π³Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, v1.0.0) происходит сборка ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ label Π² рСгистр, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Docker ΠΎΠ±Ρ€Π°Π·Π° Π² кластСр Kubernetes.

Π§Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для сдачи задания?

  1. Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Terraform ΠΈ Π³ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ созданиС всСх рСсурсов с нуля.
  2. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ pull request с коммСнтариями созданными atlantis'ΠΎΠΌ ΠΈΠ»ΠΈ снимки экрана ΠΈΠ· Terraform Cloud.
  3. Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ ansible, Ссли Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ способ создания Kubernetes кластСра ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ansible.
  4. Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с Dockerfile тСстового прилоТСния ΠΈ ссылка Π½Π° собранный docker image.
  5. Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ Kubernetes кластСра.
  6. Бсылка Π½Π° тСстовоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Π΅Π± интСрфСйс Grafana с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ доступа.
  7. ВсС Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ рСкомСндуСтся Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ рСсурсС (github, gitlab)

Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ вопросы Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΌΡƒ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŽ?

Π§Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ частых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ:

  1. ΠŸΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΉΡ‚ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ сначала ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΈΠ»ΠΈ Π² ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°Ρ… курса ΠΈ Π”Π— ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС этого ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Ρƒ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠ³ΠΎ руководитСля. Π‘ΠΊΠΈΠ»Π» поиска ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² пригодится Π²Π°ΠΌ Π² ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
  2. Если вопросов большС ΠΎΠ΄Π½ΠΎΠ³ΠΎ, Ρ‚ΠΎ присылайтС ΠΈΡ… Π² Π²ΠΈΠ΄Π΅ Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ списка. Π’Π°ΠΊ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΌΡƒ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ….
  3. ΠŸΡ€ΠΈ нСобходимости ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚Π΅ ΠΊ вопросу ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ ΠΈ стрСлочкой ΠΏΠΎΠΊΠ°ΠΆΠΈΡ‚Π΅, Π³Π΄Π΅ Π½Π΅ получаСтся.

Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ источником ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ:

  1. Вопросы Π²ΠΈΠ΄Π° «НичСго Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. НС запускаСтся. Всё сломалось». Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Ρ‹ΠΉ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Π½Π΅ смоТСт ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° Ρ‚Π°ΠΊΠΎΠΉ вопрос Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠΉ. Π¦Π΅Π½ΠΈΡ‚Π΅ своё врСмя ΠΈ врСмя Π΄Ρ€ΡƒΠ³ΠΈΡ….
  2. ΠžΡ‚ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π½ΠΈΠ΅ выполнСния курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° послСдний ΠΌΠΎΠΌΠ΅Π½Ρ‚.
  3. ОТиданиС ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° свой вопрос. Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Ρ‹Π΅ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ, ΠΊΡ€ΠΎΠΌΠ΅ прСподавания, своими ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π˜Ρ… врСмя ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ, поэтому ΠΏΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ вопросы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ быстрыС ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ :)

РСшСниС

ВсС дСйствия Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° домашнСй машинС с ArchLinux.
Для Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΌ систСмныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для Yandex Cloud ΠΈ Gitlab:

export YC_STORAGE_ACCESS_KEY="XXXXXXXXXXXXXX-XXXXXXXXXX"
export YC_STORAGE_SECRET_KEY="XXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
export YC_SERVICE_ACCOUNT_KEY_FILE="/home/wizard/.yckey.json"
export GITLAB_PRIVATE_TOKEN="xxxxx-XXXXXXXXXXXXXXXXXXXX"
export GITLAB_AGENT_TOKEN="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ€ΡƒΠΊΠ°ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· web-интСрфСйс YC s3 backet ΠΈ ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ terraform backend:

terraform init -backend-config "access_key=$YC_STORAGE_ACCESS_KEY" -backend-config "secret_key=$YC_STORAGE_SECRET_KEY"

YC s3 backet
YC s3 backet

НапишСм манифСсты для terraform
ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌΡΡ ΠΊ app.terraform.io Ρ‡Π΅Ρ€Π΅Π· Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΉ прокси, настроим Ρ‚Π°ΠΌ наш Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с Ρ‚Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌΠΎΠΌ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΠΊΠ°ΠΊ всё само Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

YC s3 backet
YC s3 backet
YC s3 backet
YC s3 backet

Установим kubespray ΠΈ напишСм скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ hosts.yaml (ΠΈΠ½Π²Π΅Π½Ρ‚ΠΎΡ€ΠΈ для kubespray) ΠΈΠ· Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠΉ terraform-ΠΎΠΌ инфраструктуры.
НапишСм скрипты (1, 2), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚:

  • ΠΏΠΎΠ΄Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ½Π²Π΅Π½Ρ‚ΠΎΡ€ΠΈ для kubespray ΠΈΠ· шаблона,
  • ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сгСнСрированный hosts.yaml Π² созданный ΠΈΠ½Π²Π΅Π½Ρ‚ΠΎΡ€ΠΈ,
  • Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ingress-controller,
  • ΠΌΠ΅Π½ΡΡ‚ΡŒ имя кластСра,
  • ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ кластСр K8S с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ kubespray,
  • ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ .kube/config с control plane созданного kubespray кластСра Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для использования с kubectl,
  • ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ .kube/config с control plane созданного kubespray кластСра Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² gitlab для использования Π² pipeline с qbec ΠΈ kubectl,
  • ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ кластСру K8S, ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΠΎΠ΄Ρ‹ Π΅ΡΡ‚ΡŒ,
  • ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ kube-prometheus,
  • ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ gitlab agent Π² кластСр,
  • ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ qbec манифСст тСстового прилоТСния ΠΈΠ· шаблона,
  • ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ namespace Π² K8S с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ‡Ρ‚ΠΎ ΠΈ terraform workspace,
  • ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ манифСст qbec Π² кластСр K8S Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ namespace,
  • ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ pod с тСстовым ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ задСплоился,
  • Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Ρ„ΠΈΠ½Π°Π»Π΅ адрСса рСсурсов кластСра.

Запустим стартовый скрипт setup_k8s.sh, Π±ΡƒΠ΄Π΅ΠΌ ΠΆΠ΄Π°Ρ‚ΡŒ ΠΈ Π»ΡŽΠ±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ поднимаСтся инфраструктура, кластСр, дСплоятся прилоТСния ΠΈ Ρ‚.Π΄.:

YC s3 backet
YC s3 backet
YC s3 backet
YC s3 backet
YC s3 backet
YC s3 backet
YC s3 backet
YC s3 backet
YC s3 backet

Π‘Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° Yandex Cloud, посмотрим Π½Π° ΠΏΠΎΠ΄Π½ΡΠ²ΡˆΡƒΡŽΡΡ инфраструктуру:

YC s3 backet
YC s3 backet
YC s3 backet
YC s3 backet
YC s3 backet
YC s3 backet
YC s3 backet

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌΡΡ ΠΊ свСТСподнятому K8S кластСру (с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ скрипт любСзно достал .kube/config ΠΈ ΡƒΠΊΠ°Π·Π°Π» Π΅Π³ΠΎ ΠΊΠ°ΠΊ KUBECONFIG Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ нас ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ происходило ΠΊΡƒΠ΄Π° Π½ΡƒΠΆΠ½ΠΎ) ΠΈ посмотрим Π½Π° Π½Π΅Π³ΠΎ:

YC s3 backet
YC s3 backet
YC s3 backet
YC s3 backet
YC s3 backet

Π£ нас Π² кластСр ΠΈ нашС тСстовоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ задСплоилось:

YC s3 backet

И kube-prometheus ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

YC s3 backet
YC s3 backet

ПомСняСм Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ с нашим тСстовым ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ посмотрим, ΠΊΠ°ΠΊ Π½Π° gitlab ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ pipeline, собСрСт Π½ΠΎΠ²Ρ‹ΠΉ docker image ΠΈ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² кластСр:

YC s3 backet
YC s3 backet
YC s3 backet
YC s3 backet
YC s3 backet

Бсылки

ВСстовоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ доступно ΠΏΠΎ адрСсу: http://pirozhkov-aa.ru
К Grafana ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ ссылкС: http://k8s.pirozhkov-aa.ru с Π»ΠΎΠ³ΠΈΠ½ΠΎΠΌ: admin ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ: ADMIN123456!
Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ тСстового прилоТСния: https://gitlab.com/tabwizard/nginxn
Docker image для тСстового прилоТСния
Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ Docker image для дСплоя тСстового прилоТСния Π² gitlab pipeline
Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ qbec с настройками для кластСра: webtestapp
Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Terraform
Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ kubespray ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹ΠΉ Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ½Π²Π΅Π½Ρ‚ΠΎΡ€ΠΈ для kubespray

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published