Kubernetes 架构图

Master-Node 架构

flowchart TB
    subgraph Client[客户端]
        kubectl[kubectl]
    end

    subgraph Master[Master节点]
        API[API Server]
        etcd[etcd]
        Scheduler[Scheduler]
        Controller[Controller]
    end

    subgraph Node1[Worker Node 1]
        kubelet1[kubelet]
        Pod1[Pod]
        Pod2[Pod]
    end

    subgraph Node2[Worker Node 2]
        kubelet2[kubelet]
        Pod3[Pod]
        Pod4[Pod]
    end

    Client --> API
    API --> etcd
    API --> Scheduler
    API --> Controller
    API --> kubelet1
    API --> kubelet2
    kubelet1 --> Pod1
    kubelet1 --> Pod2
    kubelet2 --> Pod3
    kubelet2 --> Pod4
                                

Master 节点组件

api
API Server

集群统一入口,处理 REST 请求

storage
etcd

高可用键值存储,保存集群状态

schedule
Scheduler

负责 Pod 调度到合适的节点

build
Controller Manager

运行控制器,维护集群状态

Worker 节点组件

settings_applications
kubelet

与 Master 通信,管理容器生命周期

swap_horiz
kube-proxy

维护网络规则,实现 Service

extension
Container Runtime

运行容器(Docker/containerd)

layers
Pod

最小部署单元,包含一个或多个容器

Pod 创建运行流程

sequenceDiagram
    participant U as User
    participant K as kubectl
    participant A as API Server
    participant E as etcd
    participant S as Scheduler
    participant N as kubelet
    participant P as Pod
    U->>K: kubectl run nginx
    K->>A: POST /api/v1/pods
    A->>E: save pod
    E-->>A: saved
    A-->>K: created
    K-->>U: pod/nginx created
    A->>S: watch pending pods
    S->>S: schedule
    S->>A: bind pod to node
    A->>N: watch new pod
    N->>P: create container
    N->>A: update status Running
                                

Service 网络模型

flowchart LR
    subgraph Ext[External]
        User[User Request]
    end
    subgraph Cluster[K8s Cluster]
        subgraph NodeA[Node A]
            Ingress[Ingress]
            Service1[Service]
            PodA1[Pod]
        end
        subgraph NodeB[Node B]
            PodB1[Pod]
        end
    end
    User --> Ingress
    Ingress --> Service1
    Service1 --> PodA1
    Service1 --> PodB1