标签:tcp gen 方案 报告 保存 ice 相关 ima 前端
K8S的集群由master和node组成,节点上运行着若干K8S服务。 如下图
master节点上运行着的后台服务有kube-apiserver, kube-scheduler, kube-controller-manager, etcd 和pod 网络.(flannel)。如下图所示
API Server是k8s的前端接口,各种客户端工具以及k8s其他组件可以通过它管理集群的各种资源。
scheduler负责决定将pod放在哪个node上运行。另外scheduler在调度时会充分考虑集群的架构,当前各个节点的负载,以及应用对高可用,性能
数据亲和性的需求。
负责管理集群的各种资源(创建Pod之类的),保证资源处于预期的状态
负责保存k8s集群的配置信息和各种资源的状态信息,当数据发生变化时,etcd会快速通知k8s相关组件
pod要能够互相通信,k8s集群必须掌握pod网络,flannel是其中一个可选方案。
node是Pod运行的地方。node上运行的k8s组件有kublet,kube-proxy 和 Pod网络(flannel),如下图所示:
是node的agent(代理),当scheduler去确定在某个node上运行pod后,会将pod的具体配置信息发送给该节点的kubelet,kubelet会根据遮羞信息
创建和运行容器,并向Master报告运行状态。
每个node都会运行kube-proxy服务,外界通过service访问pod, kube-proxy负责将降访问service的TCP/UDP数据流转发到后端的容器/
如果有多个副本,Kube-proxy会实现负载均衡。
pod能能够互相通信,k8s集群必须部署pod网络,flannel是其中一个可以选择的方案
① kubectl 发送部署请求到 API Server。
② API Server 通知 Controller Manager 创建一个 deployment 资源。
③ Scheduler 执行调度任务,将两个副本 Pod 分发到 k8s-node1 和 k8s-node2。
④ k8s-node1 和 k8s-node2 上的 kubectl 在各自的节点上创建并运行 Pod。
补充两点:
应用的配置和当前状态信息保存在 etcd 中,执行kubectl get pod 时 API Server 会从 etcd 中读取这些数据。
flannel 会为每个 Pod 都分配 IP。因为没有创建 service,目前 kube-proxy 还没参与进来。
标签:tcp gen 方案 报告 保存 ice 相关 ima 前端
原文地址:https://www.cnblogs.com/zhukaijian/p/12879775.html