Skip to content

附录

A.1 面试高频题与参考答案

Linux 基础

Q1:如何查看 Linux 系统负载?

A:使用 uptimetophtopcat /proc/loadavg。load average 三个值分别表示 1 分钟、5 分钟、15 分钟的平均负载。

Q2:进程退出码 137 是什么意思?

A:137 = 128 + 9,表示进程收到 SIGKILL 信号。在 K8s 中通常是因为 OOMKilled 或被人为强制终止。

Q3:如何排查磁盘空间满?

A:

  1. df -h 查看分区使用率
  2. du -sh /* 查找大目录
  3. find / -size +100M 查找大文件
  4. lsof +L1 查找被删除但未释放的文件

Docker

Q4:容器和虚拟机的区别?

A:容器是进程级隔离,共享宿主机内核,启动快、资源占用少;虚拟机是操作系统级隔离,有完整的 OS,资源占用大、启动慢。

Q5:Docker 镜像分层有什么好处?

A:分层可以实现层共享和缓存复用,减少存储占用和构建时间。

Kubernetes

Q6:K8s 控制平面有哪些组件?

A:kube-apiserver、etcd、kube-scheduler、kube-controller-manager、cloud-controller-manager。

Q7:Pod 和 Container 的区别?

A:Pod 是 K8s 的最小调度单位,可以包含一个或多个 Container。Pod 中的容器共享网络和存储。

Q8:Deployment 和 StatefulSet 的区别?

A:Deployment 适合无状态应用,支持滚动更新和回滚;StatefulSet 适合有状态应用,提供稳定的网络标识和持久存储。

Q9:Service 的几种类型?

A:ClusterIP、NodePort、LoadBalancer、ExternalName。

Q10:Pod Pending 可能的原因?

A:资源不足、节点亲和性/污点不满足、PVC 未绑定、镜像拉取策略问题等。

Q11:什么是 HPA 和 VPA?

A:HPA 是水平 Pod 自动伸缩,根据指标调整 Pod 数量;VPA 是垂直 Pod 自动伸缩,调整 Pod 的资源 requests/limits。

Q12:Prometheus 和 Grafana 的关系?

A:Prometheus 负责采集和存储指标数据;Grafana 负责可视化展示。

可观测性

Q13:可观测性的三大支柱是什么?

A:Metrics(指标)、Logs(日志)、Traces(链路)。

Q14:什么是 SLO、SLI、SLA?

A:SLI 是服务质量指标,SLO 是服务质量目标,SLA 是对用户的服务等级协议。

自动化与 SRE

Q15:什么是幂等性?

A:幂等性是指同一个操作执行一次和执行多次的结果相同。在运维自动化中非常重要。

Q16:什么是 Runbook?

A:Runbook 是标准化的故障处理手册,包含现象、排查步骤、修复步骤、验证方法和升级路径。


A.2 常用 YAML 模板

Deployment 模板

yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: app
  template:
    metadata:
      labels:
        app: app
    spec:
      containers:
      - name: app
        image: app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: "100m"
            memory: "128Mi"
          limits:
            cpu: "200m"
            memory: "256Mi"

Service 模板

yaml
apiVersion: v1
kind: Service
metadata:
  name: app
spec:
  selector:
    app: app
  ports:
  - port: 80
    targetPort: 8080
  type: ClusterIP

ConfigMap 模板

yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  key: value

Secret 模板

yaml
apiVersion: v1
kind: Secret
metadata:
  name: app-secret
type: Opaque
stringData:
  password: xxx

PVC 模板

yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: app-pvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

RBAC 模板

yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: dev
  name: pod-reader
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods
  namespace: dev
subjects:
- kind: ServiceAccount
  name: dev-sa
  namespace: dev
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io

A.3 推荐学习资源

官方文档

书籍

  • 《Kubernetes 权威指南》
  • 《Docker 技术入门与实战》
  • 《Google SRE 运维解密》
  • 《凤凰项目》
  • 《深入剖析 Kubernetes》(张磊)

在线课程

  • CNCF 免费课程
  • KodeKloud(CKA/CKAD/CKS 实战)
  • 极客时间《Kubernetes 实战》

社区

  • Kubernetes 中文社区
  • 云原生技术社区
  • GitHub 开源项目

A.4 实验环境快速启动脚本

bash
#!/bin/bash
# setup-lab.sh
# 快速搭建 K8s 学习实验环境

set -euo pipefail

echo "=== 安装基础工具 ==="
sudo apt update
sudo apt install -y vim git curl wget net-tools htop tree

echo "=== 安装 Docker ==="
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER

echo "=== 安装 kubectl ==="
curl -LO "https://dl.k8s/release/$(curl -L -s https://dl.k8s/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

echo "=== 安装 minikube ==="
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

echo "=== 安装 Helm ==="
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

echo "=== 启动 minikube ==="
minikube start --driver=docker

echo "=== 验证 ==="
docker version
kubectl version --client
minikube status

echo "=== 实验环境准备完成 ==="

A.5 学习进度跟踪表

部分章节完成日期实验完成练习完成
前言00
Linux1-4
云计算5-7
容器8-10
K8s 基础11-16
K8s 运维17-20
可观测性21-24
自动化25-29
AI Agent30-32
算力平台33-36

祝你学习顺利!