课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在上文中给大家简单介绍了Kubernetes架构的一些基础知识,而今天我们就通过案例分析来了解一下,Kubernetes架构都有哪些常用节点类型。
一、主节点
Kubernetes的主节点通过API从CLI(命令行界面)或UI(用户界面)接收输入。这些是你提供给Kubernetes的命令。
你可以定义想要让Kubernetes维护的Pod,副本集和Service。例如,要使用的容器镜像,要公开的端口以及要运行的Pod副本数量。还可以为该集群中运行的应用程序提供"所需状态"的参数。
APIServer
APIServer是Kubernetes控制程序的前端,也是用户可以直接进行交互的Kubernetes组件,内部系统组件以及外部用户组件均通过相同的API进行通信。
键值存储etcd
键值存储(也称为etcd)是Kubernetes用来备份所有集群数据的数据库。它存储集群的整个配置和状态。主节点查询etcd以检索节点,容器和容器的状态参数。
Controller
控制器的作用是从APIServer获得所需状态。它检查要控制的节点的当前状态,确定是否与所需状态存在任何差异,并解决它们(如果有)。
Scheduler
调度程序会监视来自APIServer的新请求,并将其分配给运行状况良好的节点。它对节点的质量进行排名,并将Pod部署到适合的节点。如果没有合适的节点,则将Pod置于挂起状态,直到出现合适的节点。
注意:不要在主节点上运行用户应用程序。让Kubernetes主节点可以完全专注于管理集群。
二、工作节点
工作节点监听APIServer发送过来的新的工作分配;他们会执行分配给他们的工作,然后将结果报告给Kubernetes主节点。
Kubelet
kubelet在群集中的每个节点上运行。它是Kubernetes内部的主要代理。通过安装kubelet,节点的CPU,RAM和存储成为所处集群的一部分。它监视从APIServer发送来的任务,执行任务,并报告给主节点。它还会监视Pod,如果Pod不能完全正常运行,则会向控制程序报告。然后,基于该信息,主服务器可以决定如何分配任务和资源以达到所需状态。
ContainerRuntime
容器运行时从容器镜像库中拉取镜像,然后启动和停止容器。容器运行时由三方软件或插件(例如Docker)担当。
Kube-proxy
kube-proxy确保每个节点都获得其IP地址,实现本地iptables和规则以处理路由和流量负载均衡。
Pod
在Kubernetes中,Pod是调度的小元素。没有它,容器就不能成为集群的一部分。如果你需要扩展应用程序,则只能通过添加或删除Pod来实现。
Pod是Kubernetes中一个抽象化概念,由一个或多个容器组合在一起得共享资源。根据资源的可用性,主节点会把Pod调度到特定工作节点上,并与容器运行时协调以启动容器。
在Pod意外无法执行任务的情况下,Kubernetes不会尝试修复它们。相反,它会在其位置创建并启动一个新Pod。这个新Pod是原来的副本,除了DNS和IP地址都和以前的Pod一样。此功能对开发人员设计应用程序的方式产生了深远的影响。
由于Kubernetes架构的灵活性,不再需要将应用程序绑定到Pod的特定实例。取而代之的是,需要对应用程序进行设计,以便在集群内任何位置创建的全新Pod可以无缝取代旧Pod。Kubernetes会使用Service来协助此过程。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。