CKS认证-ServiceAccount

2. ServiceAccount

问题:

**· ServiceAccount 不得自动挂载 API凭据。
· **ServiceAccount 名称必须以"-sa" 结尾
清单文件
/home/candidate/KSCH00301/pod-manifest.yaml 中指定的 Pod 由于 ServiceAccount 指定错误而无法调度。
请完成以下项目:
Task

  1. 在现有 namespace prod 中创建一个名为backend-sa 的新ServiceAccount 确保此ServiceAccount 不自动挂载 API凭据。
  2. 使用/home/candidate/KSCH00301/pod-mahifest.yaml中的清单文件来创建一个 Pod。
  3. 最后,清理 namespace prod 中任何未使用的ServiceAccount。

正确答案

参考链接

  1. 在现有 namespace prod 中创建一个名为backend-sa 的新ServiceAccount 确保此ServiceAccount 不自动挂载 API凭据。
root@hk8s-master01:/home/candidate/KSCH00301# vim 2.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: backend-sa    ##修改名字
  namespace: prod     ##添加名称空间
automountServiceAccountToken: false

##创建yaml文件
root@hk8s-master01:/home/candidate/KSCH00301# kubectl apply -f 2.yaml 

##检查已经创建
root@hk8s-master01:/home/candidate/KSCH00301# kubectl get serviceaccounts -n prod
NAME         SECRETS   AGE
backend-sa   0         4h40m
default      0         419d
web-sa       0         418d
webaccount   0         419d

  1. 使用/home/candidate/KSCH00301/pod-mahifest.yaml中的清单文件来创建一个 Pod。
  1 apiVersion: v1
  2 kind: Pod
  3 metadata:
  4   creationTimestamp: null
  5   labels:
  6     run: backend
  7   name: backend
  8   namespace: prod
  9 spec:
 10   serviceAccountName: backend-sa    ##把上面的serviceaccount名字写上
 11   automountServiceAccountToken: false  #这行也得加上,你之前没加过
 12   containers:
 13   - image: ikubernetes/demoapp:v1.0
 14     name: backend
 15     resources: {}

##创建yaml文件
root@hk8s-master01:/home/candidate/KSCH00301# kubectl apply -f pod-manifests.yaml 

##检查是否绑定搭配serviceaccount
root@hk8s-master01:/home/candidate/KSCH00301# kubectl describe pod -n prod backend | grep -i service
Service Account:  backend-sa

  1. 最后,清理 namespace prod 中任何未使用的ServiceAccount。
##直接查询prod名称空间下的所有pod的yaml文件格式,看看哪个pod引用了serviceaccount,没引用的直接删除就行
root@hk8s-master01:/home/candidate/KSCH00301# kubectl get pod -n prod -oyaml | grep serviceAccount
        {"apiVersion":"v1","kind":"Pod","metadata":{"annotations":{},"creationTimestamp":null,"labels":{"run":"backend"},"name":"backend","namespace":"prod"},"spec":{"containers":[{"image":"ikubernetes/demoapp:v1.0","name":"backend","resources":{}}],"serviceAccountName":"backend-sa"}}
    serviceAccount: backend-sa
    serviceAccountName: backend-sa

##只有backend-sa用了,其他都直接删除就可以
root@hk8s-master01:/home/candidate/KSCH00301# kubectl get serviceaccounts -n prod
NAME         SECRETS   AGE
backend-sa   0         5h1m
default      0         419d
web-sa       0         418d
webaccount   0         419d

##删除serviceaccount
root@hk8s-master01:/home/candidate/KSCH00301# kubectl delete serviceaccounts -n prod default 
serviceaccount "default" deleted
root@hk8s-master01:/home/candidate/KSCH00301# kubectl delete serviceaccounts -n prod web-sa
serviceaccount "web-sa" deleted
root@hk8s-master01:/home/candidate/KSCH00301# kubectl delete serviceaccounts -n prod webaccount 
serviceaccount "webaccount" deleted

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值