深入理解K8S(二)

Kubernetes核心架构

  • Mater管理节点:Etcd、Controller Manager、Scheduler
  • Node工作节点:Kubelet、Kube-proxy、CRI(容器运行时)、CNI(容器网络插件)、Pod

在这里插入图片描述

核心控制平面组件
  • Etcd:键值对高性能安全存储系统,持久化集群中的所有资源对象

    • Etcd可以使用集群模式(奇数),成员间可通过Raft共识算法复制请求并达成协议
    • Etcd工作原理:
    1. 客户端调用gRPC方法
    2. etcd leader利用Raft共识算法向member发送写入请求并得到半数人的响应
    3. etcd leader将写入命令添加到log中
    4. etcd根据相应的写操作固化到磁盘中
    5. etcd将结果返回给客户
      在这里插入图片描述
    • Etcd的选举机制
      在这里插入图片描述
  • Api Server

    • API网关,所有的用户请求、系统组件与集群通信的入口
    • 所有资源请求都是调用Api Server的api接口
    • 有完整的安全机制:身份验证、授权、准入
    • 可通过kubectl命令于Api Server通信
    • 一个集群允许有多个Api Server,并可以用Haproxy进行负载均衡
      在这里插入图片描述
  • Controller Manager

    • 是K8S集群的自动化控制中心,将应用运行成用户期望的状态
    • 包含30多个控制,工作模式雷同
    • 都受Api server的监控
    • 控制器是主备模式、Leader Election机制来实现故障转移
      • 例如:副本可以允许有多个,但是只有一个leader,其余的副本都是竞争上岗,不断地获取锁(在k8s中,锁是一种资源。控制器的锁在kube-sytem名为kube-controller-manager的Endpoint中)。一旦leader无法工作,其余的副本就会竞争上岗
      • Leader Election的时间参数
        • leaseDuration:资源锁定后的租约时间
        • renewDeadline:leder主动放弃锁
        • retryPeriod:在leader更新锁和member获取锁的时间间隔
  • Scheduler

    • 负责集群中pod的调度分配
    • Leader Election主备模式
    • 在kube-sytem的kube-scheduler的Endpoint中
    • 如果spec.NodeName为空,就会根据pod的Resources等条件为pod选择最优的节点。在更新节点名字到pod的spec.NodeName字段中
    • 调度器调度的两个阶段
      • 调度预选(周期)阶段:
        • Predicate:硬性条件选择
      • 调度绑定:
        • Priority:软性条件,根据节点的评分,选择评分高的来调度
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值