DevOps на минималках
3.06K subscribers
109 photos
62 videos
86 links
Все самое полезное для девопсера в одном канале.

1. Библиотека книг и статей по теме DevOps.
2. Задачи и тесты по DevOps для тренировки и обучения.
3. Вопросы с собеседований по DevOps и ответы на них.

по рекламе: @jannytg
Download Telegram
Назовите главные компоненты архитектуры Kubernetes

Master-ноды (master node, control plane) координируют все активности кластера: распределяют и резервируют ресурсы, управляют состоянием контейнеров, масштабируют, раскатывают обновления. Мастер-ноды состоят из следующих компонентов:

🔵kube-apiserver — это точка входа в панель управления master-ноды. Он отвечает за взаимодействие между master- и worker-нодами, отслеживает состояние worker-узлов и оповещает master о важных изменениях;
🔵kube-scheduler отвечает за распределение нагрузки на рабочие узлы, постоянно отслеживает, сколько ресурсов сейчас доступно и сколько из них задействовано под нагрузку на каждом узле. Он решает, на каком узле запускать новый Pod;
🔵Controller Manager отвечает за работу контроллеров: Deployment, ReplicaSet, StatefulSets, DaemonSet, Jobs, CronJob;
🔵ETCD хранит информацию о настройках и состоянии кластера, его метаданные. Представляет собой распределенную базу данных в формате ключ-значение.


Nodes (workers) — рабочие узлы в кластере. На них запускаются поды с контейнерами.

На каждой worker-ноде Kubernetes работают:

🔵kubelet — процесс, который запускает, удаляет, обновляет поды с контейнерами;
🔵kube-proxy — конфигурирует правила сети на рабочих узлах.

Схема архитектуры и основных компонентов Kubernetes на картинке ниже


#kb #собес
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Python для сетевых
инженеров


Автор:
Эрик Чоу
Год издания:
2023

#devops #python #ru

Скачать книгу
👍7🔥2
Kubernetes-вопрос. Что такое CNI-плагин и для чего он нужен?

Аббревиатура CNI расшифровывается как Container Network Interface. Он представляет собой некий уровень абстракции над реализацией сети. Мы можем работать с верхнеуровневыми абстракциями вроде «IP-адрес PODа», Endpoint.
За то, как это будет реализовано на физическом уровне, отвечает CNI-плагин. Существует множество CNI-плагинов (например, Flannel, Calico, Cilium), которые реализуют разный функционал и показывают разную сетевую производительность. От простейших, которые используют для работы L3-маршрутизацию, правила iptables и IPVS, до достаточно сложных, которые, например, могут осуществлять шифрование внутреннего трафика в кластере, поддержку VLAN, маршрутизацию на основе IBGP, поддержку EGRESS и прочее.
🔥5
Kubernetes. Можем ли мы опубликовать приложение, работающее по бинарному протоколу, например postgresql, через ingress?

Да, многие ингресс-контроллеры поддерживают публикацию бинарных протоколов, но это неудобно. Kubernetes ingress сам, как правило, публикуется при помощи Kubernetes service. Для каждой публикации приложения по бинарному протоколу через ingress придётся дополнительно описывать Kubernetes service.
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Не делайте это, если вы DevOps или Админ

#devops #shorts
👍7
Как удалить файл с именем -rf?
Anonymous Quiz
12%
rm -rf
61%
rm ./-rf
12%
rm rf
14%
Никак
👍8
Kubernetes-вопрос. Какая роль у контроллера DaemonSet?

DaemonSet используется в Kubernetes, когда нужно запустить один или несколько подов на всех рабочих узлах кластера. То есть при запуске новых нод вам не потребуется вручную запускать поды, которые должны там быть для каких-то служебных задач. Например, с помощью него можно запустить поды с Prometheus Node Exporter для мониторинга, collectd или поды с fluentd or logstash для логирования узлов.

Примечание: это не полный список контроллеров, есть еще
Jobs.
👍8
Использование Docker

Автор:
Моуэт Э.
Год издания:
2017

#docker #ru

Скачать книгу
👍8
Ускоряйся! Наука DevOps

Автор:
Николь Ф.
Год издания:
2020

#devops #ru

Скачать книгу
🔥51👍1
Kubernetes. Каким образом мы можем вывести ноду из работы для обслуживания?

Мы можем запретить запуск PODов на ноде с помощью kubectl cordon и удалить PODы с ноды при помощи kubectl drain.
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Как ищет работу начинающий DevOps

#devops #shorts
👍6🤡1
Какой инструмент обычно используется для непрерывной интеграции и непрерывного развертывания (CI/CD)?
Anonymous Quiz
68%
Jenkins
11%
Docker
13%
Git
8%
Ansible
👍6
Kubernetes. Что такое под (pod)?

Под — это самая маленькая сущность в Kubernetes, в которой запускаются контейнеры. Контейнеров внутри пода может быть несколько.

Помимо контейнеров, у каждого пода есть:

— уникальный IP-адрес, который позволяет подам общаться друг с другом;
— хранилище PV (по необходимости);
— данные по конфигурации, которые определяют, как контейнер должен запускаться.

Внутри пода может быть один или несколько контейнеров
👍12
Что из перечисленного НЕ является инструментом управления конфигурацией?
Anonymous Quiz
4%
Chef
5%
Puppet
4%
Ansible
86%
Jira
👍3👎21
Kubernetes для DevOps

Автор:
Джон Арундел
Год издания:
2020

#devops #ru

Скачать книгу
👍11
Kubernetes. Приложение перестало работать — как понять, что случилось?

Причин, по которым приложение не работает в кластере Kubernetes, много.

Вот самые распространенные:

🔵под отсутствует;
🔵под не запускается (статус Pending);
🔵под запускается, но падает с ошибкой (статус CrashLoopBackOff);
🔵под работает (статус Runnung), но недоступен по сети.

Ниже кратко рассмотрим алгоритмы, позволяющие понять, что же все-таки случилось.

🔵 Для начала нужно убедиться, что манифест выполнился и под действительно зарегистрирован в кластере. Если подов и деплоймента не находится, проверьте манифесты.

🔵Если поды находятся в статусе Pending, значит Scheduler не может найти подходящую ноду для запуска пода. На это тоже может быть много причин: недостаточно ресурсов в кластере, несовпадение taints/tolerances, невозможность скачать образ и многое другое. Найти причину помогут события, связанные с подом, однако некоторые проблемы (например, отказ Scheduler) не попадут в этот список. Также проверьте статус нод в кластере и селекторы, указанные в манифесте.

🔵Если под был назначен ноде, но при запуске произошла ошибка, под будет иметь статус CrashLoopBackOff и кластер будет предпринимать попытки запустить его повторно. Обычно это происходит в случае ошибки в самом приложении внутри контейнера, а найти причину обычно помогают логи (если приложение их пишет, конечно).

🔵Следующая ситуация — поды работают (статус Running), однако не доступны по сети из других подов. Для начала нужно проверить, создан ли Service с соответствующим селектором. Также необходимо проверить, что они находятся в одном namespace.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤓1