Ingress

Ingress - это объект API, который управляет внешним доступом к сервисам в кластере, обычно по протоколам HTTP и HTTPS. Если Service работает на уровне L4 (IP и порты), то Ingress работает на уровне L7 (прикладной уровень), позволяя маршрутизировать трафик на основе доменных имен и путей URL. Как Ingress устроен внутри…

Сервисы Deep Dive

Разберем внутреннее устройство сервисов Kubernetes. Главный секрет в том, что объект Service — это не процесс и не программа, а запись в базе данных, которую считывает специальный агент на каждой ноде. Внутреннее устройство: kube-proxy На каждой ноде кластера работает компонент kube-proxy. Его задача - следить за появлением новых сервисов и эндпоинтов…

Сетевое взаимодействие pod’ов с разных нод

Когда поды находятся на разных нодах, стандартного сетевого моста (L2 Bridge) внутри одной машины уже недостаточно. Пакет должен покинуть физический интерфейс одной ноды и дойти до другой, при этом сохранив уникальность IP-адресов. Сетевая модель: L3 Routing vs Overlay Kubernetes требует, чтобы все поды могли общаться друг с другом напрямую по…

Сетевое взаимодействие pod-ов одной ноды

Сетевая модель Kubernetes строится на принципе «плоской сети». Это означает, что любой под может достучаться до другого пода по его IP-адресу без использования NAT, независимо от того, на одной ноде они находятся или на разных. Ниже разберем, как это реализовано на уровне операционной системы Linux внутри виртуальной машины (ноды). Фундаментальные…

Безопасность Kubernetes: от PSP к Pod Security Admission

Безопасность в Kubernetes постоянно эволюционирует. Одним из самых значимых изменений за последние годы стал полный отказ от Pod Security Policies (PSP) в пользу более простой и надежной системы — Pod Security Admission (PSA). Важное изменение: Лейблы узлов (Node Labels) При настройке размещения подов (например, через nodeSelector) важно помнить, что в новых…

Авторизация в Kubernetes

Авторизация в K8s происходит на уровне API-сервера. Если у вас нет прав на конкретное действие, сервер вернет ошибку HTTP 403 (Forbidden). Модули авторизации Kubernetes поддерживает несколько модулей, которые проверяются по очереди. Если хотя бы один разрешил запрос — он проходит дальше. * Node (Узел): Специальный режим для kubelet, позволяющий ему изменять только…

Аутентификация в кластере Kubernetes

Токены для доступа к API Kubernetes До версии 1.22 в Kubernetes автоматически создавались токены для доступа к API Kubernetes. Этот механизм был основан на создании секретов с токенами, которые затем можно было монтировать в работающий pod. В более новых версиях доступ к API получают непосредственно с помощью API TokenRequest…

ConfigMap и Secrets

Управление конфигурациями и безопасностью В современной разработке (IaC — Infrastructure as Code) крайне важно отделять код приложения от его настроек. Kubernetes предоставляет для этого два основных объекта: ConfigMap (для обычных данных) и Secret (для конфиденциальных данных). Эволюция хранения конфигов 1. Простой файл: Раньше настройки хранились прямо в коде или в файле…