Программирование {BookFlow}
15.5K subscribers
1.69K photos
517 videos
145 files
2.25K links
Мы публикуем лекции и книги по программированию, видеоуроки, доклады с IT конференций, новости технологий.

Группа в https://vk.com/bookflow.

По всем вопросам @evgenycarter

РКН https://clck.ru/3KoAbH
Download Telegram
Архитектура Kubernetes

#devops

👉 @Bookflow
👍5
Как работает докер🐳

#devops

👉 @Bookflow
👍3👏1
Что такое Docker? В чем отличие контейнера от образа?

Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации.

Образ — шаблон приложения, который содержит слои файловой системы в режиме "только-чтение".

Контейнер — запущенный образ приложения, который кроме нижних слоев в режиме "только чтение" содержит верхний слой в режиме "чтение-запись".

#devops

👉@bookflow
👍8
Чем отличается StatefulSet от Deployment?

Deployment — ресурс Kubernetes предназнваенный для развертывания приложения без сохранения состояния. При использовании PVC все реплики будут использовать один и тот же том, и ни один из них не будет иметь собственного состояния.

StatefulSet — поддерживают состояние приложений за пределами жизненного цикла отдельных модулей pod, например для хранилища. Используется для приложений с отслеживанием состояния, каждая реплика модуля будет иметь собственное состояние и будет использовать свой собственный том.

#devops

👉@bookflow
👍3
Жизнь коротка, используйте Dev Tools

#devops

👉@bookflow
❤3👍3👏1
Собрал основные концепции Docker в одну диаграмму

#devops

👉@bookflow
🔥4👍3👏1
Настройка CI/CD для самых маленьких разработчиков

Считается, что построение CI/CD - задача для DevOps. Глобально это действительно так, особенно если речь идет о первоначальной настройке. Но часто с докручиванием отдельных этапов процесса сталкиваются и разработчики. Умение поправить что-то незначительное своими силами позволяет не тратить время на поход к коллегам (и ожидание их реакции), т.е. в целом повышает комфорт работы и дает понимание, почему все происходит именно так.

Настроек для пайплайна Gitlab очень много. В этой статье, не вдаваясь в недра тюнинга, поговорим о том, как выглядит скрипт пайплайна, из каких блоков он состоит и что может содержать.

https://habr.com/ru/companies/maxilect/articles/799177/

#devops

👉@bookflow
👍5👏1
Чем отличается Kubernetes от Openshift?

Openshift имеет более строгие политики безопасности и модели аутентификации.
Openshift поддерживает полную интеграцию CI/CD Jenkins.
Openshift имеет веб-консоль по-умолчанию. В Kubernetes консоль необходимо дополнительно устанавливать консоль.
В Kubernetes возможно устанавливать сторонние сетевые плагины. В Openshift используется собственное сетевое решение Open vSwitch, которое предоставляет 3 различный плагина.
Kubernetes может быть установлен практически на любой дистрибутив Linux. Openshift имеет ограничения на устанавливаемые дистрибутивы, преимущественно используются RH-дистрибутивы.
Kubernets доступен в большинстве облачных платформ - GCP, AWS, Azure, Yandex.Cloud. Openshift доступен на облачной платформе Azure и облаке от IBM.
По-умолчанию, в Openshift поды в кластере могут быть запущены только под обычным пользователем, чтобы запустить под под пользователем root необходимо выдать права для сервисного аккаунта. В Kubernetes по-умолчанию поды могут быть запущены по пользователем root.

#devops #девопс

👉@bookflow
👍3❤1🙏1
Набор дашбордов Grafana для мониторинга Kubernetes с помощью Prometheus.

Данные дашборды предназначены для использования с метриками Prometheus, собираемыми с помощью kube-prometheus и prometheus-node-exporter.

Они покрывают различные аспекты кластера Kubernetes, включая:

- Состояние узлов
- Использование CPU и памяти
- Состояние подов
- Производительность сети
- Состояние ивентов в кластере
- Мониторинг ingress-контроллеров и CoreDNS

