15 lines
No EOL
1.2 KiB
Text
15 lines
No EOL
1.2 KiB
Text
# 调度
|
||
1、用户提交一个pod创建清单或变更清单(通过api)
|
||
2、api会把数据写入etcd,scheduler通过api监听到etcd上的数据变化
|
||
3、scheduler首先选择满足条件的node(各种亲和度,污点,资源等)
|
||
4、scheduler在这些满足条件的node中,给各个node打分,最好的node会用于pod的创建运行(绑定node)
|
||
5、kubelet通过api监听etcd,然后根据etcd中pod与node的绑定结果,在相应的node中创建node,维护生命周期
|
||
|
||
# 访问
|
||
外部通过ingress或者service访问集群内部服务
|
||
原理:service使用selector选择合适的pod标签,把内部服务暴露出去。创建service时自动生成一个同名的ep(endpoints)。ep上记录pod与ip对应关系。
|
||
通过kube-proxy实现服务发现与负载均衡(iptables/ipvs)[headless service不使用]
|
||
dns为每个service创建A记录(service名称与服务ip[clusterIP等])(headless service直接为在dns中配置service名称与各pod ip的记录)
|
||
1、首先访问到与ingress匹配规则匹配到的service
|
||
2、service通过dns查询到的service ip(或pod ip,headless service)
|
||
3、通过负载均衡算法,访问到一个后端pod,该pod与之交互 |