Используя Nginx Ingress Controller, мы хотели бы раскрыть различные пути службы Kubernetes с различными требованиями безопасности.
/
открыто для публики
/white-list
разрешает подключения только с определенного IP-адреса
/need-key
требуется ключ API
Я бегу в AWS EKS.Версия Kubernetes выглядит следующим образом: v1.12.6-eks-d69f1b
.
Если мы используем аннотации, они применяются ко всему сервису.В идеале я хотел бы применить аннотацию только к пути.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-myServiceA
annotations:
# use the shared ingress-nginx
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: myServiceA.foo.org
http:
paths:
- path: /
backend:
serviceName: myServiceA
servicePort: 80
- path: /white-list
backend:
serviceName: myServiceA
servicePort: 80
**NEED SOMETHING HERE TO WHITELIST**
- path: /need-key
backend:
serviceName: myServiceA
servicePort: 80
**NEED SOMETHING HERE TO USE API-KEY**
Результаты, которые я получаю, в итоге применяются ко всем путям.Я могу жить без API-ключа, так как могу кодировать это, но в идеале я бы предпочел, чтобы он управлялся вне контейнера.
Кто-нибудь достиг этого с контроллером NGINX Ingress?