今天了解了下k8s,看了很多资料,自己归纳总结下,如果需要测试集群的话需要准备三台Linux服务器,一台做Master,其余两台作为Node仆从(MINION)节点,
先说下Node节点,就是宿主机器,我们可以通过k8s来查询Node节点的基本信息,服务器配置情况等,最小单元室Pod,Pod中运行了容器服务,k8s对容器服务进行编排,一个宿主机节点上可以创建多个Pod,Pod(豌豆荚),容器服务就像豌豆颗粒,一个Pod包含多个容器服务,一个节点就相当于豌豆这一株植物,上面可以有多个Pod,接下来我就要瞎比喻了
Kubelet:相当于这株豌豆的生产系统,负责了pod创建(长豆夹),启动(接受营养开始成长),监控pod的状态(监控返回豆荚生长情况),重启(这个就蒙逼了)、销毁(被采摘)
Kube-Proxy:代理承担一些负载
Docker:这块其实不属于k8s,这里只是需要将宿主机中安装Docker,使用Docker构建容器(及Pod的豌豆子)
下面我们需要集群化的管理这些豆子植物了,K8s Master就相当于农民,种了两株豆子如下图:
Etcd:农民需要 随时对这些植物,以及每株植物上的豆荚、豆子 等要了如指掌,每天多涨了豆荚没有,多涨了豆子没有,都要记在脑袋里面
API Server:这个时候隔壁邻居要问农民豆子所有情况,农民需要根据Etcd(脑袋中的记忆) 告诉邻居
Scheduler:在一定土壤中营养更不上(及Node中配置资源消耗问题),这个时候农民就把一些豆夹嫁接移植到其他一些营养好的豆株上
Controller Manager:农民知道所有豆株豆夹的情况或者有没有新种了一株豆夹,突然有一个豆夹不行了、挂了,农民就要去把豆夹摘掉,或者重新嫁接一个跟原来一样的豆夹,并对所有植株、豆夹,豆子进行合理管理修葺
下图就是这块几种网络通信问题,这里切成了2个图区分开来,需要根据业务需要保证对应网络连通情况
比喻有点牵强附会,大概就那么个意思