DevOps FM
4.93K subscribers
637 photos
12 videos
10 files
752 links
♾️ Канал для тех, кто живёт DevOps и системным администрированием.

Новости, статьи, best practices, инструменты и чилл-аут контент. Cloud Native, Docker, Kubernetes, CI/CD, БД, мониторинг etc.

По вопросам — к Ладе @b_vls
Download Telegram
Привет! В эту пятницу предлагаем разобраться, как Kubernetes управляет сетями — от ядра Linux до сервис-мешей.

Лука Каваллин написал подробную статью о том, что происходит с пакетами и подами в Kubernetes-кластере. В статье — фундаментальные принципы работы сетей в Linux, контейнерах и Kubernetes, а также современные абстракции: Service, Ingress и Gateway API. Автор не обошёл стороной и работу в мультикластерах, и типичные проблемы с сетевой доступностью между подами.

С деталями можно ознакомиться по ссылке.

Желаем приятного чтения! Тем, кто отдыхает — хороших выходных, а тем, кто работает — спокойных дежурных смен!

#devops #kubernetes #networking #pods
🔥72👍1
Как работать с Docker Networking: концепции и применение

👩‍💻Автор статьи описывает классический случай из практики с Docker: разработчик запускает контейнер, подключается к нему через localhost и…возникает проблема. Веб-сервис развёрнут в одном контейнере, БД — в отдельном. Как настроить сетевое взаимодействие между ними?
На деле Docker уже делает всю работу – ниже расскажем об основном, подробнее найдете в статье.

👀Почему проблема возникла?
При установке Docker создает дефолтный сетевой мост (network-bridge), где он выстраивает коммуникацию по временным IP таким образом, что многоконтейнерные приложения становятся неудобными: разработчик не находит сервисы по имени, и каждый перезапуск меняет адреса контейнеров.

Как решать?
Для устранения проблемы автор предлагает использовать user-defined bridge сети. При создании такой сети Docker автоматически включает внутренний DNS, и контейнеры получают постоянные hostname. Всё, что потребуется от разработчика – запустить контейнеры и подключить их к одной сети, чтобы приложение могло обращаться к базе по имени к БД, независимо от IP и рестарта контейнера.

Контейнеры с user-defined bridge

services:
app2:
image: nginx
networks:
- mybridge

app3:
image: alpine
command: ["sh", "-c", "while true; do sleep 3600; done"]
networks:
- mybridge

networks:
mybridge:
driver: bridge


Контейнер со статическим IP и объявленная сеть
Для выполнения данного решения разработчик создает пользовательскую bridge-сеть с объявленным пулом адресов (subnet) и назначением контейнеру фиксированного IPv4 через ipv4_address. Так, мы обеспечиваем предсказуемую адресацию, полезную для интеграции с системой, которая зависит от IP. При этом сеть сохраняет встроенный DNS Docker, позволяющий обращаться к контейнерам по имени.


services:
app:
image: nginx
networks:
custom_net:
ipv4_address: 172.20.0.10

networks:
custom_net:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/24


🚀Вывод: для многоконтейнерных приложений не стоит использовать дефолтный bridge. Создавайте собственные сети или пользуйтесь Docker Compose, чтобы надёжно связать сервисы по их именам, а не по временным IP-адресам.

#devops #docker #dockercompose #networking #containers
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍9🔥6