Headless Service(无头服务)
为 StatefulSet 提供稳定 DNS 解析,不做负载均衡。
Headless Service 不分配 ClusterIP,而是直接返回 Pod 的 DNS 记录,常用于 StatefulSet。
典型用途
- 需要固定 Pod 地址的数据库
- 主从复制需要准确定位实例
示例
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
clusterIP: None
selector:
app: mysql
ports:
- port: 3306
targetPort: 3306
创建后可直接访问:
mysql-0.mysql.default.svc.cluster.local
实操要点
- 先做快速盘点:
kubectl get nodes、kubectl get pods -A、kubectl get events -A。 - 对比“期望状态”和“实际状态”,
kubectl describe往往能解释漂移或失败原因。 - 名称、Label、Selector 要一致,避免 Service 或控制器找不到 Pod。
快速检查清单
- 资源定义与业务意图一致。
- Namespace、权限、镜像与环境匹配。
- 上线前具备健康探针与可观测日志。