【问题标题】:How to setup an ETCD cluster in Kubernetes using DNS discovery (SRV)?如何使用 DNS 发现 (SRV) 在 Kubernetes 中设置 ETCD 集群?
【发布时间】:2019-07-06 15:01:27
【问题描述】:

我希望在我的 k8s 集群中运行一个动态的 etcd 集群。我能想到的最好的动态方式(没有硬编码的地址、名称等)是使用 DNS 发现和内部 k8s DNS (CoreDNS)。

我发现了有关为 k8s 中的服务创建的 SRV 记录的分离信息,以及有关 etcd DNS 发现如何工作的一些解释,但没有完整的操作方法。

例如:

  • k8s 如何命名SRV 条目?
  • 是否应该以特定方式命名它们以便etcd 能够找到它们?
  • 是否应该设置任何特殊的 CoreDNS 设置?

对此的任何帮助将不胜感激。

参考:

【问题讨论】:

    标签: kubernetes dns etcd srv


    【解决方案1】:

    k8s 是如何命名 SRV 条目的?

    通过Service.port[].name,这就是为什么 kubernetes 中几乎所有内容都必须是 DNS 友好名称的原因:因为很多时候,它确实会为您将它们放入 DNS 中。

    具有dig 或足够新的nslookup 的 Pod 将显示:

    $ dig SRV kubernetes.default.svc.cluster.local.
    

    您会看到kubernetes Service 正在宣传的端口的名称。

    是否应该以特定的方式命名它们以便 etcd 能够找到它们?

    是的,正如您在链接到的页面中看到的那样,它们需要被命名为以下四个之一:

    • _etcd-client
    • _etcd-client-ssl
    • _etcd-server
    • _etcd-server-ssl

    在 kubernetes 方面是这样的:

    ports:
    - name: etcd-client
      port: 2379
      containerPort: whatever
    - name: etcd-server
      port: 2380
      containerPort: whatever
    

    【讨论】:

      猜你喜欢
      • 2019-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-04
      • 2017-03-12
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多