模拟题目:

设置配置环境:

[candidate@node-1] $ kubectl config use-context k8s

Task

在名为 honeybee-deployment 的 Deployment 和 namespace gorilla 中的一个 Pod 正在记录错误

  1. 查看日志以识别错误消息 找出错误,包括 User "system:serviceaccount:gorilla:default "can not list resource "serviceaccounts "[…] in the namespace "gorilla"
  2. 更新 Deployment honeybee-deployment 以解决 Pod 日志中的错误。 您可以在 /ckad/prompt-escargot/honeybee-deployment.yaml 中找到 honeybee-deployment 的 清单文件

参考:

https://kubernetes.io/zh-cn/docs/reference/access-authn-authz/rbac/

解答:

切换环境

kubectl config use-context k8s

查看错误日志

kubectl -n gorilla get pod
kubectl -n gorilla logs honeybee-deployment-bdfd994c-chbbl

file 考试时,无论是不能 list pods ,还是不能 list deployments ,或者不能 list serviceaccounts ,做法都一样。

查看deployment 的sa

kubectl -n gorilla describe deployments.apps honeybee-deployment 

file

查看gorilla下的role,rolebinding,sa 详细信息

 kubectl -n gorilla describe role,rolebinding,sa

file

可以看到, gorilla-role 具有 get list 权限, 对应的sa为 gorilla-sa,所以修改sa为 gorilla-sa

kubectl -n gorilla set serviceaccount deployments honeybee-deployment gorilla-sa

查看deployment 是否修改了sa

kubectl -n gorilla describe deployments.apps honeybee-deployment

file

检查并查看pod日志

kubectl -n gorilla get pod
kubectl -n gorilla logs honeybee-deployment-d8b9685f9-bhh6s

file