- 日期 :2017年4月24日
- 分类 : Kubernetes
- 字数 :385 字
- 阅读大约需要 :2 分钟
Cluster IP
即 Service 的 IP,通常在集群内部使用 Service Name 来访问服务,用户不需要知道该 IP 地址,kubedns 会自动根据 service name 解析到服务的 IP 地址,将流量分发给 Pod。
Service Name 才是对外暴露服务的关键。
在 kubeapi 的配置中指定该地址范围。
默认配置
--service-cluster-ip-range=10.254.0.0/16
--service-node-port-range=30000-32767
Pod IP
通过配置 flannel 的network
和subnet
来实现。
默认配置
FLANNEL_NETWORK=172.30.0.0/16
FLANNEL_SUBNET=172.30.46.1/24
Pod 的 IP 地址不固定,当 pod 重启时 IP 地址会变化。
该 IP 地址也是用户无需关心的。
但是 Flannel 会在本地生成相应 IP 段的虚拟网卡,为了防止和集群中的其他 IP 地址冲突,需要规划 IP 段。
主机/Node IP
物理机的 IP 地址,即 kubernetes 管理的物理机的 IP 地址。
$ kubectl get nodes
NAME STATUS AGE VERSION
172.20.0.113 Ready 12d v1.6.0
172.20.0.114 Ready 12d v1.6.0
172.20.0.115 Ready 12d v1.6.0
服务发现
集群内部的服务发现
通过 DNS 即可发现,kubends 是 kubernetes 的一个插件,不同服务之间可以直接使用 service name 访问。
通过sericename:port
即可调用服务。
服务外部的服务发现
通过 Ingress 来实现,我们是用的Traefik来实现。