通俗易懂理解Kubernetes核心组件及原理

在这里插入图片描述

Kubernetes是什么?

Kubernetes其实就是一个集群,从我们此前运维的角度来理解,它就是一个集群,组合多台主机的资源(内存、CPU、磁盘等)整合成一个大的资源池并统一对外提供计算存储等能力的集群。我们找很多台主机,每台主机上面安装Kubernetes的相关程序,而不同的主机程序之间相互通信,从而完成彼此之间的协调,并且通过这些应用程序之间的协同工作,把多个主机当成一个主机来使用,形成一个集群,仅此而已,但是在kubernetes集群当中主机是分角色的,即所谓的有中心结点架构的集群系统,master/nodes模型, 由一组节点用于master不需要太多,一般高可用的话需要三个(根据集群规模来判断),nodes节点(worker节点)就是干活的,Kubernetes上提供的各种资源服务,运行在node节点上面。

用户如何在kubernetes运行容器,逻辑过程是什么?

用户把创建启动容器的请求首先发给master,具体来说是发给了master节点上面的API Server组件, API Server通过调度器,按照预设的调度算法及策略,去分析各node节点上面现有的可用资源状态,然后找一个最佳适配,来运行用户所请求容器的结点,并把它调度上去(这里需要与node节点上面的kubelet交互),并由这个node节点上面本地的docker或其它容器引擎负责把这个容器启动起来,要启动容器,需要有镜像,镜像在哪里呢?在仓库上面,node上面启动容器是会先检查本地是否有镜像(根据镜像拉取策略),如果没有会docker pull下来,然后再启动,kubernetes自身并没有托管自动所依赖的每一个容器镜像,而是需要到仓库中去下载的,仓库可以是私有的,也可以是公有的。

集群在master节点上面提供一个API Server组件,它负责接受请求,解析请求,处理请求的,至于当用户请求的是创建一个容器,最好不要运行在master节点上面,而应该运行在node节点上面,确定哪个node更合适,这个时间就需要scheder调度器,它负责监控每个node节点上面总可用的计算、内存、存储等资源,并根据用户所请求创建的这个容器所需要的资源,docker容器可以做资源限制 ,但在kubernetes上面不但可以设定容器使用资源的上限(阀值),还可以设定资源使用的下限(资源请求量),调度器就是根据容器的最低需求来进行评估,哪一个节点最合适;当然了,资源的评估不只是一个维度,而是从多个维度考虑,这都是调度器scheduler根据调度策略和算法需要考虑的,如果在一个node上面把容器启动起来了,我们还需要对容器中的应用程序的健康状态做监测,我们不但能根据容器中应用程序是否运行判断它的健康状况,还可以根据额外的健康状态探测方式来探测,我们叫做可用性探测机制来探测服务的可用性。如果一旦容器中的应用挂了,我们又需要确保容器中的一个容器要运行,此时怎么办?node节点之上有一个应用程序

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值