热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

k8s——架构(转发)

master节点 k8s的集群由master和node组成,节点上运行着若干k8s服务。 master节点之上运行着的后台服务有kube-apiserver、kube-schedu

master节点

 

k8s的集群由master和node组成,节点上运行着若干k8s服务。

 

master节点之上运行着的后台服务有kube-apiserver 、kube-scheduler、kube-controller-manager、etcd和pod网络。如下图所示

k8s —— 架构 (转发)

 

1. API Server(kube-apiserver)

API Server是k8s的前端接口,各种客户端工具以及k8s其他组件可以通过它管理集群的各种资源。

 

2.Scheduler(kube-scheduler)

scheduer负责决定将pod放在哪个node上运行。另外scheduler在调度时会充分考虑集群的架构,当前各个节点的负载,以及应用对高可用、性能、数据亲和性的需求。

 

3.Controller Manager(kube-controller-manager)

负责管理集群的各种资源,保证资源处于预期的状态

 

4.etcd

负责保存k8s集群的配置信息和各种资源的状态信息,当数据发生变化时,etcd会快速的通知k8s相关组件。

 

5.pod网络

pod要能够相互通信,k8s集群必须掌握pod网络,fannel是其中一个可选的方案

 

node节点

 

node是pod运行的地方。node上运行的k8s组件有kublet、kube-proxy和pod网络(例如flannel),如下图所示:

k8s —— 架构 (转发)

 

 1.kubelet

是node的agent,当scheduler去确定在某个node上运行pod后,会将pod的具体配置信息发送给该节点的kubelet,kubelet会根据遮羞信息创建和运行容器,并向master报告运行状态。

 

2.kube-proxy

每个node都会运行kube-proxy服务,外界通过service访问pod,kube-proxy负责将降访问service的TCP/UDP数据流转发到后端的容器。如果有多个副本,kube-proxy会实现负载均衡。

 

3.pod网络

pod能能够互相通信,k8s集群必须部署pod网络,flannel是其中一个可以选择的方案

 

完整的架构图

k8s —— 架构 (转发)

为什么 k8s-master 上也有 kubelet 和 kube-proxy 呢?

这是因为 Master 上也可以运行应用,即 Master 同时也是一个 Node。

 

几乎所有的 Kubernetes 组件本身也运行在 Pod 里,执行如下命令:

k8s —— 架构 (转发)
k8s —— 架构 (转发)
[root@ken ~]# kubectl get pod --all-namespaces -o wide
NAMESPACE     NAME                          READY   STATUS             RESTARTS   AGE     IP            NODE    NOMINATED NODE   READINESS GATES
kube-system   coredns-78d4cf999f-dbxpc      1/1     Running            0          4h40m   10.244.0.2    ken                
kube-system   coredns-78d4cf999f-q9vq2      1/1     Running            0          4h40m   10.244.0.3    ken                
kube-system   etcd-ken                      1/1     Running            0          4h39m   172.20.10.2   ken                
kube-system   kube-apiserver-ken            1/1     Running            0          4h39m   172.20.10.2   ken                
kube-system   kube-controller-manager-ken   0/1     CrashLoopBackOff   23         4h39m   172.20.10.2   ken                
kube-system   kube-flannel-ds-amd64-bq6jx   1/1     Running            0          4h4m    172.20.10.9   host2              
kube-system   kube-flannel-ds-amd64-fd8mv   1/1     Running            0          4h24m   172.20.10.2   ken                
kube-system   kube-flannel-ds-amd64-ssqcl   1/1     Running            0          4h5m    172.20.10.7   host1              
kube-system   kube-proxy-7cnsr              1/1     Running            0          4h5m    172.20.10.7   host1              
kube-system   kube-

推荐阅读
author-avatar
maniac0207
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有