Jeremy

语言EN

Kubernates 学习笔记

K8s 简介

K8s 架构

K8s是非常典型的主/从(服务端/客户端)架构

整个K8s架构主要分为两层:控制平面 (Control Plane) 和 工作节点 (Worker Node)

  1. 控制平面 (Control Plane)

控制整个集群,运行在Master节点上,包含API Server,etcd,Scheduler和Controller

  • API Server (核心入口)

    • 所有请求的入口(kubectl/UI/CI)
    • 提供REST API
    • 做认证,授权,限流
  • etcd (数据存储)

    • 存储所有集群状态(Pod, Node, 配置)
    • 强一致性 (Raft)
  • Schedule (调度器)

    • 决定Pod放到哪个Node
    • 考虑:资源,亲和性/反亲和行,污点/容忍
  • Controller (控制器)

    • 不断调和状态,让实际状态变为期望状态
    • 有 Deployment Controller,Node Controller,ReplicaSet Controller
  1. 工作节点 (Worker Node)
  • Kubelet (节点代理)

    • 管理Pod生命周期
    • 和API Server通信
    • 确保容器运行
  • kube-proxy

    • 实现 Service (负载均衡)
    • 操作iptables / IPVS
  • 容器运行时(Container Runtime)

    • containerd
  1. 核心资源对象
  • Pod(最小调度单位)

    • 一个Pod可以有多个容器
    • 共享网络和存储
  • Service

    • 给Pod提供一个稳定的访问入口
    • 内部负载均衡
  • Deployment

    • 管理Pod副本
    • 滚动更新
    • 自动回复
  1. 核心工作流程

kubectl apply -f deployment.yaml

  • 请求-> kube-apiserver
  • 数据写入etcd
  • controller-maneger发现需要创建Pod
  • Scheduler选择Node
  • kebelet在Node上启动容器
  • kube-proxy配置网络
  • Pod Running