Все дашборды можно легко импортировать в Grafana через JSON-файлы, представленные в этом репозитории.

https://github.com/dotdc/grafana-dashboards-kubernetes

#devops

👉@bookflow
👍5
K9s

Предоставляет терминальный пользовательский интерфейс для взаимодействия с вашими кластерами Kubernetes. Цель этого проекта - упростить навигацию, наблюдение и управление приложениями в естественных условиях. K9s постоянно следит за изменениями в Kubernetes и предлагает последующие команды для взаимодействия с наблюдаемыми ресурсами.

https://github.com/derailed/k9s

#devops

👉@bookflow
👍3❤2
SuperEdge

Это система управления контейнерами с открытым исходным кодом для пограничных вычислений, позволяющая управлять вычислительными ресурсами и контейнерными приложениями в нескольких пограничных регионах. В текущем подходе эти ресурсы и приложения управляются как единый кластер Kubernetes. Родной кластер Kubernetes может быть легко преобразован в кластер SuperEdge.

https://github.com/superedge/superedge

#devops

👉@bookflow
👍3❤2
Sveltos: Kubernetes add-on controller

Это дополнительный контроллер Kubernetes, который упрощает развертывание и управление дополнениями и приложениями на нескольких кластерах. Он запускается на управляющем кластере и может программно развертывать и управлять дополнениями и приложениями на любом кластере в парке, включая сам управляющий кластер. Sveltos поддерживает различные форматы дополнений, включая диаграммы Helm, необработанный YAML, Kustomize, Carvel ytt и Jsonnet.

https://github.com/projectsveltos/addon-controller

#devops

👉 @bookflow
👍1
Media is too big
VIEW IN TELEGRAM
Полный курс по Kubernetes за 10 часов

Это видео Edureka Kubernetes Full Course поможет вам понять и изучить основы Kubernetes. Этот курс по Kubernetes идеально подходит как для новичков, так и для профессионалов, которые хотят освоить основы Kubernetes.В этом видео рассматриваются следующие темы:

Introduction
Introduction to Containers
Need for Kubernetes
What is Kubernetes and What it's not
Kubernetes vs Docker Swarm
Use-Case: Kubernetes
Introduction to Namespaces
Types of Namespaces
Container Design Patterns
Introduction to Docker
Kubernetes Installation Steps
Kubernetes Architecture
Kubernetes Dashboard
Types of View in Kubernetes Dashboard
Kubernetes Cluster
Pods, Services & Ingress Networks
Case Study
Hands-On
Replication Controller & ReplicaSet
Deployment Controllers
Deployment Use-Cases
Kubernetes Multiple Schedulers
Set up a Multi-Master cluster using kubeadm
Network Failures
Cluster Troubleshooting

источник

#devops

👉 @bookflow
🔥4👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Блокировка состояния Terraform с использованием S3 (без DynamoDB)

В этом посте мы рассмотрим:

- Зачем нужна блокировка состояния Terraform
- Блокировка состояния с помощью DynamoDB
- Блокировка состояния только с использованием S3, без DynamoDB
- Когда стоит использовать DynamoDB
- Когда можно обойтись только S3
- Лучшие практики хранения state-файлов в S3

https://devopscube.com/terraform-state-locking-with-s3/

#devops

👉 @Bookflow
👍2
Анатомия Kubernetes - как это работает изнутри? ☸️

Часто мы используем kubectl, не задумываясь, что происходит «под капотом». На этой схеме отлично разложено устройство кластера Kubernetes. Давайте разберем три главных уровня архитектуры.

1. Control Plane (Панель управления) - «Мозг» кластера 🧠

Это центр принятия решений. Именно здесь определяется, что и где должно работать.

