k8s的核心概念

k8s :自动化的容器编排平台
负责应用的部署,弹性,管理

k8s的核心功能

  • 服务的发现与负载均衡
  • 容器自动装箱(调度)—将一个容器放到某一个集群的机器上
  • 存储编排— 让存储的生命周期与容器的生命周期有一个连接
  • 自动容器恢复 -------对不可用的容器进行恢复
  • 自动发布与回滚
  • 配置与密文管理
  • 批量执行 -----job类型的任务可以批量执行
  • 水平伸缩

调度:k8s可以把用户提交的容器放到k8s所管理的集群的某一台节点上去,k8s的调度器是执行这项能力的组件,会观察正在被调度的容器的大小和规格。所需要的CPU和内存,在集群中找一台相对空闲的机器,将这个容器进行一次放置操作。

自动恢复:k8s有一个节点健康检查的功能,会监测这个集群中所有的宿主机,当宿主机出现故障时,会对他进行自动发现,会把运行在失败节点上的容器,迁移到健康的宿主机上去。

水平伸缩:k8s有业务负载检查的能力,会监测业务上承担的负载,如果业务上承担的负载过多,CPU利用率过高或者响应时间过长,则会对这个业务进行扩容,实现负载均衡。

k8s的架构

在这里插入图片描述

k8s-master的架构

在这里插入图片描述
k8s的master架构主要包括4个组件:APIserver,Controller,Scheduler,etcd。
APIserver:用来处理API操作的,所有的组件都会和APIserver进行连接,组件与组件之间一般不会独立的连接,都是通过APIserver进行消息的传送 (可以进行水平扩展的组件)。
controller:是控制器,一般用来完成对集群状态的管理,比如对容器进行修复,对容器进行水平扩张,都是由控制器来完成的。
schsduler:调度器,将一个cpu,内存过大的容器调度到其他空闲的机器
etcd:分布式存储系统,APIserver中所需要的原信息。都被放置到etcd中,etcd是个高可用的系统,通过etcd保证整个k8s集群的高可用。

k8s的node架构

在这里插入图片描述
k8s的node是真正运行业务负载的,每个业务负载都以pod的方式运行。一个pod中运行着一个或者多个容器。
真正去运行pod的组件叫做kubelet ,通过APIserver接收到所需要的pod运行的状态,提交到container runtime组件中,在os上真正去创建容器所需要的运行的环境,最终把容器运行起来。
storage Plugin:存储进行管理。
networkplugin:运行pod或者容器也需要对网络进行管理。
kube-proxy:完成server组件组网的,它是利用了iptables的能力来进行组建k8的network。
k8s的每个node上都会运行刚刚提到的这几个组件的。

k8s架构的一个例子

在这里插入图片描述
用户可以通过UI和CLI提交一个pod给k8s进行部署,pod的请求会通过UI和CLI提交给APIserver,然后APIserver会将pod的信息写入到etcd中,之后scheduler(控制器)通过APIserver的watch机制得到一个pod需要被调度的信息。

此时scheduler会根据它的内存状态进行一次调度的决策。在完成调度之后,scheduler会向APIserver提交一个说明,这个pod需要被调度到哪个节点上,然后将相应的信息写入etcd中保存。

然后APIserver会通知对应的节点进行真正的执行和启动。相应的节点的kubectl会得到这个通知,kubectl会去调container runtime去真正启动及配置pod的运行环境。去调度storage plugin去执行对应的存储,network plugin去配置网络。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值