linux cpu占用率如何看
210
2022-10-30
k8s架构基本概念
kubectl: k8s是命令行端,用来发送客户的操作指令。API server:是k8s集群的前端接口,各种客户端工具以及k8s的其他组件可以通过它管理k8s集群的各种资源。它提供了HTTP/HTTPS RESTful API,即K8S API.Scheduler:负责决定将Pod放在哪个Node上运行。在调度时,会充分考虑集群的拓扑结构,当前各个节点的负载情况,以及应对高可用、性能、数据亲和性和需求。Controller Manager:负责管理集群的各种资源,保证资源处于预期的状态。它由多种Controller组成,包括Replication Controller、Endpoints Controller.Namespace Controller、Serviceaccounts Controller等等。Etcd:负责保存k8s集群的配置信息和各种资源的状态信息。当数据发生变化时,etcd会快速的通知k8s相关组件。第三方组件,它有可替换方案。Consul、 zookeeperPod: k8s集群的最小组成单位。一个Pod内,可以运行一个或多个容器。大多数情况下,一个Pod内只有一个Container容器。Flanner:是k8s集群网路方案,可以保证Pod的跨主机通信。第三方解决方案,也有替换方案。
查看应用在哪个节点[root@master ~]# kubectl get pod --all-namespaces
查看应用在哪个节点的详细信息[root@master ~]# kubectl get pod --all-namespaces -o wide
Kubeler:他是Node的agent(代理),当Scheduler确定某个Node上运行Pod之后,会将Pod的具体配置信息发送给该节点的Kubelet,Kubeler会根据这些信息创建和运行容器,并向Master报告运行状态。Kube-proxy:负责将访问service的TCP/UDP数据流转发到后端的容器。如果有多个副本,kube-proxy会实现负载均衡。
分析各个组件的作用以及架构工作流程:1)kubectl发送部署请求到API server2)API server 通知Controller Manager创建一个Deployment资源3)Scheduler执行调度任务,将两个副本Pod分发到node01和node02上4)node01和node02上的kubelet在各自节点上创建并运行Pod。补充:1.应用的配置和当前的状态信息保存在etcd中,执行kubectl get pod时API server会从etcd中读取这些数据。2.flannel回味每个Pod分配一个IP。但此时没有创建Service资源,目前kube-proxy还没有参与进来。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~