真题解析

题目

Context

最佳实践是将容器设计为无状态和不可变的。

Task

检查在 namespace development 中运行的 Pod,并删除任何非无状态非不可变的 Pod。

使用以下对无状态和不可变的严格解释:

  • 能够在容器内存储数据的 Pod 必须被视为非无状态的。

您不必担心数据是否实际上已经存储在容器中

  • 被配置为任何形式的特权的 Pod 必须被视为可能是非无状态无不可变的。

解析

查看 Pod

kubectl get pod -n development
NAME       READY   STATUS    RESTARTS   AGE
dev-pod    1/1     Running   0          15s
dev-pod1   1/1     Running   0          12m
dev-pod2   1/1     Running   0          12m

搜索 yaml

# 根据 Pod 结果,过滤 privileged,看是否为 true
kubectl get pod dev-pod -n development -o yaml | grep 'privileged'

kubectl get pod dev-pod1 -n development -o yaml | grep 'privileged'

kubectl get pod dev-pod2 -n development -o yaml | grep 'privileged'

# 若为 true 则删除
kubectl delete pod dev-pod1 -n development
kubectl delete pod dev-pod2 -n development
# 查看剩余 Pod 的 yaml,过滤 volume
kubectl get pod dev-pod -n development -o yaml > dev-pod.yaml

# 搜索 volume,看是否为数据卷相关类型
/volume\c

若有数据卷相关类型,则需要删除相关 Pod
kubectl delete pod dev-pod -n development

Last updated