如何使用DNS发现(SRV)在Kubernetes中设置ETCD集群?

问题描述 投票:0回答:1

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

我找到了关于为k8s中的服务创建的SRV记录的独立信息,以及关于etcd DNS发现如何工作的一些解释,但没有完整的howto。

例如:

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

任何有关这方面的帮助将不胜感激。

引用:

kubernetes dns etcd srv
1个回答
1
投票

k8如何命名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
© www.soinside.com 2019 - 2024. All rights reserved.