100-k8s 整体架构
2021-06-08 18:00:13 1 举报
kubernetes 整体架构
作者其他创作
大纲/内容
kube-proxy
Hardware
con
OS
Images
kubelet
Master
Worker Node
ContainerRuntime
Kubelet
Legend:
DockerEngine
Kublet
Kubernetes属于主从分布式架构,主要由Master Node和Worker Node组成,以及包括客户端命令行工具kubectl和其它附加项。Master Node:作为控制节点,对集群进行调度管理;Master Node由API Server、Scheduler、Cluster State Store和Controller-Manger Server所组成;Worker Node:作为真正的工作节点,运行业务应用的容器;Worker Node包含kubelet、kube proxy和Container Runtime;kubectl:用于通过命令行与API Server进行交互,而对Kubernetes进行操作,实现在集群中进行各种资源的增删改查等操作;Add-on:是对Kubernetes核心功能的扩展,例如增加网络和网络策略等能力。repliceation 用于伸缩副本数量endpoint 用于管理网络请求scheduler 调度器
2
Kub Client(Kubectl)
Kubernetes
APIServer
Base OS/Kernel
4
Networking
Scheduler(Bind Pod to Node)
1、准备好一个包含应用程序的Deployment的yml文件,然后通过kubectl客户端工具发送给ApiServer。2、ApiServer接收到客户端的请求并将资源内容存储到数据库(etcd)中。3、Controller组件(包括scheduler、replication、endpoint)监控资源变化并作出反应。4、ReplicaSet检查数据库变化,创建期望数量的pod实例。5、Scheduler再次检查数据库变化,发现尚未被分配到具体执行节点(node)的Pod,然后根据一组相关规则将pod分配到可以运行它们的节点上,并更新数据库,记录pod分配情况。6、Kubelete监控数据库变化,管理后续pod的生命周期,发现被分配到它所在的节点上运行的那些pod。如果找到新pod,则会在该节点上运行这个新pod。7、kuberproxy运行在集群各个主机上,管理网络通信,如服务发现、负载均衡。例如当有数据发送到主机时,将其路由到正确的pod或容器。对于从主机上发出的数据,它可以基于请求地址发现远程服务器,并将数据正确路由,在某些情况下会使用轮训调度算法(Round-robin)将请求发送到集群中的多个实例。
etcd
6
Kubectl
Node Pool
CNICRIOCIProtobufgRPCJSON
Secheduler
1
Master Node
Controller Manager(Controller Loops)
Node
docker
API Server
创建Pod的整个流程,时序图如下:
deployment.yml
ReplicationEndpoints....
Pod/Service
Pod
C
Node3
Node1
5
Kube-Proxy
3
scheduler
Api Server (REST API)
Internet
7
Node2
Storage(etcd)
Controllers
收藏
收藏
0 条评论
下一页
为你推荐
查看更多