HeadlessService
HeadlessService是指spec.clusterIP=None
的Service资源。
该资源创建的Service对象不具备ClusterIP,因此,通常用来让集群内的Pod发现该Service后端的所有已经Ready的Pod(除非将Service的spec.publishNotReadyAddresses
为true)。
在Kubernetes集群中,kube-dns服务后端的coredns的Pod会为每个Service对象创建一个属于它们的FQDN(全限定域名):Service名.namespace名.svc.cluster.local
,因此集群内的Pod可以通过向HeadlessService的FQDN请求访问DNS A记录,进而获得HeadlessService后端的所有Pod。
创建HeadlessService
通过将Service的spec.clusterIP
置为None
,可以创建出HeadlessService。下面展示一个例子:
通过HeadlessService发现Pod
Pod可以通过DNS A记录发现HeadlessService后端的Pod列表。
想获取DNS A记录,可以通过nslookup
命令。
因为在之前提到,集群内的每个Service都有自己的FQDN,因此可以在集群内的任何一个Pod使用下面的命令获取名为kubia-headless
的HeadlessService后端的Pod:
Last updated
Was this helpful?