Differences
This shows you the differences between two versions of the page.
Previous revision Next revision | |||
— | devops:otus_course_final [2020/09/17 13:48] – [Задачи] admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Проектная работа по курсу otus kubernetes ====== | ||
+ | Разворачивание кластера в GCP: | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * Как вручную запустить кластер (можно делать из ansible) в GCP - https:// | ||
+ | * Как создавать машинки из terraform: https:// | ||
+ | | ||
+ | * Как запустить **managed** кластер GKE - https:// | ||
+ | * Какое-то самописное решение - https:// | ||
+ | * Специальный модуль для terraform: https:// | ||
+ | * Самописное решение Terraform + Ansible https:// | ||
+ | |||
+ | |||
+ | ====== Подготовка ====== | ||
+ | < | ||
+ | unzip ./ | ||
+ | sudo mv ./terraform / | ||
+ | |||
+ | echo "deb https:// | ||
+ | curl https:// | ||
+ | sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y install google-cloud-sdk kubectl | ||
+ | |||
+ | gcloud init | ||
+ | </ | ||
+ | **gcloud** выдаст ссылку, | ||
+ | Выбираем зону 1 (**us-east1-b**) и тип машин будем юзать **e2-standard-2** (2vCPU, 8GB RAM). \\ | ||
+ | Включаем необходимые APIшки: | ||
+ | gcloud services enable compute.googleapis.com | ||
+ | gcloud services enable servicenetworking.googleapis.com | ||
+ | #gcloud services enable cloudresourcemanager.googleapis.com | ||
+ | #gcloud services enable container.googleapis.com | ||
+ | Теперь можно получить токен, с которым будем ходить в GCP. | ||
+ | gcloud auth print-access-token | ||
+ | И в дальнейшем полученную строку будем юзать в качестве значения параметра **access_token** в конфиге terraform-провайдера **google**. | ||
+ | |||
+ | ====== Текущий статус ====== | ||
+ | * Поднимаются виртуалки с помощью terraform по списку. | ||
+ | * Между виртуалками есть сеть и у каждой есть внешний IP. | ||
+ | * Формируется inventory-файл для kubespray и нормально разворачивается кластер. | ||
+ | * Цепляются пара дисков (один монтируется в / | ||
+ | * Протестировал провижининг [[https:// | ||
+ | * Развернул ELK (с помощью оператора и чартика). | ||
+ | |||
+ | ====== Задачи ====== | ||
+ | * Настроить DNS-зону https:// | ||
+ | * Настроить ingress. По дефолту ставится istio, который и может быть ingress' | ||
+ | * Настроить CertManager | ||
+ | * Настроить выгрузку в docker registry собранных образов. Выгрузка работает (в docker registry в кластере). Нужно приделать сертификат для registry. https:// | ||
+ | * Создать [[https:// | ||
+ | * Разобраться с ингрессом. | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | |||
+ | |||
+ | * https:// | ||
+ | * https:// | ||
+ | * Развернуть Prometheus | ||
+ | По сетевой части нашлось вот что: https:// | ||
+ | * Нужно сделать между ними балансировщик. https:// | ||
+ | https:// | ||
+ | * Нужно прописывать DNS-записи для всех сервисов | ||
+ | * Развернуть Ingress ([[https:// | ||
+ | * Развернуть CertManager | ||
+ | * < | ||
+ | |||
+ | ====== ЛИШНЕЕ и пока не очен понятное ====== | ||
+ | Создадим Service Account: | ||
+ | gcloud iam service-accounts create otus-course-project --display-name "Otus Course Project Service Account" | ||
+ | И посмотрим какие с ней связаны ключи: | ||
+ | gcloud iam service-accounts keys list --iam-account=otus-course-project@otus-kuber-course.iam.gserviceaccount.com | ||
+ | Сгенерируем новый (https:// | ||
+ | gcloud iam service-accounts keys create ./ | ||
+ | В результате - получим файлик **otus-kubernetes-course.yaml**, | ||
+ | И потом активируем его: | ||
+ | gcloud auth activate-service-account otus-course-project@otus-kuber-course.iam.gserviceaccount.com --key-file=./ | ||
+ | Также можно привязать уже имеющийся файлик примерно вот так: https:// | ||
+ | В дальнейшем переключаться между аккаунтами можно так: | ||
+ | gcloud config set account otus-course-project@otus-kuber-course.iam.gserviceaccount.com | ||
+ | |||