Skip to content

andryplekhanov/sf-diploma-sprint1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

sf-diploma-sprint1

Задача

Опишите инфраструктуру будущего проекта в виде кода с инструкциями по развертке, нужен кластер Kubernetes и служебный сервер (будем называть его srv).

  1. Выбираем облачный провайдер и инфраструктуру.
  2. Описываем инфраструктуру.
  3. Автоматизируем установку.

Нам нужно:

  • кластер Kubernetes;
  • сервер srv для инструментов мониторинга, логгирования и сборок контейнеров.

Описывать инфраструктуру мы будем, конечно, в Terraform.

Надо реализовать возможность установки на сервер всех необходимых нам настроек и пакетов, будь то docker-compose, gitlab-runner или наши публичные ключи для доступа по SSH. Положите код автоматизации в Git-репозиторий.

Создание сервера srv (примерно 10 мин.)

  1. Вы должны производить действия на локальном хосте с Unix-системой (у меня Ubuntu 2204); должен быть установлен terraform; должны быть сгенерированы ssh-ключи без пароля с именами id_rsaи id_rsa.pub в директории ~/.ssh/
  2. Скачать репо и перейти в директорию git clone https://github.com/andryplekhanov/sf-diploma-sprint1.git && cd sf-diploma-sprint1/terraform
  3. Инициировать терраформ terraform init
  4. Применить terraform apply -var="yandex_cloud_token=<ваш токен>" -var="cloud_id=<ваш cloud_id>" -var="folder_id=<ваш folder_id>"
  5. В результате получаем в консоли ip-адрес контроллер-сервера srv:
external_ip_address_srv = [
  [
    "158.160.45.224",
  ],
]

Создание кластера k8s (примерно 15 мин.)

  1. Подключиться по ssh к серверу srv ssh ubuntu@<external_ip_address_srv>
  2. Сделаться суперюзером sudo su
  3. Перейти в директорию cd /opt/kubernetes_setup
  4. Запустить скрипт sh cluster_install.sh

Данный скрипт при помощи Terraform развернёт в Яндекс-облаке необходимую инфраструктуру для кластера k8s. После развёртывания получаем информацию об инфраструктуре. Нас интересует ip ингресс-контроллера и балансировщика:

instance_group_ingresses_public_ips = tolist([
  "158.160.153.244",
])

load_balancer_public_ip = tolist([
  "158.160.156.161",
])

Запомним ip. Нам они понадобятся на следующем спринте.

  1. Через 85 секунд автоматически начнётся развёртка кластера k8s при помощи Ansible.
  2. В результате получаем в консоли информацию о кластере: k8s-cluster

Удаление

Если ничего больше не нужно, то удаляем всё в 2 этапа:

  1. На сервере srv: sudo su, cd /opt/kubernetes_setup, sh cluster_destroy.sh
  2. На локальном хосте в каталоге sf-diploma-sprint1/terraform: terraform destroy -var="yandex_cloud_token=<ваш токен>" -var="cloud_id=<ваш cloud_id>" -var="folder_id=<ваш folder_id>"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published