05故障排除
考试大纲
故障排除:30%
-
评估集群和节点日志
-
了解如何监视应用程序
-
管理容器标准输出和标准错误日志
-
解决应用程序故障
-
对群集组件故障进行故障排除
-
排除网络故障
日志
题目描述:
- 配置环境 kubectl config use-context k8s
- 监控 pod foo 的日志并:
- 提取与错误 unable-to-access-website 相对应的日志行
- 将这些日志行写入到/opt/KUTR00101/foo
官方文档:
参考解答:
Sidecar 代理
题目描述:
-
设置配置环境 kubectl config use-context k8s
-
在不更改其现有容器的情况下,需要将一个现有的 pod 集成到 kubernetes 的内置日志记录 体系结构中(例如 kubectl logs)。添加 streamimg sidecar 容器是实现此要求的一种好方法。
-
将一个 busybox sidecar 容器添加到现有的 pod legacy-app。新的 sidecar 容器必须运行一下命令:
/bin/sh -c tail -n+1 -f /var/log/legacy-app.log
-
使用名为 logs 的 volume mount 来让文件/var/log/legacy-app.log 可用于 sidecar 容器。
-
不要更改现有容器。不要修改日志文件的路径,两个容器必须通过/var/log/legacy-app.log 来访问该文件
官方文档:
- https://kubernetes.io/docs/concepts/cluster-administration/logging/
- https://kubernetes.io/zh-cn/docs/concepts/cluster-administration/logging/
参考解答:
- 复制 legacy-app pod 的配置文件
- 修改 legacy-app 的配置
- 添加 volumes
- 添加 sidecar container
- 现有 container 添加 volumeMounts
- 删除原 legacy-app pod
- 创建新的 legacy-app pod
Pod 度量指标
题目描述:
-
设置配置环境 kubectl config use-context k8s
-
通过 pod label name=cpu-user,找到运行时占用大量 CPU 的 pod,并将占用 CPU 最高的 pod 名称写入到文件/opt/KUTR000401/KUTR00401.txt(已存在)
官方文档:
参考解答:
kubectl top pod -l name=cpu-user
# 将 CPU 占用最高的 pod 名称写入文件
echo $pod_name > /opt/KUTR000401/KUTR00401.txt
节点故障排查
题目描述:
-
设置配置环境 kubectl config use-context ek8s
-
名为wk8s-node-0(练习环境使用 vms26.rhce.cc)的 kubernetes worker node 处于 Not Ready 状态。调查发生这种情况的原因,并采取相应措施将 node 恢复为 Ready 状态,确保所做的任何更改永久生效。
-
可使用以下命令通过ssh连接到故障node:
-
ssh wk8s-node-0 (vms26.rhce.cc)
-
可使用以下命令在该node上获取更高权限:
- sudo -i
官方文档:
参考解答: