[CKS] K8S ServiceAccount Set Up

最近准备花一周的时间准备CKS考试,在准备考试中发现有一个题目关于Rolebinding的题目。

​ 专栏其他文章:

Question 1

The buffy Pod in the sunnydale namespace has a buffy-sa ServiceAccount with permissions the Pod doesn't need. Modify the attached Role so that it only has the ability to list pods.

Then, create a new Role called watch-services-secrets that grants permission to watch, services, and secrets.

Bind the Role to the ServiceAccount with a RoleBinding called buffy-sa-watch-rb.

这段话的意思是:在 Sunnydale 命名空间中的 buffy Pod 有一个名为 buffy-sa 的 ServiceAccount,该 ServiceAccount 具有 Pod 不需要的权限。修改附加的 Role,使其只能具有列出 Pod 的能力。 然后,创建一个名为 watch-services-secrets 的新 Role,该 Role 授予观看 services 和 secrets 的权限。 使用名为 buffy-sa-watch-rb 的 RoleBinding 将该 Role 绑定到该 ServiceAccount。

Practice

修改 sunnydale下的rolebinding

先查看sunnydale下面的rolebinding然后对rolebinding进行修改

shell 复制代码
# 获取sunnydale下面的rolebinding
kubectl get rolebinding -n sunnydale
# 获取buffy-rb下面的rolebinding的serviceaccount name
kubectl describe rolebinding -n sunnydale buffy-rb

可以看到buffy-rb对应绑定的role是buffy-role

修改buffy-role

修改需要达到一下目的

  • 只能列出pod的能力
shell 复制代码
kubectl edit role buffy-role

修改成以下内容:

创建watch-services-secrets新的role

Tips:如果你不知道怎么创建,可以参照上面我们修改的这个yaml文件进行修改

shell 复制代码
vi watch-services-secrets.yml
shell 复制代码
kubectl create -f watch-services-secrets.yml

好了 现在你就讲role创建好了

Bind the role to a SA

如果你不知道怎么绑定,在考试的时候你可以参考buffy-role是怎么绑定的

创建新的rolebinding

shell 复制代码
kubectl create -f buffy-sa-watch-rb.yml

Question 2

A Pod in the cluster cannot be created properly because its ServiceAccount is misconfigured.

The Pod is meant to live in the bespin namespace. Delete the existing ServiceAccount from this namespace.

Create a new ServiceAccount called lando-sa.

Configure the Pod to use the lando-sa ServiceAccount.

Create the Pod.

这个问题的意思是在集群中的一个 Pod 无法正确创建,因为它的 ServiceAccount 配置有误。

这个 Pod 应该存在于 bespin 命名空间中。首先删除该命名空间下已存在的 ServiceAccount。 创建一个名为 lando-sa 的新的 ServiceAccount。 配置 Pod 使用 lando-sa ServiceAccount。 最后创建 Pod。

查看bespin下面的serviceaccount

shell 复制代码
kubectl get serviceaccount -n bespin

删除查找到的serviceaccount

shell 复制代码
kubectl delete serviceaccount -n bespin lando

创建新的serviceaccount lando-sa

shell 复制代码
kubectl create serviceaccount -n bespin lando-sa

创建pod(pod文件已经存在 你只需要修改serviceAccountName就可以了)

shell 复制代码
kuebctl create -f lando.yml
相关推荐
java_logo9 小时前
Docker 部署 Liquibase:轻松搭建数据库变更管理
数据库·docker·容器·数据库管理·liquibase·轩辕镜像·数据库变更
Android系统攻城狮14 小时前
Linux FFmpeg深度解析之avcodec_default_get_encode_buffer调用流程与实战(二十八)
linux·运维·服务器·ffmpeg·车载音视频·ffmpeg音视频
番茄啊16 小时前
linux 开启xftp连接
linux·运维·服务器
IT利刃出鞘17 小时前
Docker Compose--解决修改配置后不生效的问题
运维·docker·容器
java_logo17 小时前
Docker 部署 CloudBeaver:轻松搭建网页数据库管理平台
数据库·docker·容器·数据库管理·dbeaver·轩辕镜像·cloudbeaver
Julien200417 小时前
管理机密(一)
运维·服务器·开发语言·学习方法
好用斋18 小时前
拾光坞安装网盘聚合LitePan:把Docker命令翻译成图形界面
运维·docker·容器
weirong1 天前
图解 client-go Informer:手写一个 mini-Informer 才敢说懂
kubernetes
AOI小白新手上路1 天前
深度学习算力购置方案分析:本地 RTX 4090 服务器 vs 云端租赁
服务器·人工智能·深度学习
.冰块.1 天前
流量大了自动加 Pod!K8s HPA 扩缩容与 ResourceQuota/LimitRange 资源管控实战
linux·云原生·容器·kubernetes·hpa·quota·limitrange