00:00:00
加载中...
K8s 核心知识速记手册
本文最后更新于151 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com


目录

  1. 架构篇
  2. 资源与清单篇
  3. 控制器篇
  4. 存储篇
  5. 网络篇
  6. 故障排查篇
  7. 配置管理篇
  8. Job与DaemonSet篇
  9. 外部服务映射篇
  10. 探针篇
  11. 资源限制与优雅终止篇
  12. 安全认证篇
  13. 发布策略与CICD篇
  14. 可观测性与弹性扩缩容篇
  15. StatefulSet有状态控制器篇
  16. 集群生命周期管理篇
  17. Helm包管理器篇
  18. Traefik流量治理篇
  19. Traefik进阶与Gateway API篇
  20. CNI网络深度解析篇
  21. 可观测性进阶篇
  22. 网络策略与Pod调度篇
  23. Istio与多Master高可用篇
  24. 命令速查篇
  25. 面试高频速记

一、架构篇

1.1 K8s 三层架构

Master (控制平面)              Worker (工作节点)
├── etcd                     ├── kubelet
├── api-server               ├── kube-proxy
├── scheduler                 └── CNI (Flannel/Calico)
└── controller manager

1.2 Master 四大组件

组件职责记忆口诀
etcd存储集群所有数据数据大脑
api-server集群控制入口,组件通信中枢总指挥
schedulerPod 调度到节点分配任务
controller manager维护集群状态状态监控

1.3 Worker 三大组件

组件职责
kubelet管理 Pod 生命周期,上报节点状态
kube-proxy代理请求,负载均衡,服务发现
CNIPod 网络通信(Flannel/Calico/Cilium)

1.4 三种网络

网络类型示例网段用途
物理机网络10.0.0.0/24节点间通信
Pod 网络10.100.0.0/16Pod 间通信
Service 网络10.200.0.0/16Service 虚拟 IP

1.5 Pod 三种容器

Pod 内容器:
1. 基础架构容器(pause)→ 提供共享网络/IPC/UTS,kubelet 自动创建
2. 初始化容器(init container)→ Pod 启动前执行,顺序运行,全部成功后才启动业务容器
3. 业务容器 → 用户实际应用

1.6 API Server 访问控制流程

请求进来 → 认证(Authentication) → 鉴权(Authorization) → 准入控制(Admission Control)

二、资源与清单篇

2.1 核心资源(必背优先级)

资源简称作用优先级
Podpo最小调度单元⭐⭐⭐⭐⭐
Deploymentdeploy无状态应用部署⭐⭐⭐⭐⭐
Servicesvc四层负载均衡⭐⭐⭐⭐⭐
ConfigMapcm配置管理⭐⭐⭐⭐⭐
Namespacens资源隔离⭐⭐⭐⭐
Ingressing七层反向代理⭐⭐⭐⭐
Secret–敏感数据存储⭐⭐⭐
PV/PVC/SC–持久化存储⭐⭐⭐
DaemonSetds每节点一个 Pod⭐⭐⭐
Job/CronJob–批处理任务⭐⭐⭐
StatefulSetsts有状态应用⭐⭐
Endpointsep端点地址存储⭐⭐⭐

2.2 资源清单五要素

apiVersion: v1           # 1. API 版本
kind: Pod                # 2. 资源类型
metadata:               # 3. 元数据
name: nginx
labels:
  app: nginx
spec:                   # 4. 期望状态
containers:
- name: c1
  image: nginx
status:                 # 5. 实际状态(系统维护)

2.3 响应式 vs 声明式

对比响应式声明式
方式命令行YAML + apply
场景快速测试、调试生产环境
特点立即生效幂等、可追溯

三、控制器篇

3.1 控制器演进与对比

RC (已废弃) → RS (可用) → Deployment (生产首选)
对比RCRSDeployment
标签匹配matchLabelsmatchLabels + matchExpressions同 RS
声明式更新❌❌✅
滚动更新❌❌✅
回滚❌❌✅
状态已废弃可用生产首选

