k8s framework

reference

1. k8s master framework

master

master 是k8s cluster运行着daemon服务:kube-apiserver, kube-scheduler, kube-contronller-manager, etcd, flannel(pod网络)

kube-apiserver(API Server)

API Server是k8s cluster的前端接口,各种客户端工具(CLI或UI)以及k8s其他组件可以通过它管理cluster的各种资源。

kube-contronller-manager(controller manager)

controller manager负责管理cluster各种资源,保证资源处于预期的状态。Controller Manager 由多种 controller 组成,包括 replication controller、endpoints controller、namespace controller、serviceaccounts controller 等例如 replication controller 管理 Deployment、StatefulSet、DaemonSet 的生命周期,namespace controller 管理 Namespace 资源。

kube-scheduler(Scheduler)

Scheduler复制决定将pod放到哪个node运行,scheduler在调度时会考虑到cluster的拓扑结构,当前各个节点的负载,以及应用对高可用,性能的需求。

etcd

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

pod网络(flannel)

Pod 要能够相互通信,Kubernetes Cluster 必须部署 Pod 网络,flannel 是其中一个可选方案。

2. k8s node framework

kubelet

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

kube-proxy

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

pod网络

Pod 要能够相互通信,Kubernetes Cluster 必须部署 Pod 网络,flannel 是其中一个可选方案。

猜你喜欢

转载自www.cnblogs.com/vickey-wu/p/9330221.html
k8s