DevOps 面试题大全(八·上):云原生 Kubernetes 25 题详解
前言
云原生是构建和运行可扩展应用的方法论,核心包括容器、微服务、服务网格、不可变基础设施。本文整理 50 道云原生面试题。
一、基础概念题(1-15 题)
1. 什么是云原生?
CNCF 定义:利用容器、服务网格、微服务、不可变基础设施、声明式 API 构建弹性应用。
2. 云原生四大支柱
- 容器化 - Docker/Containerd
- 微服务 - 服务拆分
- 服务网格 - Istio/Linkerd
- DevOps - CI/CD 自动化
3. Kubernetes 核心组件
- Control Plane: API Server, etcd, Scheduler, Controller Manager
- Node: Kubelet, Kube-proxy, Container Runtime
- Add-ons: DNS, Dashboard, Network Plugin
4. Pod 概念
K8s 最小调度单元,包含一个或多个容器,共享网络和存储。
5. Controller 类型
- Deployment - 无状态应用
- StatefulSet - 有状态应用
- DaemonSet - 每节点运行
- Job/CronJob - 批处理任务
- ReplicaSet - Pod 副本管理
6. Service 类型
- ClusterIP - 集群内访问(默认)
- NodePort - 节点端口暴露
- LoadBalancer - 云负载均衡
- ExternalName - DNS 别名
7. Ingress 作用
七层负载均衡,HTTP/HTTPS 路由,TLS 终止,基于路径/域名路由。
8. ConfigMap 和 Secret
- ConfigMap - 非敏感配置
- Secret - 敏感数据(base64 编码)
- 使用方式:环境变量、Volume 挂载
9. PV 和 PVC
- PV - 持久化卷(集群资源)
- PVC - 卷声明(命名空间资源)
- StorageClass - 动态供给
10. Helm 包管理
- Chart - 应用包
- Release - 运行实例
- Repository - 仓库
- Values - 配置覆盖
11-15. 更多基础题
| 题号 | 题目 | 要点 |
|---|---|---|
| 11 | Namespace 作用? | 资源隔离,多租户 |
| 12 | Label 和 Selector? | 标签选择,资源分组 |
| 13 | Liveness Probe? | 存活探测,重启容器 |
| 14 | Readiness Probe? | 就绪探测,流量接入 |
| 15 | HPA 原理? | 基于指标自动扩缩容 |
二、进阶实战题(16-25 题)
16. Deployment 配置示例
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:1.21
ports:
- containerPort: 80
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
17. StatefulSet 配置
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mysql
spec:
serviceName: mysql
replicas: 3
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10Gi
18. Service 配置
apiVersion: v1
kind: Service
metadata:
name: web-service
spec:
selector:
app: web
ports:
- port: 80
targetPort: 80
type: LoadBalancer
19. Ingress 配置
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: app.example.com
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: api-service
port:
number: 80
20. Helm Chart 结构
chart/ ├── Chart.yaml # 图表元数据 ├── values.yaml # 默认配置 ├── charts/ # 子图表依赖 ├── templates/ # K8s 资源模板 │ ├── deployment.yaml │ ├── service.yaml │ └── _helpers.tpl └── README.md
21. 网络策略
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-all
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
22. RBAC 权限控制
- Role/ClusterRole - 权限定义
- RoleBinding/ClusterRoleBinding - 权限绑定
- ServiceAccount - 服务账户
23. 资源配额
apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-quota
spec:
hard:
requests.cpu: "10"
requests.memory: 20Gi
limits.cpu: "20"
limits.memory: 40Gi
24. 自动扩缩容
- HPA - 水平 Pod 扩缩容
- VPA - 垂直 Pod 扩缩容
- Cluster Autoscaler - 节点扩缩容
25. 服务网格概念
Istio/Linkerd 提供服务发现、负载均衡、熔断、限流、可观测性等功能。
下篇预告:26-50 题,涵盖高级架构、故障排查、最佳实践等
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。




