以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!
如果对您有帮助,烦请点赞、关注、转发!如果您有其他想要了解的,欢迎私信联系我~
基本介绍
在 Kubernetes 中,Headless Service(无头服务)是一种特殊的服务发现机制,允许用户直接访问集群中的 Pod 实例,而不是通过单一的 ClusterIP 负载均衡到 Endpoint(Pod)。
Headless Service 接收的请求不需要经过 kube-proxy 转发,也不会有负载均衡和路由规则。
Headless Service 适用场景如下:
工作原理
资源清单(示例)
# demo-servcie.yaml
apiVersion: v1
kind: Service
metadata:
name: demo-service
spec:
selector:
app: web
type: ClusterIP
clusterIP: None # 关键点,字段值必须设置为 None
ports:
- name: http
protocol: TCP
port: 80
targetPort: 8080
从资源清单可见,若将一个 ClusterIP 类型的 Service 对象定义为 Headless Service,只需要指定其 clusterIP 字段的值为 None 即可。