You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为本地Kubernetes 1.10+集群中的Pod配置FQDN身份?

标准配置StatefulSet Pod的稳定FQDN(无需手动修改/etc/hosts)

嘿,手动修改/etc/hosts确实能临时凑合用,但Kubernetes的StatefulSet原生就设计用来提供稳定的网络身份和FQDN,完全不需要手动干预。下面是符合K8s规范的配置方法,针对你提到的1.10+版本完全适用:

核心原理

StatefulSet依赖Headless Service(ClusterIP为None的Service)来生成稳定的FQDN。Kubernetes的DNS组件(比如CoreDNS)会自动为每个StatefulSet Pod创建对应的DNS记录,格式正是你需要的:<statefulset-name>-<ordinal>.<subdomain>.<namespace>.svc.cluster.local

具体配置步骤

1. 创建Headless Service

首先要定义一个Headless Service,它的名称就是你想要的<some-subdomain>。示例YAML:

apiVersion: v1
kind: Service
metadata:
  name: some-subdomain  # 这里就是你要的subdomain部分
  namespace: default
spec:
  clusterIP: None  # 必须设置为None,标记为Headless Service
  selector:
    app: some-app  # 要和StatefulSet的Pod模板标签匹配
  ports:
  - name: http
    port: 80
    targetPort: 80

执行命令创建:kubectl apply -f headless-svc.yaml

2. 配置StatefulSet关联Headless Service

在StatefulSet的spec.serviceName字段中指定上面创建的Headless Service名称,K8s会自动为每个Pod生成对应的FQDN。示例YAML:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: some-statefulset
  namespace: default
spec:
  serviceName: some-subdomain  # 必须和Headless Service的name一致
  replicas: 3
  selector:
    matchLabels:
      app: some-app
  template:
    metadata:
      labels:
        app: some-app
    spec:
      containers:
      - name: nginx
        image: nginx:alpine
        ports:
        - containerPort: 80

执行命令创建:kubectl apply -f statefulset.yaml

验证FQDN是否生效

等Pod启动完成后,进入任意一个Pod验证:

# 进入第一个Pod
kubectl exec -it some-statefulset-0 -- /bin/sh

# 查看FQDN
hostname -f
# 输出应该是:some-statefulset-0.some-subdomain.default.svc.cluster.local

# 用nslookup验证DNS解析
nslookup some-statefulset-0.some-subdomain.default.svc.cluster.local

关键说明

  • 当Pod重建(比如重启、节点故障迁移)时,只要Pod的序号(ordinal,比如0、1、2)不变,FQDN就会保持不变,Kubernetes会自动更新DNS记录指向新的Pod IP。
  • 1.10+版本的StatefulSet已经完全支持这个特性,不需要额外配置DNS插件(默认CoreDNS或kube-dns都能处理)。
  • 如果你需要更自定义的域名结构,可以结合Kubernetes的DNS配置(比如修改CoreDNS的Zone),但绝大多数场景下用Headless Service+StatefulSet的默认配置就足够了。

内容的提问来源于stack exchange,提问作者jtee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:30:54