Kubernetes 组件浅析

浅析Kubernetes的常用的组件

Master组件

1.集群控制中心-指挥部
2.kubernetes系统的控制器组件(控制器组件可以运行在任何节点上,也可以为其单独分配服务器,称之为Master节点)
    kube-apiserver
    etcd
    kube-controller-manager
    kube-scheduler
    cloud-controller-manager
3.Master组件一般会多实例部署(或者高可用部署)

注:
    Master不可用,则对集群内容器应用的管理都将失效
    Master不可用,并不一定影响正在运行的容器应用

Node组件

1.集群中接受Master组件的指令,实际运行容器应用的工作负载节点
2.早期版本成为Minion
3.当某个Node宕机时,其上的工作负载会被Master自动转移到其他的节点
4.Node上运行的组件
    kubelet
    kube-proxy
    Docker Engine
5.Node可以在运行期间动态增加到kubernetes集群中

Master

  • Kube-apiserver

  1. Kubernetes资源请求/调用操作都是用过kube-apiserver提供的接口进行
  2. 提供其他模块之间的数据交互和通信的枢纽(其他模块通过API Server查询或修改数据,只有API Server才直接操作etcd)
  3. 采用HTTPS安全传输通道与CA签名数字证书强制刷个念想认证的方式,保障API-Server的安全性
  4. 使用协程(Coroutine)+队列(Queue)这种轻量级的高性能并发代码,使单进程的API-Server具备了超强的多核处理能力
  5. RESTful API采用了同步增删改查+异步WATCH接口,解决kubernetes中各种资源对象的高性能同步的问题
  6. API server提供HTTP Rest接口的关键服务进程,是Kubernetes里所有资源的增、删、改、查等操作的唯一入口。也是集群控制的入口进程;

关于API-Server访问资源方式参考以下

Kubernetes 之APIServer组件简介_菲宇的博客-CSDN博客_apiserver

相关命令参考

kube-apiserver | Kubernetes

  • kube-controller-manager

  1. 运行各种管理控制器,它们是集群中处理常规任务的后台线程
  2. 管理控制器通过API Server提供的(List-Watch)接口实时监控集群中特定资源的状态变化,当资源对象的状态发生变化时,Controller会尝试将其状态调整为期待的状态
  3. kube-controller-manager包含Node controller、Replication Controller、Endpoint Controller、Service Account等

这里写图片描述

关于kube-controller-manager中的详细信息参考以下

Kubernetes组件之kube-controller-manager_菲宇的博客-CSDN博客

相关命令参考

kube-controller-manager | Kubernetes

  • kube-scheduler

  1. 通过调度算法为待调度Pod列表中的每个Pod从Node列表中选择一个最合适的Node
  2. 调度步骤:
    1. 接收Controller Manager创建的新的待绑定pod
    2. 按照特定的调度算法和调度策略绑定(Binding)到集群中某个合适的Node上
    3. 将绑定的信息写入etcd中
    4. 目标Node上的kubelet服务进程实际为创建pod

关于kube-scheduler中的详细信息参考以下

kube-scheduler原理介绍及分析_li_101357的博客-CSDN博客_kube scheduler的作用

相关命令参考

kube-scheduler | Kubernetes

  • Etcd

  1. etcd是一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现。
  2. k8s集群使用etcd作为它的数据后端,etcd是一种无状态的分布式数据存储集群. 数据以key-value的形式存储在其中

关于etcd的详细信息参考以下

Etcd 架构与实现解析

Node

  • kube-proxy

  1. 每个Node上都会运行一个kube-proxy服务进程
  2. 实现Kubernetes Service的通信与负载均衡机制的重要组件
  3. kube-proxy负责为Pod创建代理服务,从apiserver获取所有server信息,并根据server信息创建代理服务,实现server到Pod的请求路由和转发,从而实现K8s层级的虚拟转发网络
  4. kube-proxy维护所有的Endpoint列表,kubernetes集群内不,可以在任意的Node上发起对某Service的访问请求,均能正确送达(及时Pod和kube-proxy不在同一个Node上)
  5. 将发到某个Service的访问请求转发带后端的多个pod实例(优先使用操作系统pacet filtering layer(iptables,ipvs等)进行转发,如果没有配置以上组件,kube-proxy自己负责转发)

关于kube-proxy的详细信息参考以下

kubernetes核心组件kube-proxy - 努力乄小白 - 博客园

相关命令参考

kube-proxy | Kubernetes

  • kubelet

  1. 每个Node上都会运行一个kubelet服务进程
  2. 处理Master下发到本节点的任务,管理pod及pod中的容器
  3. 通过kube-apiserver定期向Master汇报节点资源使用情况
  4. 通过cAdvisor监控容器和节点资源
  5. 定期执行容器健康检查

 关于kubelet的详细信息参考以下

Kubelet · Kubernetes 学习笔记

相关命令参考

kubelet | Kubernetes

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值