Cluster IP
即Service的IP,通常在集群内部使用Service Name来访问服务,用户不需要知道该IP地址,kubedns会自动根据service name解析到服务的IP地址,将流量分发给Pod。
Service Name才是对外暴露服务的关键。
在kubeapi的配置中指定该地址范围。
默认配置
1 | --service-cluster-ip-range=10.254.0.0/16 |
Pod IP
flannel
通过配置flannel的network和subnet来实现。
默认配置
1 | FLANNEL_NETWORK=172.30.0.0/16 |
Pod的IP地址不固定,当pod重启时IP地址会变化。
该IP地址也是用户无需关心的。
但是Flannel会在本地生成相应IP段的虚拟网卡,为了防止和集群中的其他IP地址冲突,需要规划IP段。
主机/Node IP
物理机的IP地址,即kubernetes管理的物理机的IP地址。
1 | $ kubectl get nodes |
clusterIp
关于clusterIp属性, Service有个Cluster IP,这个IP是固定不变的,除非Service被删除,所以也可以使用ClusterIP在集群内部访问Service。(LoadBalancer需要指定clusterIp, 但是需要切记,这个clusterip和pod ip是两码事)
固定vip(clusterIp)
在
Service创建的请求中,可以通过设置spec.clusterIP字段来指定自己的集群 IP 地址。 比如,希望替换一个已经已存在的 DNS 条目,或者遗留系统已经配置了一个固定的 IP 且很难重新配置。
1
2
3
4 # 固定vip
clusterIP: 10.43.77.110
clusterIPs:
- 10.43.77.110用户选择的 IP 地址必须合法,并且这个 IP 地址在
service-cluster-ip-rangeCIDR 范围内, 这对 API 服务器来说是通过一个标识来指定的。 如果 IP 地址不合法,API 服务器会返回 HTTP 状态码 422,表示值不合法。k8s:
service-cluster-ip-range参数: 在apiserver配置文件/etc/kubernetes/manifests/kube-apiserver.yaml中查看k3s:
service-cluster-ip-range参数:--cluster-cidr value (networking) Network CIDR to use for pod IPs (default: "10.42.0.0/16")
--service-cidr value (networking) Network CIDR to use for services IPs (default: "10.43.0.0/16")从 v1.19.1+k3s1 开始可用
除了使用环境变量和 CLI 参数配置 K3s 之外,K3s 还可以使用配置文件。
默认情况下,位于 的 YAML 文件中的值
/etc/rancher/k3s/config.yaml将在安装时使用。
