Kubernetes Service IP的分配、存储机制及IP范围确定方式
K8s Service IP分配与范围说明
针对你部署的myservice(ClusterIP类型),关于Service IP的相关问题说明如下:
一、Service IP的分配与DNS存储
- Service的ClusterIP由K8s的kube-controller-manager组件中的
service-controller负责分配,它会从预定义的IP范围中选取未被占用的地址分配给新创建的Service。 - 分配完成后,该IP会自动同步到集群的DNS服务(如CoreDNS),生成对应的域名:
myservice.default.svc.cluster.local(格式为<服务名>.<命名空间>.svc.<集群域>)。集群内的Pod无需记住IP,直接通过这个域名就能访问服务。
二、Service IP范围的确定方式
- Service的IP范围是在集群初始化阶段就配置好的,对应kube-apiserver的启动参数
--service-cluster-ip-range,kube-controller-manager会从这个指定的CIDR段中分配IP。 - 如果你是用kubeadm初始化集群,这个范围可以在初始化配置文件(如
kubeadm-config.yaml)的networking.serviceSubnet字段中预先设置。这个范围一旦确定,集群运行后不建议随意修改,否则可能导致服务访问异常。
附你提供的Service描述信息
kubectl describe service myservice Name: myservice Namespace: default Labels: app=myservice app.kubernetes.io/instance=myservice Annotations: argocd.argoproj.io/sync-wave: 3 Selector: app=myservice Type: ClusterIP IP Family Policy: SingleStack IP Families: IPv4 IP: 172.20.127.114 IPs: 172.20.127.114 Port: <unset> 80/TCP TargetPort: 5000/TCP Endpoints: 10.34.188.30:5000,10.34.89.157:5000 Session Affinity: None Events: <none>
内容的提问来源于stack exchange,提问作者yuyang
相关产品推荐
相关产品推荐

