【问题标题】:Kube ingress with hostname (how to know IP to forward domain name?)Kube ingress with hostname(如何知道IP转发域名?)
【发布时间】:2019-07-31 22:38:08
【问题描述】:

我看到像 this 这样的指南,其中设置 Nginx Ingress(使用 ssl)需要您输入主机,即 echo1.example.com。我不明白如果您没有 IP 地址,您将如何使用指定的主机(在您的 DNS 中,您怎么知道在哪里设置echo.example.com?)。

当我这样设置入口时,echo.example.com 会显示为入口 ADDRESS,所以我不知道 IP。如果我不指定它,ADDRESS 就是空的。有了这个,我怎么知道我应该指向我的域名的IP?

我在 GKE 上运行。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: echo-ingress
  annotations:  
    kubernetes.io/ingress.class: nginx
    certmanager.k8s.io/cluster-issuer: letsencrypt-staging
spec:
  tls:
  - hosts:
    - echo1.example.com
    - echo2.example.com
    secretName: letsencrypt-staging
  rules:
  - host: echo1.example.com
    http:
      paths:
      - backend:
          serviceName: echo1
          servicePort: 80
  - host: echo2.example.com
    http:
      paths:
      - backend:
          serviceName: echo2
          servicePort: 80

【问题讨论】:

    标签: kubernetes ip-address google-kubernetes-engine hostname nginx-ingress


    【解决方案1】:

    您的 Kubernetes 节点的 IP 应被视为临时 IP。请勿将主机名指向它们以托管网站和服务。

    1. Reserve an external static IP address
    2. 在端口 80 和 443 上创建负载平衡器。如果您希望负载平衡器处理 TLS,请使用 HTTPS。如果您希望 nginx 处理 TLS,请使用 TCP
    3. Configure Target Pools 在负载均衡器上指向正确 nginx 入口端口上的 K8s 节点池
    4. 将集群服务的所有主机名指向外部静态 IP 地址

    【讨论】:

      【解决方案2】:

      您不能指定将由 GKE 分配的 IP 地址。 IP 是从谷歌的 IP 块自动分配的。

      您必须创建入口资源,等待分配 IP,然后将 IP 添加到您的 DNS。

      如果您想自动创建指向您的 Ingress IP 的正确 DNS 条目,您应该查看:https://github.com/kubernetes-incubator/external-dns

      【讨论】:

        猜你喜欢
        • 2023-04-10
        • 2012-01-30
        • 2018-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多