CKS 考试题整理 (08)-Pod指定ServiceAccount

发布时间 2023-06-16 15:57:09作者: 打工人,打工魂

Context

您组织的安全策略包括:

  • ServiceAccount 不得自动挂载 API 凭据
  • ServiceAccount 名称必须以 "-sa" 结尾

 

清单文件 /cks/sa/pod1.yaml 中指定的 Pod 由于 ServiceAccount 指定错误而无法调度。

请完成以下项目:

Task

  1. 在现有 namespace qa 中创建一个名为 kackend-sa 的新 ServiceAccount,

确保此 ServiceAccount 不自动挂载 API 凭据。

  1. 使用 /cks/sa/pod1.yaml 中的清单文件来创建一个Pod。
  2. 最后,清理 namespace qa 中任何未使用的 ServiceAccount。

 

参考资料

https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/configure-service-account/

答题

先切换集群

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

  1. 创建 Pod 使用该 ServiceAccount
vi /cka/sa/pod1.yaml

修改如下内容

metadata:

name: backend

namespace: qa # 注意命名空间是否对

spec:

serviceAccountName: backend-sa # 没有则添加一行,有则修改(考试时有,修改即可)

containers:

......
kubectl apply -f /cka/sa/pod1.yaml

kubectl get pod -n qa

  1. 删除没有使用的 ServiceAccount
查看qa命名空间下的所有sa

kubect get sa -n qa


查看qa命名空间下已经在用的sa

kubectl get pod -n qa -o yaml | grep -i serviceAccountName


删除qa命名空间下不用的sa

kubect delete sa test01 -n qa