在GKE上运行Kubernetes
使用helm安装最新稳定版本的Nginx控制器。
除了添加之外,Everythings运作良好 白名单 </跨度> -source-range注释导致我…:nginx ingress.kubernetes.io/ 白名单 </跨度> -source-range:“x.x.x.x,y.y.y.y”规格: 规则: - 主持人:staging.com HTTP: 路径: - 路径:/ 后端……
您的nginx控制器服务必须设置为 externalTrafficPolicy: Local 。这意味着将使用实际的客户端IP而不是集群的内部IP。
externalTrafficPolicy: Local
您需要从中获取真实的服务名称 kubectl get svc 命令。该服务类似于:
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nobby-leopard-nginx-ingress-controller LoadBalancer 10.0.139.37 40.83.166.29 80:31223/TCP,443:30766/TCP 2d
nobby-leopard-nginx-ingress-controller 是您要使用的服务名称。
nobby-leopard-nginx-ingress-controller
要完成此操作,请运行 kubectl patch svc nobby-leopardnginx-ingress-controller -p '{"spec":{"externalTrafficPolicy":"Local"}}'
kubectl patch svc nobby-leopardnginx-ingress-controller -p '{"spec":{"externalTrafficPolicy":"Local"}}'
设置新的nginx控制器时,可以使用以下命令:
helm install stable/nginx-ingress \ --namespace kube-system \ --set controller.service.externalTrafficPolicy=Local`
安装后让nginx入口控制器接受白名单。
是。但是,我自己想通了。您的服务必须启用 externalTrafficPolicy: Local 。这意味着应该使用实际的客户端IP而不是内部群集IP。
完成这个运行 kubectl patch svc nginx-ingress-controller -p '{"spec":{"externalTrafficPolicy":"Local"}}'
kubectl patch svc nginx-ingress-controller -p '{"spec":{"externalTrafficPolicy":"Local"}}'