【问题标题】:Kubernetes - Is it possible to set one public FQDN for many nodes?Kubernetes - 是否可以为多个节点设置一个公共 FQDN?
【发布时间】:2020-06-23 21:49:30
【问题描述】:

假设我有一个 Kubernetes 集群,其中有 1 个主节点 Master 和 2 个工作节点 Worker 1Worker 2。都有可公开访问的 IP 地址。

  • Master 的 IP 为 1.1.1.1
  • Worker 1 的 IP 为 2.2.2.2
  • Worker 2 的 IP 为 3.3.3.3

另外,假设我的集群在端口 80 上公开了一个带有网站的 nginx-webserver,我可以通过 3 个节点中的任何一个访问它(例如 1.1.1.1:802.2.2.2:803.3.3.3:80 打开同一个网站)。 但是,记住 IP 地址是“困难的”,我更愿意记住一个域名。所以我选择"www.flying-circus.uk" 作为我的域名。但是有一个问题:一个公有域名只能分配一个IP地址,多个IP不能有相同的FQDN。

如何配置我的集群,以便可以通过 FQDN 从任何节点访问网站?

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    但是有一个问题:一个公有域名只能分配一个IP地址,多个IP不能有相同的FQDN

    首先,这种说法并非绝对正确。一个 FQDN 可以指向多个 IP 地址。阻止您这样做的原因可能是您的域提供商不允许您拥有具有多个 DNS A 指针的相同 FQDN。

    例如yahoo.comgoogle.com指向不同的IP:

    $ dig yahoo.com
    
    ; <<>> DiG 9.10.6 <<>> yahoo.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27299
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;yahoo.com.         IN  A
    
    ;; ANSWER SECTION:
    yahoo.com.      323 IN  A   98.138.219.231
    yahoo.com.      323 IN  A   98.137.246.7
    yahoo.com.      323 IN  A   98.138.219.232
    yahoo.com.      323 IN  A   98.137.246.8
    yahoo.com.      323 IN  A   72.30.35.10
    yahoo.com.      323 IN  A   72.30.35.9
    
    ;; Query time: 51 msec
    ;; SERVER: 10.240.246.53#53(10.240.246.53)
    ;; WHEN: Tue Jun 23 18:41:03 PDT 2020
    ;; MSG SIZE  rcvd: 123
    
    

    其次,Kubernetes 有多种工具/资源可以帮助您实现假设案例。例如,如果您想为在任何 Kubernetes 节点中运行的 pod 提供一个外部可用端点,您可以使用 ServiceIngressIngress Controller 结合使用。

    【讨论】:

    • 感谢您提供有用的信息!我不知道多个IP。经过一番研究,我发现这个功能被称为“Round Robin Load Distribution”。 Bind NS.
    最近更新 更多