Назад | Перейти на главную страницу

Ограничение доступа / видимости между пространствами имен с помощью компоновщика в кластере K8s

У меня есть несколько проектов, развернутых в одном гигантском кластере AKS (Azure Kubernetes Services). Там установлен linkerd 2.x. Новейшая версия (при необходимости могу обновить в любое время).

Дело в том, что я хочу ограничить доступ / видимость сервисов и пространств имен. Представьте, что следующий список POD предоставляет стандартные *: 80 HTTP-соединений.

пример

1. NS: App1
   Svc: WebApp1A
   Svc: WebApp1B
   POD: WebApp1A1
   POD: WebApp1A2
   POD: WebApp1B1
   POD: WebApp1B2
2. NS App2
   Svc: WebApp2A
   Svc: WebApp2B
   POD: WebApp2A1
   POD: WebApp2A2
   POD: WebApp2B1
   POD: WebApp2B2

Теперь я бы хотел получить эффект, например, где:

[allow] WebApp1A1 --> WebApp1B
[block] WebApp1B1 --> WebApp2A
[block] WebApp1B2 --> WebApp2A
[allow] WebApp2A1 --> WebApp1A
[allow] WebApp2A2 --> WebApp1A
[allow] WebApp2B1 --> WebApp1B
[block] WebApp2B2 --> WebApp1B

Или что-то подобное ... используя linkerd. Я знаю, что есть возможность добиться чего-то подобного с помощью istio.io, но мы используем linkerd.

Поскольку существует довольно небольшое количество ресурсов, которые занимаются ACL в linkerd, я хотел бы спросить вас, как это сделать. С какими типами объектов. Буду очень признателен за возможные примеры.

Уже прочитал:

К сожалению, я еще не знаком с контроллером входящего трафика, компоновщиком, istio, и, поскольку документации по этому поводу немного, я не знаю, с чего начать и какой тип объекта развернуть в моем кластере AKS, чтобы получить это.

Также, если бы можно было настроить его так, чтобы каждое пространство имен позволяло видеть только себя, а не больше, чем это в кластере.

По соображениям безопасности мне нужно установить это так, но не знаю как.