Деплой k8s через kubespray
Кластера разворачиваем в проекте otusplatform-kubespray
.
Создаем JSON-ключ для пользователя terraform
.
Кладем созданный ключ под именем account.json
в каталог terraform
.
Деплой ВМ
Установить Terraform provider for Ansible для подключения dynamic inventory в Ansible из Terraform (состоит из 2-х частей: провайдер для Terraform и скрипт dynamic inventory для Ansible).
В variables.tf
можно устанавливать количество master/worker-нод, etcd ставится на master-ноды.
Создаем ноды:
cd terraform
cp terraform.tfvars.example terraform.tfvars
# Прописать в terraform.tfvars свои параметры
terraform init
terraform plan
terraform apply
В выводе terraform apply
будут адреса master- и worker-нод.
Деплой Kubernetes
Установить переменную окружения ANSIBLE_TF_DIR
, указывающую путь к рабочей директории terraform.
Разворачивем k8s кластер:
git clone https://github.com/kubernetes-sigs/kubespray.git
cd kubespray
export ANSIBLE_TF_DIR=../terraform
ansible-playbook -i /etc/ansible/terraform.py --become --become-user=root \
--user=user --key-file=~/.ssh/id_rsa_otusplatform_kubespray cluster.yml