#17 DevOps. Как развернуть виртуальные машины в Proxmox с помощью Terraform

Мы уже рассматривали простой запуск виртуалок с помощью Terraform на мощностях Yandex Cloud. А что если нужно сделать это локально, например на Proxmox? Давайте попробуем Хостовая машина с Terraform — Fedora 40Proxmox — 8.2.2Terraform — 1.8.5Terraform provider plugin for Proxmox — 3.0.1-rc1 С установкой Terraform думаю сложностей не возникнет, платформы у всех разные, просто скину … Читать далее

#16 DevOps. Как создать виртуальные машины в Yandex Cloud с помощью Terraform

В документации Yandex Cloud есть 2 полезные статьи на тему начала работы с интерфейсом командной строки и Terraform. Приведу обе, так как у вас может быть как Windows или Linux, так и MacOS https://yandex.cloud/ru/docs/cli/quickstart https://yandex.cloud/ru/docs/tutorials/infrastructure-management/terraform-quickstart После установки Yandex Cloud CLI и Terraform давайте представим, что у нас есть задача создать виртуальные машины для установки Kubernetes … Читать далее

#15 DevOps. Kubernetes. Deploy WordPress with ArgoCD and Helm

Развернем WordPress с помощью ArgoCD и Helm. Наш тестовый кластер вместо привычных MicroK8s и minikube сегодня будем запускать с помощью KinD. LoadBalancer в данном примере рассматривать не будем, ставим локально, воспользуемся port-forward. Устанавливаем на Ubuntu 22.04 LTS, где уже установлены Helm, Docker, kubectl. Установим KinD Создадим кластер из одной master ноды и двух worker Установим … Читать далее

#14 DevOps. Kubernetes. Helm. Deploy в Kubeapps

Представьте, что вам нужно собрать игрушку из конструктора. У вас есть много деталей, инструкция, но задача от этого не становится легче. Helm — это набор готовых блоков для нашего конструктора и инструкция к ним. Вместо того, чтобы собирать приложение из отдельных частей (сервисов, конфигураций и зависимостей) вручную, мы используем Helm, который: Таким образом, Helm упрощает … Читать далее

#13 DevOps. Kubernetes. Ingress Controllers

Ingress Controller можно сравнить с консьержем в многоквартирном доме, где квартиры — это ваши приложения, к которым вы хотите получить доступ извне. Когда кто-то из интернета хочет получить доступ к вашему приложению, запрос сначала поступает на Ingress Controller, а он уже перенаправляет его по адресу.  Рассмотрим на практике. Создадим виртуальную машину на Ubuntu 22.04 LTS, … Читать далее

#12 DevOps. Docker. Как сделать свой DockerHub

Пример простого аналога DockerHub для тестовой среды Откроем браузер ip-address:8081 Узнаем наш пароль Жмем Sign In (правый верхний угол) и логинимся — admin и ваш пароль Далее выполним то, что нам предлагает Setup wizard Создадим свой локальный репозиторий В Веб-интерфейсе нажимаем на значок шестеренки и выбираем слева Repositories -> Create repository -> docker (hosted) Задаем … Читать далее

#11 DevOps. Kubernetes. Немного о сети в Kubernetes

Для Pods и Services в Kubernetes создаются DNS записи следующего вида: ClusterIP открывает доступ к сервису по внутреннему IP-адресу в кластере и делает его доступным только внутри кластера. NodePort открывает сервис на том же порту каждого выбранного узла в кластере с помощью NAT и делает его доступным вне кластера через <NodeIP>:<NodePort>. Диапазон портов 30000-32767 LoadBalancer … Читать далее

#10 DevOps. Kubernetes. Как установить Kubernetes с помощью KubeSpray

Создадим 4 виртуальные машины на Debian 12 Мы будем устанавливать все с отдельной машины, представим, что это наш рабочий ПК Настроим подключение по ключу с нашей машины до серверов  Проверим На всех ВМ Клонируем kubespray Установим Ansible Перейдем к Kubespray Здесь придется подождать Проверим на master ноде Запустим nginx Проверим ip_address:31700 // у вас будет … Читать далее

#9 DevOps. Kubernetes. Что такое Namespace, Pod, Deployment и DaemonSet

Namespace разделяет ресурсы кластера между пользователями за счет квоты ресурсов. Позволяет изолировать объекты и ресурсы, а также ограничить доступ на уровне ИБ. Namespace не могут быть вложенными, а имена ресурсов должны быть уникальными в пределах одного namespace. Полезная команда Про Pod уже говорили ранее, но есть что дополнить. В Pod может быть 2 типа контейнеров: … Читать далее

#8 DevOps. Docker. Docker Compose и другие tips & tricks

Рассмотрим как запустить и соединить 2 контейнера на примере MySQL и Adminer Проверим ip_address:8080 Логинимся Нажимаем Войти Для удобства и автоматизации работы с контейнерами в Docker есть удобный инструмент — Docker Compose. Посмотрим как он работает на примере выше Проверим ip_address:8080 Логинимся как в примере выше Как видим запуск через Docker Compose намного удобнее и … Читать далее