栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Kubernetes

Kubernetes

文章目录
  • 技术架构
    • informer机制
    • Master节点
      • API Server
      • etcd
      • Scheduler:
      • Controller Manager:
    • Node节点
      • kubelet
      • Container Runtime
      • Kube-proxy
  • 常用资源对象
    • Pod
      • 创建过程
      • pending排查方法

技术架构

所有的组件都会与API Server交互

informer机制
  • 可以在本地查看etcd,减轻api-server的压力
  • 资源对象有版本号
  • 首先List下所有的资源,保留最新的版本号
  • Reflector 包会和 apiServer 建立长连接,并使用 ListAndWatch 方法获取并监听某一个资源的变化。List 方法将会获取某个资源的所有实例,Watch 方法则监听资源对象的创建、更新以及删除事件,然后将事件放入到DeltaFIFO Queue中;
  • 然后Informer会不断的从 Delta FIFO Queue 中 pop 增量事件,并根据事件的类型来决定新增、更新或者是删除本地缓存;
  • 接着Informer 根据事件类型来触发事先注册好的 Event Handler触发回调函数,然后然后将该事件丢到 Work Queue 这个工作队列中。
Master节点 API Server

资源curd的所有入口

etcd
  • 负责保存k8s集群的配置信息和各种资源的状态信息,当数据发生变化时,etcd会快速地通知k8s相关组件
  • etcd提供了watch机制,键值发生变化会通知到API Server,并由其通过watch API向客户端输出。
Scheduler:
  • 资源调度,负责决定将Pod放到哪个Node上运行
Controller Manager:
  • 负责管理集群各种资源,保证资源处于预期的状态。
    • 生命周期功能:包括Namespace创建和生命周期、Event垃圾回收、Pod终止相关的垃圾回收、级联垃圾回收及Node垃圾回收等。
    • API业务逻辑:由ReplicaSet执行的Pod扩展等,资源滚动更新等
Node节点 kubelet
  • Node节点的Agent
  • kubelet根据调度器信息创建和运行容器,并向master报告运行状态
Container Runtime
  • 容器运行时环境
  • 下载镜像运行容器
Kube-proxy
  • 提供服务发现和负载均衡
常用资源对象 Pod
取值描述原因
Pending(悬决)Pod已被k8s接受,但有一个或者多个容器尚未创建亦未运行。节点资源不足、Pod正在被调度、正在下载镜像
Running(运行中)Pod 已经绑定到了某个节点,Pod 中所有的容器都已被创建。至少有一个容器仍在运行,或者正处于启动或重启状态。
Succeeded(成功)Pod 中的所有容器都已成功终止,并且不会再重启。
Failed(失败)Pod 中的所有容器都已终止,并且至少有一个容器是因为失败终止。
Unknown(未知)因为某些原因无法取得 Pod 的状态通常是因为与 Pod 所在主机通信失败
创建过程

pending排查方法
  • 查看资源
  • 检查 nodeSelector(标签选择)及 affinity(亲和性)的配置
  • 检查 Node 是否存在 Pod 不能容忍的污点
  • 检查 kube-scheduler 是否正常运行
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/604705.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号