Заметки в категории IaC

Дрейф в Terraform: плохой, уродливый и Черный Лебедь (перевод)

"Дрейф в Terraform" - это хорошо известная проблема. Он возникает, когда изменения происходят с ресурсами вашей облачной среды, которые не были вызваны изменениями в Terraform, и приводит к различиям между тем, что фактически настроено в вашем облаке, и тем, что объявлено в вашем коде Terraform. Другими словами, ваше облако "отклонилось" от …

k8s кластер из одной ноды

Для начала необходимо установить Docker:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update && sudo apt install docker-ce

На данный момент kubernetes не поддерживает работу систем …

CoreDNS CrashLoopBackOff

После установки k8s иногда бывает, что kubectl get pods дает список подов, где coredns падает при запуске с ошибкой:

NAME                              READY   STATUS             RESTARTS   AGE
coredns-5c98db65d4-gz6bt          0/1     CrashLoopBackOff   114        10h
coredns-5c98db65d4-tkgxt          0/1     CrashLoopBackOff   114        10h
etcd-kmaster                      1/1     Running            0          10h
kube-apiserver-kmaster            1/1     Running            0          10h
kube-controller-manager-kmaster   1 …

Docker login в Kubernetes

Довольно часто требуется организовать получение образов контейнеров из приватных репозиториев. В случае прямой работы с docker мы просто используем команду docker login и все работает.

Но вот в kubernetes мы не работаем с docker напрямую и тут сразу возникает вопрос - как залогиниться в наш приватный репозиторий.

Делается это довольно просто …

Debug упавшего packer'a

Эта заметка скорее просто напоминание, что читать документацию хорошо. :)

Итак, представим ситуацию, что вы собираете AMI для AWS с помощью packer и ваш провижнинг падает с ошибкой. Понять, что произошло, из контекста ошибки вы не можете (например не запустился Nginx, а разворачиваете вы все с Ansible).

Как быть? Можно взять …

Minio selfhosted S3 + хранение состояния Terraform

Minio - это selfhosted решение, аналог AWS S3. Поддерживает почти полностью API от S3 и можно его интегрировать для того, чтоб хранить свои файлы, почти не меняя кода, который предназначен для работы с Amazon.

Поднимается он с помощью docker-compose буквально с считанные минуты.

Кусок для docker-compose.yml:

  minio:
    image: minio/minio …

AWS ELB с Terraform

ToC

  1. Packer от Hashicorp
  2. Terraform для AWS
  3. AWS VPC с Terraform
  4. AWS EC2 с Terraform
  5. AWS ELB с Terraform

Что такое EC2

Amazon Elastic Load Balancer (Amazon ELB) автоматически распределяет входящий трафик приложений по нескольким целевым объектам, таким как инстансы Amazon EC2, контейнеры или IP-адреса. Сервис входит в инфраструктуру Amazon …

AWS EC2 с Terraform

ToC

  1. Packer от Hashicorp
  2. Terraform для AWS
  3. AWS VPC с Terraform
  4. AWS EC2 с Terraform
  5. AWS ELB с Terraform

Что такое EC2

Amazon Elastic Compute Cloud (Amazon EC2) — веб-сервис, который предоставляет вычислительные мощности в облаке (по простому - виртуальные сервера). Сервис входит в инфраструктуру Amazon Web Services.

Настройка

Приступим к конфигурации …

Читабельные ошибки в Ansible

Очень многие сейчас используют весьма удобный инструмент конфигурации Ansible.

Долгое время читать ошибки, которые он выдает было мукой. Но НАКОНЕЦ!!! Наконец Ansible научился выдавать вменяемый текст ошибок.

Для того, чтоб включить нормальное поведение необходимо обновиться до версии 2.5.0 или выше и указать в конфиге:

# Use the YAML callback …

AWS VPC с Terraform

ToC

  1. Packer от Hashicorp
  2. Terraform для AWS
  3. AWS VPC с Terraform
  4. AWS EC2 с Terraform
  5. AWS ELB с Terraform

Что такое VPC

Amazon Virtual Private Cloud (Amazon VPC) – это логически изолированный раздел облака AWS, в котором можно запускать ресурсы AWS в созданной пользователем виртуальной сети. Пользователь полностью контролирует свою среду …