← До списку лабораторних по Kubernetes
Повний опис / сценарій лабораторної:
Мета: навчитися обмежувати трафік між namespace щоб команди не заважали одна одній. Крок 1. Створити два namespace team-a і team-b. Команди: kubectl create namespace team-a; kubectl create namespace team-b Пояснення: кожен namespace буде окремим середовищем. Крок 2. Розгорнути однаковий сервіс у кожному namespace. Пояснення: простий nginx deployment і service web у team-a і team-b. Крок 3. Перевірити що pod з team-a може ходити у web.team-b. Пояснення: запусти тестовий pod у team-a і зроби curl на повне dns імя сервісу у team-b. Крок 4. Створити базову networkpolicy у team-b яка забороняє весь вхідний трафік. Yaml: policy з podSelector match all і порожніми ingress правилами. Пояснення: тепер ніхто не зможе підключитися до pod у team-b. Крок 5. Перевірити що запити з team-a більше не проходять. Пояснення: повтори curl з pod team-a. Крок 6. Додати правило яке дозволяє доступ тільки з pod team-b. Пояснення: у policy додай from з namespaceSelector для team-b. Крок 7. Оновити policy і сказати тест. Пояснення: pod у team-b має бачити web у team-b а pod з team-a ні. Крок 8. Додати окрему policy яка дозволяє доступ з сервісів моніторингу. Пояснення: тут можна використати label у namespace prometheus або іншого інструмента. Крок 9. Перевірити фінальну схему доступу. Пояснення: чітко задокументуй хто може звертатися до сервісу у team-b. Крок 10. Міні звіт. Завдання: опиши як ти стандартизуватимеш networkpolicy для усіх namespace у кластері.