🔴API Server (в центре): Единая точка входа. Все компоненты общаются только через него (и вы через CLI тоже). Примечание: на схеме иконка подписана как Kube-Scheduler, но функционально и визуально (надпись API) это именно API Server.
🔴etcd: «Память» кластера. Надежное хранилище типа «ключ-значение», где лежит вся конфигурация и текущее состояние системы.
🔴Kube-Scheduler: Логист. Решает, на какую именно ноду (узле) запустить новый Pod, исходя из свободных ресурсов.
🔴Controller Manager: Смотритель. Следит, чтобы текущее состояние кластера совпадало с желаемым (например, если упал под - он его перезапустит).
🔴Cloud-Controller Manager: Связной с облаком. Управляет ресурсами, специфичными для облачного провайдера (AWS, Azure, GCP).


2. Worker Nodes (Рабочие узлы) - «Мускулы» кластера 💪

Здесь крутятся ваши приложения.

🔴Pod (Под): Минимальная единица в K8s. Внутри пода живет один или несколько контейнеров.
🔴Container Runtime (Docker): Движок, который фактически запускает контейнеры.
🔴Kubelet: Главный агент на узле. Получает задачи от Control Plane и гарантирует, что контейнеры в поде запущены и работают.
🔴Kube-Proxy: Сетевой регулировщик. Отвечает за сетевые правила и проброс трафика к подам.


3. Kubernetes Extensions - Инструменты 🛠

То, с чем взаимодействуем мы или системы мониторинга:

🔴CLI: Консольная утилита (kubectl).
🔴Web Admin UI: Дашборд для визуального управления.
🔴DNS: Для обнаружения сервисов внутри кластера.
🔴Monitoring: Сбор метрик ресурсов.

💡Control Plane командует, Worker Nodes исполняют, а Extensions помогают нам этим управлять.

Сохраняй шпаргалку, чтобы не путаться в компонентах! 👇

#devops #kubernetes #k8s #architecture #docker


📲 Мы в MAX

👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🐳 Как на самом деле работает Docker? Взгляд изнутри

Мы привыкли писать в терминале docker run и магия происходит сама собой. Но что стоит за этими командами? Давайте разберем архитектуру Docker на одной наглядной схеме.

Все держится на трех китах:

1️⃣ Docker Client - это ваш терминал. Вы отдаете приказы (build, pull, run), а клиент передает их главному исполнителю.

2️⃣ Docker Host - «мозги» и «мускулы» системы. Здесь живет Daemon, который слушает команды клиента и управляет объектами:

🔴Images (Образы): Чертежи или слепки ваших приложений (MySQL, Nginx, Ubuntu).
🔴Containers (Контейнеры): Запущенные версии этих образов (живые процессы).

3️⃣ Docker Registry - склад (например, Docker Hub). Здесь хранятся образы, доступные всему миру или вашей команде.

🎨 Что значат стрелки на схеме?

🔹 Build (Синяя): Клиент командует собрать образ из Dockerfile. Демон создает его на хосте.
🔸 Push (Оранжевая): Готовый образ отправляется с хоста в реестр (в облако).
💖 Pull (Розовая): Нужно скачать образ? Демон тянет его из реестра к себе на хост.
💚 Run (Зеленая): Самая частая команда. Демон берет локальный образ и разворачивает из него рабочий контейнер.

📌 Сохраняй шпаргалку в «Избранное», чтобы не путаться в потоках данных!

#docker #devops #шпаргалка #обучение

📲 Мы в MAX

👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Анатомия Kubernetes - как это работает изнутри? ☸️

Часто мы используем kubectl, не задумываясь, что происходит «под капотом». На этой схеме отлично разложено устройство кластера Kubernetes. Давайте разберем три главных уровня архитектуры.

1. Control Plane (Панель управления) - «Мозг» кластера 🧠

Это центр принятия решений. Именно здесь определяется, что и где должно работать.

