← До фільтрів та технологій

← До списку лабораторних по Kubernetes

Kubernetes Лабораторна 16: Обмеження трафіку через NetworkPolicy

Технологія: Kubernetes

Номер лабораторної: 16 · Рівень: middle

Тема: NetworkPolicy базова ізоляція мережі

Повний опис / сценарій лабораторної:

Мета: навчитися обмежувати мережеві зєднання між pod за допомогою network policy.



Крок 1. Переконатися, що cni плагін підтримує network policy.

Пояснення: деякі прості інсталяції не мають підтримки політик, це треба перевірити в документації.



Крок 2. Створити namespace net-lab.

Команда: kubectl create namespace net-lab

Пояснення: будемо експериментувати в окремому просторі.



Крок 3. Розгорнути два deployment у namespace.

Ідея: app-frontend і app-backend з простими http сервісами, плюс відповідні service.

Пояснення: frontend повинен звертатися до backend.



Крок 4. Перевірити, що фронт може дістатися до бекенда.

Пояснення: через exec у pod frontend виконай curl на service backend.



Крок 5. Створити network policy, яка забороняє весь вхідний трафік за замовчуванням.

Yaml: policy з pod selector match all і policy type ingress без allow правил.

Пояснення: такий підхід блокує зайві підключення.



Крок 6. Застосувати policy.

Команда: kubectl apply -f np-deny-all.yaml -n net-lab

Пояснення: підключення до pod перестануть працювати.



Крок 7. Додати policy, що дозволяє трафік від frontend до backend.

Yaml: network policy з pod selector для backend і from selector по labels frontend.

Пояснення: тільки frontend зможе підключатися до backend.



Крок 8. Перевірити доступ.

Пояснення: знову виконай curl з frontend до backend і з іншого pod, який не має потрібного label.



Крок 9. Обміркувати outbound правила.

Пояснення: додай правила egress, якщо потрібно обмежити вихідний трафік з pod.



Крок 10. Міні звіт.

Завдання: опиши, як ти використаєш network policy для ізоляції середовищ stage і prod.