#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, … Читать далее

#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 типа контейнеров: … Читать далее

#5 DevOps. Устанавливаем Kubernetes с нуля

Подготовим 4 виртуальные машины на Ubuntu Server 22 На роутере в DNS пропишем доменные имена, чтобы не редактировать все hosts Изменим hostname kube-02 kube-03 kube-04 На всех ВМ Только на master (control) ноде Выполняем на worker нодах Подождем и выполним на master ноде

#4 DevOps. Базовые объекты Kubernetes 

Pod — минимальный объект в K8s с помощью которого мы запускаем приложения. Как пример, в Docker — это контейнер, в K8s это под. Как правило в под помещают один основной контейнер и если необходимо вспомогательный. Это удобно с точки зрения масштабирования и помогает при дебаггинге. Контейнеры в поде запускаются одновременно. Полезная команда Важно отметить, что … Читать далее

#3 DevOps. Установка Kubernetes и deploy nginx

Kubernetes — это open-source платформа контейнерной оркестрации. Преимущества:High Availability (HA) — высокая доступность приложения,запущенного в нескольких экземплярахScalability — масштабируемость за счёт быстроты развёртыванияконтейнеров при увеличении нагрузкиDisaster Recovery (DR) — отказоустойчивость за счёт распределённогоколичества серверов кластера В файле config стоит обратить внимание на: Кластер состоит минимум из одной ноды, но для отказоустойчивости, как правило из нескольких. … Читать далее