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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| 【场景】模拟职业技能大赛决赛场景:完整项目部署 + 运维 + 安全 + 排错。
【操作要求】(总分 100 分)
Part A: 集群准备(10 分) 1. 检查集群状态:所有节点 Ready 2. 确认 metrics-server 可用 3. 确认 NGINX Ingress Controller 已安装
Part B: 项目部署(40 分) 部署一个"在线商城"微服务系统:
4. 命名空间:online-mall
5. 用户服务(user-svc): - Deployment user-api(3副本,nginx:alpine) - ClusterIP Service user-svc - ConfigMap user-config: DB=mysql, PORT=3306
6. 商品服务(product-svc): - Deployment product-api(2副本,httpd:alpine) - ClusterIP Service product-svc
7. 订单服务(order-svc): - StatefulSet order-db(2副本,redis:7-alpine) - Headless Service order-db-svc - volumeClaimTemplates: 100Mi
8. 网关: - Ingress: mall.example.com - /api/users → user-svc:80 - /api/products → product-svc:80 - / → user-svc:80
9. 前端: - Deployment mall-web(2副本,nginx:alpine)
Part C: 高级配置(25 分) 10. NetworkPolicy: - 默认拒绝所有 ingress - user-api → order-db:6379 - product-api → order-db:6379 - Ingress Controller → user-api:80 - Ingress Controller → product-api:80 - Ingress Controller → mall-web:80 - 所有 Pod → DNS
11. RBAC: - SA mall-admin:对 online-mall 所有资源有全部权限 - SA mall-reader:对 Pod/Deploy/Service 有只读权限
12. HPA: - user-api:CPU 50%, min 2, max 6 - product-api:CPU 60%, min 2, max 4
Part D: 安全加固(15 分) 13. 所有 Deployment 的 SecurityContext: - runAsNonRoot - allowPrivilegeEscalation: false - drop ALL capabilities 14. 所有 Deployment 设置资源限制: - requests: cpu=100m, mem=128Mi - limits: cpu=300m, mem=256Mi
Part E: 故障演练与恢复(10 分) 15. 删除一个 user-api Pod,验证自愈 16. 回滚 product-api 到上一个版本 17. 手动触发 order-db 的缩容和扩容
【验证清单】 □ 所有 5 个微服务 Running □ Ingress 路由正确 □ NetworkPolicy 隔离生效 □ RBAC 权限正确 □ HPA 生效 □ SecurityContext 加固
|