🔴API Server (в центре): Единая точка входа. Все компоненты общаются только через него (и вы через CLI тоже). Примечание: на схеме иконка подписана как Kube-Scheduler, но функционально и визуально (надпись API) это именно API Server.
🔴etcd: «Память» кластера. Надежное хранилище типа «ключ-значение», где лежит вся конфигурация и текущее состояние системы.
🔴Kube-Scheduler: Логист. Решает, на какую именно ноду (узле) запустить новый Pod, исходя из свободных ресурсов.
🔴Controller Manager: Смотритель. Следит, чтобы текущее состояние кластера совпадало с желаемым (например, если упал под - он его перезапустит).
🔴Cloud-Controller Manager: Связной с облаком. Управляет ресурсами, специфичными для облачного провайдера (AWS, Azure, GCP).


2. Worker Nodes (Рабочие узлы) - «Мускулы» кластера 💪

Здесь крутятся ваши приложения.

🔴Pod (Под): Минимальная единица в K8s. Внутри пода живет один или несколько контейнеров.
🔴Container Runtime (Docker): Движок, который фактически запускает контейнеры.
🔴Kubelet: Главный агент на узле. Получает задачи от Control Plane и гарантирует, что контейнеры в поде запущены и работают.
🔴Kube-Proxy: Сетевой регулировщик. Отвечает за сетевые правила и проброс трафика к подам.


3. Kubernetes Extensions - Инструменты 🛠

То, с чем взаимодействуем мы или системы мониторинга:

🔴CLI: Консольная утилита (kubectl).
🔴Web Admin UI: Дашборд для визуального управления.
🔴DNS: Для обнаружения сервисов внутри кластера.
🔴Monitoring: Сбор метрик ресурсов.

💡Control Plane командует, Worker Nodes исполняют, а Extensions помогают нам этим управлять.


#devops #kubernetes #k8s #architecture #docker

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🐳 Как на самом деле работает Docker? Взгляд изнутри

Мы привыкли писать в терминале docker run и магия происходит сама собой. Но что стоит за этими командами? Давайте разберем архитектуру Docker на одной наглядной схеме.

Все держится на трех китах:

1️⃣ Docker Client - это ваш терминал. Вы отдаете приказы (build, pull, run), а клиент передает их главному исполнителю.

2️⃣ Docker Host - «мозги» и «мускулы» системы. Здесь живет Daemon, который слушает команды клиента и управляет объектами:

🔴Images (Образы): Чертежи или слепки ваших приложений (MySQL, Nginx, Ubuntu).
🔴Containers (Контейнеры): Запущенные версии этих образов (живые процессы).

3️⃣ Docker Registry - склад (например, Docker Hub). Здесь хранятся образы, доступные всему миру или вашей команде.

🎨 Что значат стрелки на схеме?

🔹 Build (Синяя): Клиент командует собрать образ из Dockerfile. Демон создает его на хосте.
🔸 Push (Оранжевая): Готовый образ отправляется с хоста в реестр (в облако).
💖 Pull (Розовая): Нужно скачать образ? Демон тянет его из реестра к себе на хост.
💚 Run (Зеленая): Самая частая команда. Демон берет локальный образ и разворачивает из него рабочий контейнер.

📌 Сохраняй шпаргалку в «Избранное», чтобы не путаться в потоках данных!

#docker #devops #шпаргалка #обучение

📲 Мы в MAX

👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3🎉2
🔎 Kor — найти забытые ресурсы в Kubernetes

После экспериментов и релизов в кластере остаются ConfigMaps, Secrets, PVC, Services и другие ресурсы, которые уже никто не использует. Kor помогает собрать их в список и показывает, почему считает каждый ресурс неиспользуемым.

Начать проверку можно с одного namespace:


kor all --include-namespaces my-namespace --show-reason


Результат можно вывести таблицей, в JSON или YAML. Есть фильтрация по namespace и меткам, а также запуск по расписанию через Helm.

⚠️ Не удаляйте всё найденное автоматически: ресурс может использоваться приложением без явной ссылки в манифестах. Сначала проверьте список и причины, особенно для Secrets и ConfigMaps. Удаление в Kor запускается отдельно флагом --delete.

🔗 Проект: https://github.com/yonahd/kor

#Kubernetes #DevOps #SRE #OpenSource

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
👍3❤1🔥1