Kubernetes ingress-nginx 从非默认命名空间调用服务

Kubernetes ingress-nginx call service from non-default namespace

我的入口有 3 个服务,前 2 个使用 default 命名空间。第三个服务是 prometheus-server 服务,它有命名空间 ingress-nginx。 现在,我想将我的 prometheus DNS 映射到该服务,但出现错误,因为入口无法在 default 命名空间中找到 prometheus 服务。

如何处理入口定义中的非默认命名空间?

您可能希望在命名空间 ingress-nginx 中创建一个新的 Ingress,将您的 DNS 路由到该服务。例如:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: example
  namespace: ingress-nginx
spec:
  rules:  
  - host: your.domain.com
    http:
      paths:
      - path: /
        backend:
          serviceName: prometheus-server
          servicePort: 80

您需要在其他名称空间中引用您的服务及其完整路径,即 prometheus-server.ingress-nginx.svc.cluster.local

您不需要第二个 Ingress 来执行此操作。