admin管理员组

文章数量:1648395

题目:ServiceAccount

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。

参考

https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/configure-service-account/#使用默认的服务账户访问-api-服务器

解答

1、切换集群

kubectl config use-context KSCH00301

2、创建SA

创建qa-sa.yaml文件

vi qa-sa.yaml

编辑qa-sa.yaml文件 

apiVersion: v1
kind: ServiceAccount
metadata:
  name: backend-sa  #修改为 对应的name
  namespace: qa     #namespace名称
automountServiceAccountToken: false  #false为不自动挂载secret

创建ServiceAccount

kubectl -f qa-sa.yaml create
kubectl -n qa get sa

3、创建pod 

使用该ServiceAccount创建pod

vi /cks/sa/pod1.yaml
……
metadata:
  name: backend
  namespace: qa #注意命名空间是否对
spec:
  serviceAccountName: backend-sa # 没有则添加一行,有则修改这一行为刚才创建的ServiceAccount(考试时,默认已有这一行,需要修改。)
containers:
……

执行创建

kubectl -f create /cks/sa/pod1.yaml

 检查一下

kubectl get sa -n qa

 

4、删除未使用的SA

查看所有 SA

kubectl get sa -n qa

过滤已经在用的 SA

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

删除不用的sa

kubectl -n qa delete sa test01

本文标签: 考题答案K8sServiceAccountCKS