Context 您组织的安全策略包括:
⚫ ServiceAccount 不得自动挂载 API 凭据
⚫ ServiceAccount 名称必须以“-sa”结尾
清单文件 /cks/sa/pod1.yaml 中指定的 Pod 由于 ServiceAccount 指定错误而无法调度。
请完成以下项目:
Task
1. 在现有 namespace qa 中创建一个名为 backend-sa 的新 ServiceAccount, 确保此 ServiceAccount 不自动挂载 API 凭据。
2. 使用 /cks/sa/pod1.yaml 中的清单文件来创建一个 Pod。
3. 最后,清理 namespace qa 中任何未使用的 ServiceAccount。
参考资料:
答题:
#考试时执行kubectl config use-context KSCH00301切换集群
1、创建 ServiceAccount
vi qa-ns.yaml
根据官网修改如下内容
apiVersion: v1
kind: ServiceAccount
metadata:
name: backend-sa #修改 name
namespace: qa #注意添加 namespace
automountServiceAccountToken: false #修改为 false,表示不自动挂载 secret
kubectl apply -f qa-ns.yaml
kubectl get sa -n qa
2、创建 Pod 使用该 ServiceAccount
vi /cks/sa/pod1.yaml
修改如下内容
……
metadata:
name: backend
namespace: qa #注意命名空间是否对
spec:
serviceAccountName: backend-sa # 没有则添加一行,有则修改这一行为刚才创建的 ServiceAccount(考试时,默认已有这一行,需要修改。)
containers:
……
kubectl apply -f /cks/sa/pod1.yaml
kubectl get pod -n qa
3、删除没有使用的 ServiceAccount
#查看已经在用的 sa
kubectl get pod -n qa -o yaml | grep -i serviceAccountName
#删除不用的 sa
kubectl delete sa test01 -n qa