3.2 RS 标签表达式

selector:
matchExpressions:
- key: version
  operator: In        # In / NotIn / Exists / DoesNotExist
  values:
  - v1
  - v2

3.3 Deployment 核心字段

spec:
replicas: 3
strategy:
  type: RollingUpdate   # Recreate / RollingUpdate
  rollingUpdate:
    maxSurge: 2         # 最多超出副本数(个或%)
    maxUnavailable: 1   # 最多不可用(个或%)
selector:
  matchLabels:
    apps: nginx

3.4 滚动更新原理

更新前: RS-v1 [5 Pod]
更新中: RS-v1 [3 Pod] + RS-v2 [5 Pod] # 先扩后缩
更新后: RS-v2 [5 Pod], RS-v1 [0 Pod]

3.5 Deployment 常用命令

kubectl apply -f deploy.yaml              # 创建/更新
kubectl rollout status deploy/xxx         # 查看状态
kubectl rollout history deploy/xxx        # 查看历史
kubectl rollout undo deploy/xxx           # 回滚到上一版本
kubectl rollout undo deploy/xxx --to-revision=3  # 回滚到指定版本
kubectl scale deploy xxx --replicas=5     # 扩缩容
kubectl set image deploy/xxx c1=nginx:1.26  # 更新镜像

四、存储篇

4.1 存储卷类型对比

类型数据持久跨节点共享场景
emptyDir❌ Pod删除丢失❌临时缓存、同Pod多容器共享
hostPath✅ 宿主机持久❌时区同步、系统级组件
nfs✅ 持久化✅生产推荐,跨节点共享
configMap––配置文件挂载
downwardAPI––Pod 元数据注入

4.2 PV/PVC/SC 核心概念

资源全称作用
PVPersistentVolume对接后端存储,声明容量与访问模式
PVCPersistentVolumeClaim向 PV 或 SC 请求存储空间
SCStorageClass动态创建 PV,关联后端存储

4.3 访问模式

模式简称说明
ReadWriteOnceRWO单节点读写
ReadOnlyManyROX多节点只读
ReadWriteManyRWX多节点读写
ReadWriteOncePodRWOP单Pod读写(K8s 1.22+/CSI)

4.4 CSI/CRI/CNI 区别

接口全称作用
CSIContainer Storage Interface容器存储接口
CRIContainer Runtime Interface容器运行时接口
CNIContainer Network Interface容器网络接口

五、网络篇

5.1 Service 五种类型

类型访问范围用途默认端口
ClusterIP集群内部内部应用互访–
NodePort集群外部临时外部访问30000-32767
LoadBalancer云环境生产外部访问–
ExternalName集群外部CNAME 映射无 ClusterIP
Headless–直接访问 Pod无 ClusterIP

5.2 kube-proxy 代理模式演进

模式说明状态
iptables规则链式匹配,性能一般K8s 1.27 前默认
ipvs哈希表查找,支持多算法K8s 1.35 弃用
nftables最新推荐,性能最优K8s 1.33+ 默认

5.3 CoreDNS 服务发现

DNS 格式:<Service>.<Namespace>.svc.<集群域名>
示例:svc-nginx.default.svc.cluster.local

六、故障排查篇

6.1 排查三板斧(按顺序)

顺序命令看什么
1kubectl describe pod <name>Events 事件
2kubectl logs <name>容器日志
3kubectl exec -it <name> -- sh进入容器

6.2 Pod 五个阶段

阶段含义说明
Pending等待中已接收,等待调度/拉取镜像
Running运行中已调度,容器正在运行
Succeeded成功所有容器正常结束(exit 0)
Failed失败容器异常终止,不会重启
Unknown未知节点通信失败

6.3 常见 Events 关键字

Event问题解决
ImagePullBackOff镜像拉取失败检查镜像名/tag、认证配置
CrashLoopBackOff容器不断重启查日志排查应用错误
Pending等待调度检查资源/节点/污点/PVC
OOMKilled内存超限调整 resources.limits

