如何在kubernetes nginx入口控制器中仅白名单一条路径
使用Nginx入口控制器,我们希望公开具有不同安全要求的Kubernetes服务的不同路径如何在kubernetes nginx入口控制器中仅白名单一条路径,kubernetes,nginx-ingress,Kubernetes,Nginx Ingress,使用Nginx入口控制器,我们希望公开具有不同安全要求的Kubernetes服务的不同路径 /对公众开放 /white list仅允许从特定IP地址进行连接 /need key需要API密钥 我穿着AWS EKS跑步。Kubernetes版本如下:v1.12.6-eks-d69f1b 如果我们使用注释,它们将应用于整个服务。理想情况下,我希望只对路径应用注释 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: ingres
/
对公众开放/white list
仅允许从特定IP地址进行连接/need key
需要API密钥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 controller实现了这一点?要为每个路径应用注释,可以为每个要应用的路径编写一条
Ingress
规则。Nginx入口控制器将自行收集这些入口
规则并相应应用
例如:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-myServiceA-root
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: myServiceA.foo.org
http:
paths:
- path: /
backend:
serviceName: myServiceA
servicePort: 80
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-myServiceA-white-list
annotations:
kubernetes.io/ingress.class: "nginx"
ingress.kubernetes.io/whitelist-source-range: X.X.X.X/32
spec:
rules:
- host: myServiceA.foo.org
http:
paths:
- path: /white-list
backend:
serviceName: myServiceA
servicePort: 80
...