如何使用DNS发现(SRV)在Kubernetes中设置ETCD群集?
我希望在我的k8s集群中运行一个动态如何使用DNS发现(SRV)在Kubernetes中设置ETCD群集?,kubernetes,dns,etcd,srv,Kubernetes,Dns,Etcd,Srv,我希望在我的k8s集群中运行一个动态etcd集群。我能想到的动态实现的最好方法(没有硬编码的地址、名称等)是使用DNS发现,使用内部k8s DNS(CoreDNS) 我找到了有关为k8s中的服务创建的SRV记录的独立信息,以及有关etcdDNS发现工作原理的一些解释,但没有完整的方法 例如: k8s如何命名SRV条目 是否应该用特定的方式命名它们,以便etcd能够找到它们 是否应设置任何特殊的CoreDNS设置 在此方面的任何帮助都将不胜感激 参考资料: k8s如何命名SRV条目 通
etcd
集群。我能想到的动态实现的最好方法(没有硬编码的地址、名称等)是使用DNS发现,使用内部k8s DNS(CoreDNS)
我找到了有关为k8s中的服务创建的SRV
记录的独立信息,以及有关etcd
DNS发现工作原理的一些解释,但没有完整的方法
例如:
- k8s如何命名
条目SRV
- 是否应该用特定的方式命名它们,以便
能够找到它们etcd
- 是否应设置任何特殊的CoreDNS设置
服务.port[].name
,这就是为什么kubernetes中的几乎所有内容都必须是DNS友好名称的原因:因为很多时候,它确实为您将它们放在DNS中
具有dig
或足够新的nslookup
的Pod将显示:
$ dig SRV kubernetes.default.svc.cluster.local.
您将看到kubernetes
服务
正在宣传的端口名称
etcd是否应该用一种特定的方式来命名它们,以便找到它们
是的,正如您在链接到的页面中所看到的,它们需要被命名为以下四种之一:
\u etcd-client
\u etcd-client-ssl
\u etcd-server
\u etcd-server-ssl
ports:
- name: etcd-client
port: 2379
containerPort: whatever
- name: etcd-server
port: 2380
containerPort: whatever