У меня есть несколько проектов, развернутых в одном гигантском кластере 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, чтобы получить это.
Также, если бы можно было настроить его так, чтобы каждое пространство имен позволяло видеть только себя, а не больше, чем это в кластере.
По соображениям безопасности мне нужно установить это так, но не знаю как.