• Pika

    前言

    一直没有系统的学习过 Kubernetes ,最近抽出了点时间学习 Kubernetes。

    Kubernetes 是典型的 Master + Worker 架构,跟 Console + Sidecar 有些相似,Master 节点负责调度、监控、是所有流量的入口,Worker 负责具体的 Pod 运行。

    Kubernetes 核心组件

    Kubernetes 组件分为两大类:Control Plane(控制层) 和 Worker Node(工作层)

    控制层:

    - kube-apiserver:提供 RESTful API,集群的唯一入口,所有组件和用户请求都要经过它。

    - etcd:分布式 KV 存储,保存集群所有状态数据(Pod、Service、ConfigMap 等)。

    - kube-scheduler:负责把新创建的、还没绑定节点的 Pod 调度到合适的 Node 上。

    - kube-controller-manager:运行各种控制器(Deployment、ReplicaSet、Service 等控制器)。

    工作层:

    - kubelet:负责接收 apiserver 下发的 Pod 定义,上报 Pod 状态。

    - kube-proxy:负责 Service 的负载均衡与转发。

    - container:真正跑容器,早期是 Docker

    图片

    Kubernetes 网络模型

    一次网络请求在 Kubernetes 的完整流程:

    - Ingress 层,Ingress Controller 根据配置规则分发请求。

    - Service 层,根据服务发现以及负载均衡继续分发请求。

    - Pod 层,服务实际运行层处理请求。

    图片

    一次完整流程

    - 用户执行 kubectl apply -f deploy.yml

    - kubectl 解析 YAML(Deployment)

    - kubectl 向 kube-apiserver 发送创建请求

    - kube-apiserver 做认证鉴权,把 Deployment 资源持久化保存到 etcd

    - kube-apiserver 返回成功

    - controller-manager 通过 Watch 机制监听到新 Deployment

    - 创建 ReplicaSet 并同时创建 Pod (未正式分配资源)存入 etcd

    - scheduler 选择合适的 Node 并完成 Pod 绑定,将信息存入 etcd

    图片

    主楼
  • 赵公明

    感谢。最近正好在学习云原生相关内容。

    #1
  • Kill_Joy

    佬 画草图用的skills是哪个,看着效果不错

    #2
  • Pika

    不是 AI 画的,我自己手画的,有需要的话可以看看:https://excalidraw.com/

    #3

发表回复

登录后回复