02 第2周D8 Kubernetes
D8 作业:只读排查一个服务状态
D8 作业:只读排查一个服务状态
目标
- 验证:会用 kubectl 只读命令看集群与服务,能读懂部署状态,守住"只看不改"红线。
场景
- 有 kubectl 访问权限的开发/测试环境;若不能访问集群,用讲师指定的一次性测试环境或 k8s 官方交互教程替代。
- 全程只读命令。
任务
任务 1:看集群全貌(只读)
kuse prod # 或讲师指定的环境
kubectl get nodes
kubectl get pods -A | head -30
kubectl get svc -A | head -30
kubectl top nodes # 资源使用(如权限不足则跳过)- 记录:节点有几个、哪些 Pod 状态不是 Running(如 CrashLoopBackOff/Pending)、有没有异常。
任务 2:深挖一个服务
- 挑一个部署(如
kubectl get deploy -A里看到的),做:
kubectl get pods -n <ns> -l app=<你选的> # 或按 deploy 对应 label
kubectl describe pod <pod名> -n <ns>
kubectl logs --tail=50 <pod名> -n <ns>- 记录:Pod 状态、最近事件、日志最后几行说明了什么。
任务 3:答题(书面)
Deployment、Service、Ingress三者的分工是什么?- 看到一个 Pod 是
CrashLoopBackOff,正确做法是?(选项参考:删掉重来 / 看 logs 与 describe 找根因 / 直接改镜像) - 下列命令哪些是新人不允许执行的?
kubectl get pods、kubectl delete pod、kubectl logs、kubectl apply -f、kubectl describe
验收标准(讲师核验用)
- 任务 1:能说出集群节点数、异常 Pod 及原因猜测
- 任务 2:describe 事件与日志能说明这个服务当前状态
- 任务 3:三题作答正确(Deployment 管副本、Service 管入口、Ingress 管域名;CrashLoopBackOff 查日志;delete/apply 为禁止项)
提交方式
- 结果放
docs/training/学员/<姓名>/D8/,按 D6 流程提交 PR,中文提交信息,如:D8 作业:kubectl只读排查(姓名)。
参考
- 课程.md 第 3、4、5 节
- 学习网站.md → D8 分组