6.4 Pod 重启策略

策略正常退出(Exit 0)异常退出(非0)适用场景
Always重启重启默认,长驻服务
OnFailure不重启重启批处理任务
Never不重启不重启一次性任务、Job

七、配置管理篇

7.1 ConfigMap 创建方式

kubectl create configmap cm-name --from-literal=key=value
kubectl create configmap cm-name --from-file=config.conf
kubectl apply -f cm.yaml

7.2 Pod 引用 ConfigMap

# 方式A:环境变量
env:
- name: SCHOOL
  valueFrom:
    configMapKeyRef:
      name: cm-conf
      key: school

# 方式B:存储卷挂载
volumes:
- name: data
  configMap:
    name: cm-conf

7.3 subPath 核心区别

不加 subPath → 挂载整个目录,原有文件被覆盖
加 subPath   → 挂载单个文件,目录中其他文件保留

7.4 Secret vs ConfigMap

对比ConfigMapSecret
用途非敏感配置敏感数据(密码、证书、token)
编码明文存储Base64 编码存储

八、Job与DaemonSet篇

8.1 Job 一次性任务

apiVersion: batch/v1
kind: Job
spec:
  backoffLimit: 4              # 失败重试次数
  completions: 1               # 成功完成次数
  parallelism: 1               # 并行 Pod 数
  template:
    spec:
      restartPolicy: Never      # 必须 Never 或 OnFailure

8.2 CronJob 周期性任务

apiVersion: batch/v1
kind: CronJob
spec:
  schedule: "0 2 * * *"        # 分 时 日 月 周
  concurrencyPolicy: Replace   # Allow / Forbid / Replace

8.3 DaemonSet 守护集

对比DaemonSetDeployment
Pod 数量每节点 1 个可指定 replicas
调度自动(忽略调度器)通过 Scheduler
适用场景日志/监控/网络插件业务应用

九、外部服务映射篇

9.1 Endpoints vs EndpointSlice

特性EndpointsEndpointSlice
存储模式单个大对象多小对象分片
更新方式全量更新增量更新
地址类型仅 IPv4IPv4/IPv6 双栈
状态1.33+ 弃用1.21+ 稳定

9.2 ExternalName 类型 Service

spec:
  type: ExternalName
  externalName: baidu.com     # CNAME 转发到该域名

十、探针篇

10.1 三种探针类型

探针作用失败后果
livenessProbe健康状态检查重启容器
readinessProbe可用性检查移出流量
startupProbe启动检查杀死容器

10.2 四种检查机制

机制说明
exec执行命令,返回 0 成功
httpGetHTTP 请求,2xx/3xx 成功
tcpSocketTCP 端口连通性测试
grpcgRPC 健康检查(K8s 1.19+)

十一、资源限制与优雅终止篇

11.1 容器资源限制

配置作用说明
requests调度期望值节点资源不满足则无法调度
limits使用上限强制控制资源使用量

11.2 Pod 优雅终止

钩子触发时机用途
postStart容器启动后准备数据、初始化
preStop容器停止前处理未完成请求、清理

十二、安全认证篇

12.1 身份认证策略

类型说明
X.509 客户端证书双向 TLS,CN 字段=用户名
Bootstrap 令牌集群扩容时使用
Service Account 令牌Pod 访问 API Server
OIDC 令牌第三方认证

12.2 RBAC 角色绑定

# RoleBinding:绑定 Role(同一命名空间)
kubectl create rolebinding rb-name --role=pod-reader --user=jasonyin -n default

# ClusterRoleBinding:绑定 ClusterRole(跨命名空间)
kubectl create clusterrolebinding crb-name --clusterrole=cluster-admin --user=jasonyin

十三、发布策略与CICD篇

13.1 三种常见发布策略对比

策略特点适用场景
灰度/金丝雀发布新旧版本共存,逐渐替换生产环境平滑升级
蓝绿部署两套环境,切换流量要求快速回滚
A/B测试精确到用户级别精细化灰度

