Kubernetes 核心概念

Kubernetes 把运维对象的方方面面抽象成一批"资源类型",一切操作——无论是 kubectl 命令还是 YAML 文件——都是在读写这些资源。这一章先建立全局概念地图,后文各章再逐一深入展开。

概念总览表

先把最常用的资源一次看清:

概念一句话说明对应章节
集群 Cluster控制面与工作节点的整体03 架构
节点 Node集群里的一台工作机器03 架构
命名空间 Namespace集群内部的逻辑分区06
Pod可调度的最小部署单元,内含一个或多个容器07
Deployment无状态应用的副本保持与滚动更新11
Service稳定的访问入口与负载均衡15
Ingress集群入口的 HTTP 路由16
ConfigMap / Secret普通配置与敏感信息17 / 18
PV / PVC持久化存储20
探针 Probe容器健康检查21

集群与节点

集群是 Kubernetes 的顶层单位,由控制面(大脑)与节点(手脚)组成。节点可以是一台物理机或虚拟机,节点上运行着 kubelet 代理,负责与集群通信、执行调度指令。

命名空间与 Pod

命名空间把集群切成若干逻辑区域,不同团队各用各的、互不干扰。Pod 是最小的部署单元:Kubernetes 并不直接调度容器,而是把一组"同生共死"的容器打包成一个 Pod 再调度:

apiVersion: v1
kind: Pod
metadata:
  name: web-pod
  namespace: default
spec:
  containers:
    - name: nginx
      image: nginx:1.27

工作负载控制器

Pod 一旦被删除不会自己回来,控制器负责维持"期望数量"。常用控制器有:Deployment(无状态应用)、StatefulSet(有状态应用)、DaemonSet(每节点一个)、Job 与 CronJob(一次性与定时任务)。控制器的工作模式都是同一个循环:对比 spec 中的期望值与实际数量,有偏差就纠正。

Service 与 Ingress

Pod 的 IP 是临时的,Service 提供稳定的虚拟 IP 与 DNS 名,把请求负载均衡到一组 Pod 上。集群对外提供 HTTP 服务时,通常再用 Ingress 按域名或路径路由,并在入口层终结 TLS。

配置与存储

  • ConfigMap:存放非敏感配置,如配置文件、环境变量。
  • Secret:存放密码、密钥等敏感数据(在 YAML 中以 Base64 呈现)。
  • 存储:容器内的文件随容器消亡而丢失,Volume 提供挂载能力,需要跨节点共享或真正持久化时,由 PV 与 PVC 承接。

声明式 API 与 etcd

Kubernetes 的核心思想是"声明式":你提交的是期望状态,而不是一步步的操作指令。所有资源的期望状态与实际状态都存放在 etcd(分布式键值数据库)中;kube-apiserver 是唯一读写入口,各类控制器对比"期望 vs 实际"并不断纠正偏差,这套循环叫控制回路:

kubectl apply -f deploy.yaml    # 声明:我要 3 个副本
# 控制器发现当前只有 0 个,便持续创建,直到实际数量变为 3 个

小结:Kubernetes 的世界观是"一切皆资源、状态皆声明"。先把总览表里的概念分工记住,下一章学习架构时,就能明白每个组件在守护哪一类资源。

笔记加载中…