Skip to content

Kubernetes 核心

Pod、Deployment、Service、声明式与控制器。

Updated View as Markdown
For humans

Kubernetes 核心

K8s 的核心思想:声明期望状态,控制器对账实现。面试必考三件套:Pod、Deployment、Service。

核心对象

对象 作用
Pod 最小调度单位(一个或多个容器)
Deployment 管理 Pod 副本:滚动更新、自愈、扩缩
Service 稳定的访问入口:负载均衡、服务发现
Namespace 资源隔离分组
ConfigMap/Secret 配置与密钥

Pod 与 Deployment

Deployment 对账: 期望 3 副本, 挂了自动补

  • Pod:容器 + 共享网络/存储(同 Pod 容器共享 localhost)。Pod 是“逻辑主机”
  • Deployment:声明 replicas: 3 + 镜像版本,控制器保证实际 = 期望(自愈)
  • 更新:Deployment 滚动更新(新版 Pod 逐个替换,见发布策略篇)

Service 与服务发现

Pod 的 IP 是临时的(重建就变)。Service 提供稳定入口

apiVersion: v1
kind: Service
metadata:
  name: myapp
spec:
  selector:
    app: myapp        # 选 Pod
  ports:
    - port: 80
      targetPort: 8000
  • Service 有稳定的 ClusterIP + DNS 名(myapp.namespace.svc),Pod 变化不影响访问
  • 负载均衡:Service 把请求分到匹配的 Pod
  • 类型:ClusterIP(集群内)、NodePort(节点端口)、LoadBalancer(云负载)

控制器模式

所有 K8s 对象都靠控制器对账

期望状态(yaml)→ API Server 存储 → 控制器 watch → 实际状态 → 对账修复
  • 声明式:你只声明“要 3 个副本”,控制器管怎么达到
  • 自愈:Pod 挂、节点挂、镜像拉取失败,控制器自动处理

配置:ConfigMap 与 Secret

  • ConfigMap:非敏感配置(环境变量、配置文件)
  • Secret:敏感数据(base64 只是编码,不是加密;生产配加密)
  • 挂载方式:环境变量 / 文件卷

面试追问

  1. Pod 是什么? 最小调度单位:一个或多个容器共享网络和存储。Pod 是逻辑主机
  2. Deployment 干什么? 声明副本数 + 镜像版本,控制器对账自愈 + 滚动更新
  3. Service 解决什么? Pod IP 会变:Service 提供稳定入口 + 负载均衡 + DNS
  4. 控制器模式? 期望状态 → 对账 → 实际状态。声明式管理
  5. Pod 挂了会怎样? Deployment 控制器重建(新的 Pod 新 IP)。Service 自动摘除旧 Pod
Navigation

Type to search…

↑↓ navigate↵ selectEsc close