k8s的组件

控制平面组件

简介

我们把K8s安装在一个叫做控制平面的机器上,控制平面的组件对集群做出全局决策

api server

主节点上负责提供K8s API 服务的组件,它是K8s控制面的前端
apiserver是K8s最重要的核心组件之一,提供集群管理的REST API接口,包括认证授权,数据校验以及集群状态变更等;
提供其他模块之间的数据交互和通信的枢纽(其他模块通过API Server查询或修改数据,只有API Server才直接操作etcd)
生产环境可以为api server做LA Load Average 或LBLoad Balance,在设计上考虑了水平扩缩的需要【部署多个实例可以实现扩缩】

controller manager

在主节点上运行控制器的组件
controller manager是K8s的大脑,它通过api server监控整个集群的状态,确保集群处于预期的工作状态;
controller manager由一系列的控制器组成,例如,Replication Controller控制副 本,Node Controller节点控制,Deployment Controller管理deployment等

Scheduler

主节点上的组件,该组件监视那些新创建的未指定运行节点的Pod,并选择节点让Pod 在上面运行。 scheduler负责分配调度Pod到集群内的节点上,它监听apiserver,查询还未分 配Node的Pod,然后根据调度策略为这些Pod分配节点

Etcd

K8s需要存储很多东西,像它本身的节点信息,组件信息,还有通过K8s运行的pod,deployment,service等等,都需要持久化,etcd就是它的数据中心。
生产环境中为了保证数据中心的高可用和数据的一致性,一般会部署最少三个节点;
etcd也可以部署在K8s每一个节点,组成etcd集群;
如果已经有外部etcd服务,K8s可以直接使用外部etcd服务。

Node组件

节点组件在每个节点上运行,维护运行的Pod并提供K8s运行环境

Kublet

一旦Pod被调度到对应的宿主机之后,后续要做的事情就是创建这个Pod,并管理这个Pod的生命周期,这里面包括:
Pod的增删改查等操作,在K8S里面这部分功能是通过kubelet 这个核心组件来完成的
kublet的功能分为两类:
kubelet操作当前宿主机的资源信息,并启动Pod
与k8s进行交互,获取pod相关的数据,监控当前的Pod变化的事件

kube-proxy

在k8s集群的每个节点上都运行着kube-proxy进程,负责实现k8s中service组件的虚拟IP服务
kube-proxy是让集群服务在外部可以被访问到的重要方式。目前kube-proxy有三种工作模式:
User space模式
Iptables模式(默认)
IPVS模式

容器运行环境

k8s支持多个容器运行环境,如Docker、 containerd、cri-o、 rktlet 以及任何实现 Kubernetes CRI (容器运行环境接口)的容器。

插件

插件使用 k8s资源 (DaemonSet、Deployment等) 实现集群功能

kube-dns

kube-dns为k8s集群提供命名服务,主要用来解析集群服务名和Pod的hostname
目的是让pod可以通过名字访问到集群内服务
          

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月木@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值