13.2 StatefulSet partition 分段更新

spec:
  updateStrategy:
    rollingUpdate:
      partition: 3    # 编号>=3的Pod才会被更新

十四、可观测性与弹性扩缩容篇

14.1 HPA vs VPA 对比

特性HPA (水平扩容)VPA (垂直扩容)
扩容方向增减 Pod 副本数调整 CPU/内存 Request/Limit
是否重启 Pod否通常需要
适用场景无状态服务、流量波动大有状态服务

14.2 HPA 核心前置条件

  • Pod 必须设置 resources.requests
  • 缩容冷却时间:5 分钟(默认)
  • HPA 与 VPA 不能同时对同一 Pod 的 CPU/内存指标生效

十五、StatefulSet有状态控制器篇

15.1 核心特性

特性说明
稳定网络标识Headless Service + Pod编号(sts-0, sts-1…)
独享存储VolumeClaimTemplate 为每个Pod创建独立PVC
有序部署/缩放默认按编号顺序0→N创建,逆序N→0删除

15.2 Headless Service

spec:
  clusterIP: None      # 关键:无头服务

DNS解析规则: <pod名>.<svc名>.<ns>.svc.cluster.local


十六、集群生命周期管理篇(Day34新增)

16.1 缩容流程(五步法)

① 驱逐节点Pod → kubectl drain <node> --ignore-daemonsets --delete-emptydir-data
② 停止kubelet → systemctl stop kubelet
③ 重置节点 → kubeadm reset -f
④ 清理残留 → ipvsadm --clear + rm -f /etc/cni/net.d/*
⑤ 移除节点 → kubectl delete node <node>

16.2 Bootstrap Token 认证流程

① Master创建Token → 存储为Secret(kube-system命名空间)
② Worker节点kubeadm join → 携带Token连接API Server
③ kubelet生成CSR → 请求签名证书
④ Controller Manager自动签名 → 返回证书
⑤ Worker获取证书 → 完成认证,加入集群

16.3 Token 管理命令

kubeadm token create                        # 创建Token(默认24小时有效)
kubeadm token create xxx --ttl 0            # 创建永不过期Token
kubeadm token list                          # 查看Token列表
kubeadm token create --print-join-command --ttl 0  # 生成加入命令

16.4 证书续期

kubeadm certs check-expiration              # 检查证书有效期
kubeadm certs renew all                     # 续期所有证书

Worker证书续期: 修改 controller-manager 的 --cluster-signing-duration=87600h0m0s(10年)


十七、Helm包管理器篇(Day34新增)

17.1 核心术语

术语说明
ChartK8S资源清单集合(应用模板)
Release基于Chart部署的应用实例
RepositoryChart仓库(公有/私有)

17.2 Chart 文件结构

mychart/
├── Chart.yaml          # Chart元数据
├── values.yaml         # 默认配置值
├── templates/          # 资源清单模板
├── charts/             # 依赖的Chart
└── NOTES.txt           # 部署后提示信息

17.3 Helm 常用命令

helm install <name> <chart> -n <ns>           # 安装
helm upgrade <name> -f values.yaml <chart>    # 升级
helm rollback <name> <revision> -n <ns>       # 回滚
helm uninstall <name> -n <ns>                 # 卸载
helm list -n <ns>                             # 列表
helm history <name> -n <ns>                   # 历史
helm repo add <name> <url>                    # 添加仓库
helm search repo <keyword>                    # 搜索Chart

十八、Traefik流量治理篇(Day35新增)

18.1 Traefik核心组件

组件说明
IngressClassIngress实现类
Entrypoint入口点,监听端口(web=80, websecure=443)
Router路由,根据Host/Path/Headers等匹配请求
Middleware中间件,修改请求或判断(认证/限流/Header)
Service后端服务,负载均衡转发到Pod

18.2 Ingress vs IngressRoute

对比IngressIngressRoute
类型K8s原生资源Traefik CRD
功能基础七层路由更丰富(多中间件、TCP/UDP)
配置annotations声明式YAML

18.3 IngressRoute 基础配置

apiVersion: traefik.io/v1alpha1
kind: IngressRoute
spec:
  entryPoints:
  - web                 # 监听80端口
  routes:
  - match: Host(`whoami.yinzhengjie.com`) && PathPrefix(`/`)
    kind: Rule
    services:
    - name: svc-whoami
      port: 80

18.4 中间件(Middleware)

中间件用途
ipAllowListIP白名单
basicAuthBasic认证
rateLimit限流
headersHeader修改

十九、Traefik进阶与Gateway API篇(Day36新增)

19.1 TraefikService 加权轮询

apiVersion: traefik.io/v1alpha1
kind: TraefikService
spec:
  weighted:
    services:
    - name: svc-web01
      weight: 4    # 80%流量
    - name: svc-web02
      weight: 1    # 20%流量

19.2 流量镜像(Mirroring)

spec:
  mirroring:
    name: svc-web01    # 主服务,100%流量
    port: 80
    mirrors:
    - name: svc-web02  # 镜像服务
      percent: 20      # 复制20%流量

19.3 externalTrafficPolicy

策略源IP保留负载均衡
Cluster(默认)不保留均衡
Local保留可能不均

19.4 Gateway API vs Ingress

维度IngressGateway API
协议仅HTTP/HTTPSL4(TCP/UDP) + L7(HTTP/gRPC/TLS)
资源模型单一IngressGatewayClass/Gateway/HTTPRoute
高级能力依赖Annotation原生内置灰度/镜像/改写
趋势仅bug维护社区主流演进方向

二十、CNI网络深度解析篇(Day36+37新增)

20.1 Flannel 工作模式

模式原理跨网段性能
vxlan二层封装转发支持一般
host-gw宿主机路由表直写不支持高
directrouting同网段host-gw + 跨网段vxlan支持推荐

20.2 Flannel 同节点 Pod 通信

Pod-A (eth0) → veth-X → cni0 网桥 ← veth-Y ← Pod-B (eth0)

20.3 Flannel 跨节点 Pod 通信

Pod-A → cni0 → flannel.1(封装VXLAN)→ eth0 → 对端 eth0 → flannel.1(解封)→ cni0 → Pod-B

20.4 Calico vs Flannel

特性FlannelCalico
性能中(封装开销)高(三层无封装)
网络策略不支持L3/L4
适用规模<50节点50-500节点

20.5 Calico VXLANCrossSubnet

同子网走BGP纯路由(高性能),跨子网走VXLAN封装(兼容性)


二十一、可观测性进阶篇(Day36+37新增)

21.1 Prometheus Operator CRD

CRD作用
Prometheus定义Prometheus实例部署
Alertmanager定义告警管理器
ServiceMonitor声明式指定如何监控Service
PodMonitor声明式指定如何监控Pod
PrometheusRule定义告警/记录规则

21.2 ServiceMonitor 工作原理

ServiceMonitor(selector匹配Service) → Service(selector匹配Pod) → Pod暴露/metrics → Prometheus抓取

21.3 ElasticStack 日志采集方案

方案原理优点缺点
Sidecar每个Pod加filebeat容器不改原架构资源消耗大
DaemonSet每节点1个filebeat Pod节省资源需RBAC权限
产品内置开发在应用中实现运维省事推动慢

二十二、网络策略与Pod调度篇(Day38+39新增)

22.1 NetworkPolicy 核心概念

  • K8s原生L3/L4防火墙,白名单机制
  • 由CNI插件实现规则(支持Calico/Cilium;Flannel不支持)

22.2 三种流量匹配方式

方式字段适用场景
ipBlockfrom[].ipBlock.cidr + except基于IP网段放行/排除
namespaceSelectorfrom[].namespaceSelector.matchLabels放行特定NS的全部Pod
podSelectorfrom[].podSelector.matchExpressions放行特定标签的Pod

22.3 GlobalNetworkPolicy(Calico独有)

维度NetworkPolicyGlobalNetworkPolicy
生效范围仅当前NS全集群所有NS
动作仅隐式AllowAllow / Deny / Pass + 优先级

22.4 Taints 污点(三种效果)

效果新Pod已有Pod
NoSchedule❌ 不调度不受影响
PreferNoSchedule尽量不调度不受影响
NoExecute❌ 不调度⚠️ 立即驱逐!

22.5 调度方式一览

调度方式失败原因
nodeName节点不存在
hostPort端口冲突→Pending
resourcesInsufficient cpu/memory
nodeSelector无匹配标签节点
Taints + tolerations未容忍所有污点
nodeAffinity无匹配节点
podAffinity所有拓扑域无匹配Pod
podAntiAffinity拓扑域数量不足→Pending

22.6 drain vs cordon

命令作用
cordon标记不可调度,已有Pod不动
draincordon + 逐出所有Pod

22.7 LimitRange vs ResourceQuota

对比LimitRangeResourceQuota
范围单个Pod/容器整个Namespace总量
限制min/max/defaulthard上限

二十三、Istio与多Master高可用篇(Day39新增)

23.1 Istio 核心概念

定位: Service Mesh服务网格,实现微服务的发现、连接、管理、监控、安全。

sidecar vs ambient:

  • sidecar模式:每个Pod注入envoy代理容器
  • ambient模式:零侵入,节点级代理

23.2 Istio 安装

# 二进制安装(推荐)
istioctl install --set profile=demo -y

# 验证
istioctl version
kubectl get pods -n istio-system

23.3 VirtualService A/B测试

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
spec:
  hosts:
  - apps-svc-all
  http:
  - match:
    - headers:
        yinzhengjie-username:
          exact: jasonyin
    route:
    - destination:
        host: apps-svc-v1      # 匹配header → v1
  - route:
    - destination:
        host: apps-svc-v2      # 默认 → v2

23.4 单Master升多Master步骤

① upload-certs → 上传证书
② create token → 创建Bootstrap Token
③ reset → 重置worker节点
④ kubeadm join --control-plane → 加入为Master
⑤ keepalived VIP → 高可用
⑥ certSANs重生成 → 证书包含所有IP

23.5 Keepalived VIP 高可用

VRRP协议,多Master共享VIP(如10.0.0.240),主宕机VIP自动漂移

23.6 证书重新生成

症状: x509: certificate is valid for 10.0.0.231, not 10.0.0.240

解决: 修改 kubeadm.yaml 的 certSANs 包含所有节点IP+VIP,重新生成apiserver证书


二十四、命令速查篇

24.1 集群与节点

kubectl get nodes                  # 查看节点
kubectl get pods -A               # 所有 Pod
kubectl cluster-info             # 集群信息
kubectl cordon <node>            # 标记不可调度
kubectl uncordon <node>          # 恢复调度
kubectl drain <node> --ignore-daemonsets --delete-emptydir-data  # 驱逐节点

24.2 Pod 管理

kubectl run nginx --image=nginx              # 创建 Pod
kubectl get pods -o wide                     # 查看详情
kubectl describe pod <name>                  # 详情+Events
kubectl logs <name>                          # 日志
kubectl exec -it <name> -- sh              # 进入容器
kubectl delete pod <name>                    # 删除

24.3 Deployment 管理

kubectl apply -f deploy.yaml               # 创建/更新
kubectl rollout status deploy/xxx          # 更新状态
kubectl rollout history deploy/xxx         # 历史版本
kubectl rollout undo deploy/xxx            # 回滚
kubectl scale deploy xxx --replicas=5      # 扩缩容
kubectl set image deploy/xxx c1=nginx:1.26 # 更新镜像

24.4 Helm 管理

helm install <name> <chart> -n <ns>           # 安装
helm upgrade <name> -f values.yaml <chart>    # 升级
helm rollback <name> <revision> -n <ns>       # 回滚
helm uninstall <name> -n <ns>                 # 卸载
helm list -n <ns>                             # 列表

24.5 证书管理

kubeadm certs check-expiration              # 检查有效期
kubeadm certs renew all                     # 续期所有证书
kubeadm token create --print-join-command --ttl 0  # 生成join命令

24.6 Istio 管理

istioctl install --set profile=demo -y      # 安装
istioctl version                            # 查看版本
istioctl kube-inject -f deploy.yaml | kubectl apply -f -  # 手动注入sidecar

二十五、面试高频速记(100问)

#问题答案
1K8s Master 四大组件?etcd、api-server、scheduler、controller manager
2Worker 三大组件?kubelet、kube-proxy、CNI
3三种网络?物理机网络、Pod 网络、Service 网络
4Pod 三种容器?基础架构(pause)、初始化(init)、业务容器
5Deployment vs RS vs RC?Deploy 支持滚动更新/回滚,RS 支持标签表达式,RC 已废弃
6Service 五种类型?ClusterIP、NodePort、LoadBalancer、ExternalName、Headless
7Pod 五阶段?Pending、Running、Succeeded、Failed、Unknown
8Pod 重启策略?Always(默认)/OnFailure/Never
9DaemonSet 特点?每节点一个 Pod,自动扩散
10存储卷类型?emptyDir、hostPath、nfs、configMap、downwardAPI
11PV/PVC/SC 关系?PVC 向 SC 或 PV 请求存储,SC 动态创建 PV
12访问模式 RWO/RWX/ROX?单节点读写/多节点读写/多节点只读
13CSI/CRI/CNI 区别?存储接口/运行时接口/网络接口
14故障排查三板斧?describe → logs → exec
15ImagePullBackOff 原因?镜像不存在/tag错误/无权限
16CrashLoopBackOff 原因?应用启动失败/健康检查失败
17静态 Pod 路径?/etc/kubernetes/manifests/
18kube-proxy 三种模式?iptables → ipvs → nftables
19Job 适用场景?一次性任务(备份/迁移/批处理)
20livenessProbe 失败?重启容器
21readinessProbe 失败?移出 ep,无流量
22requests vs limits?requests=调度期望值,limits=使用上限
23Secret vs ConfigMap?Secret 用于敏感数据,Base64 编码
24HPA vs VPA?HPA 扩缩 Pod 数量,VPA 调整 CPU/内存
25HPA 前置条件?必须设 resources.requests
26STS 三大特性?稳定DNS、独享存储、有序部署/缩放
27Headless Service?clusterIP: None,直接解析 Pod DNS
28partition 分段更新?仅更新编号>=partition 的 Pod
29缩容五步法?驱逐→停kubelet→重置→清理→移除
30Bootstrap Token作用?Worker节点首次加入集群时的临时认证凭证
31Token有效期?默认24小时,可设–ttl 0永不过期
32证书续期命令?kubeadm certs renew all
33Helm Chart vs Release?Chart=模板,Release=部署后的实例
34Helm升级两种方式?-f values.yaml 或 –set key=value
35Ingress和Service区别?Service四层(IP:PORT),Ingress七层(域名/路径)
36IngressRoute vs Ingress?IngressRoute是Traefik CRD,功能更丰富
37Traefik核心组件?Entrypoint、Router、Middleware、Service
38Middleware作用?请求到达服务前修改请求(认证/限流/Header)
39TraefikService作用?支持加权轮询(wrr)和流量镜像(mirroring)
40externalTrafficPolicy Cluster vs Local?Cluster丢源IP但均衡,Local保留源IP
41Gateway API优势?模块化解耦、多角色权限、原生L4+L7
42Flannel 三种工作模式?vxlan/host-gw/directrouting
43Flannel 同节点Pod通信?veth pair + cni0网桥桥接
44Flannel 跨节点Pod通信?flannel.1 VXLAN封装
45Flannel 每节点Pod上限?/24子网 = 254个Pod
46Calico vs Flannel?Calico支持网络策略+BGP无封装
47Calico VXLANCrossSubnet?同子网BGP,跨子网VXLAN
48Prometheus Operator CRD?Prometheus/Alertmanager/ServiceMonitor/PodMonitor/PrometheusRule
49ServiceMonitor作用?声明式定义如何监控K8s Service
50Sidecar vs DaemonSet日志采集?Sidecar每Pod一个agent;DaemonSet每节点一个
51NetworkPolicy是什么?K8s原生L3/L4防火墙,白名单机制
52NetworkPolicy三种匹配?ipBlock/namespaceSelector/podSelector
53GlobalNetworkPolicy vs NetworkPolicy?GNP全集群+支持Deny,NP仅当前NS
54Taints三种效果?NoSchedule/PreferNoSchedule/NoExecute
55nodeSelector vs nodeAffinity?nodeSelector精确匹配,nodeAffinity支持表达式
56podAffinity使用场景?集中部署(跟着同类走)
57podAntiAffinity使用场景?分散部署(远离同类,高可用)
58cordon vs drain?cordon只阻止新Pod,drain=cordon+逐出
59LimitRange vs ResourceQuota?LR限制单个Pod,RQ限制NS总量
60Istio sidecar vs ambient?sidecar每Pod注入envoy,ambient节点级零侵入
61VirtualService A/B测试?match header → route 不同destination
62单Master升多Master步骤?upload-certs→token→reset→join–control-plane
63证书x509错误原因?证书SAN不含VIP新IP
64keepalived作用?VRRP协议实现VIP高可用
65生产高可用Master数?推荐3个Master + 3个etcd
66MetalLB作用?私有集群实现LoadBalancer
67ExternalName特点?无ClusterIP,CNAME转发
68ep vs EndpointSlice?ep单对象全量,EndpointSlice分片增量
69探针四种检查机制?exec/httpGet/tcpSocket/grpc
70postStart vs preStop?postStart启动后,preStop停止前
71RBAC两种绑定?RoleBinding(同NS)/ClusterRoleBinding(跨NS)
72kubeconfig加载优先级?–kubeconfig > KUBECONFIG > ~/.kube/config
73X.509证书CN字段?CN=用户名,O=组名
74金丝雀发布核心?Service selector只选apps不选version
75蓝绿部署核心?修改SVC selector切换流量
76灰度vs蓝绿vs A/B?灰度渐进替换、蓝绿两套环境、A/B用户级
77传统业务上K8s三步?Linux部署→Docker化→K8s部署
78Dashboard版本对应?K8s 1.23用Dashboard 2.5.1
79metrics-server作用?为kubectl top和HPA提供数据
80VPA重启Pod?Auto模式通常需要重启
81STS vs Operator?Operator=STS+CRD,生产推荐
82VolumeClaimTemplate?为每个STS Pod创建独立PVC
83STS有序部署?默认0→N创建,N→0删除
84Parallel管理策略?同时创建/删除所有Pod
85RBD vs CephFS?RBD单节点独占(RWO),CephFS多节点共享(RWX)
86默认SC限制?集群只能有一个默认SC
87PVC绑定规则?选择满足accessModes且capacity>=requests的最小PV
88回收策略Retain?删除PVC后PV保留,需手动回收
89回收策略Delete?删除PVC时自动删除PV及数据
90initContainer特点?顺序执行,全部成功后才启动业务容器
91subPath作用?挂载单个文件,不覆盖整个目录
92hostNetwork必配?dnsPolicy:ClusterFirstWithHostNet
93hostPort本质?iptables DNAT规则
94port-forward场景?临时调试测试
95IngressRouteTCP匹配?HostSNI(*)
96Traefik部署方式?Helm安装(推荐)
97流量镜像场景?压测、问题复现、新版本验证
98Gateway API灰度?HTTPRoute backendRefs设置weight
99Flannel故障排查?describe看Events,检查CNI插件
100生产CNI选择?小规模Flannel,中规模Calico,大规模Cilium
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