1

我有三个命名空间 dev、test 和 staging。test 和 staging 中没有 pod。在开发中,我有 nginx、入口和前端服务。对于对 nginx 的所有请求,它都会转发到前端服务。

但问题是开发中的 nginx 也试图在测试和暂存命名空间中找到前端服务。它在 3 个命名空间之间进行循环。所以有时页面正在加载,有时是 503 错误。

这是入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: frontend-ingress
  namespace: dev
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    ingress.kubernetes.io/ssl-redirect: "false"
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: frontend
          servicePort: 80

这是nginx的日志:

I0327 07:54:50.867120       1 command.go:76] change in configuration detected. Reloading...
W0327 07:54:50.867339       1 controller.go:841] service test/frontend does not have any active endpoints
W0327 07:54:50.867370       1 controller.go:841] service staging/frontend does not have any active endpoints
W0327 07:54:50.868198       1 controller.go:777] upstream test-frontend-80 does not have any active endpoints. Using default backend
W0327 07:54:50.868219       1 controller.go:777] upstream staging-frontend-80 does not have any active endpoints. Using default backend
4

2 回答 2

2

--force-namespace-isolation=true部署 nginx pod 时指定参数。并将图像更新为quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.12.0

于 2018-03-27T08:38:46.280 回答
0

我想详细说明@Narayan-Prusty 的回答。

我必须添加--force-namespace-isolation=true并将图像设置为quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.12.0但还必须添加--watch-namespace=$(POD_NAMESPACE).

于 2018-08-14T13:58:22.267 回答