1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| 【场景】从零搭建一个完整的博客平台,包括部署、配置、监控、安全。
【操作要求】(总分 100 分)
Part A: 基础设施(20 分) 1. 创建命名空间 blog-platform 2. 配置 ResourceQuota: - CPU 请求 4 核,内存 8Gi - 最多 20 个 Pod 3. 配置 LimitRange:默认 requests cpu=100m mem=128Mi
Part B: 应用部署(30 分) 4. 数据库层: - StatefulSet blog-db(2 副本,mysql:8.0) - Headless Service blog-db-svc - volumeClaimTemplates: 2Gi - Secret 注入 root 密码
5. 缓存层: - Deployment blog-cache(2 副本,redis:7-alpine) - ClusterIP Service cache-svc
6. 应用层: - Deployment blog-app(3 副本,nginx:alpine) - ClusterIP Service app-svc - 通过 ConfigMap 注入:DB_HOST=blog-db-svc, CACHE_HOST=cache-svc - 通过 Secret 注入:DB_PASSWORD
7. 入口层: - Ingress 规则:blog.example.com → app-svc:80
Part C: 安全加固(20 分) 8. 创建 NetworkPolicy: a. blog-app → blog-db:3306 b. blog-app → blog-cache:6379 c. 拒绝其他 Pod 访问数据库和缓存 9. SecurityContext: - runAsNonRoot, drop ALL cap, readOnlyRootFilesystem=false
Part D: 运维管理(20 分) 10. 配置 HPA:blog-app CPU 60%, min 2, max 8 11. 创建 CronJob db-backup: - 每天凌晨 2 点执行 - 命令:echo "db backup at $(date)" 12. 创建 DaemonSet log-shipper: - 每节点一个,采集日志
Part E: 验证与文档(10 分) 13. 验证所有组件正常运行 14. 写出运维手册(排查 Pod 崩溃的步骤)
【验证清单】 □ 所有 Pod Running □ Ingress 可访问 □ NetworkPolicy 隔离生效 □ HPA 生效 □ CronJob 配置正确 □ DaemonSet 每节点一个 Pod
|