k8s namespace权限问题无法读取configmap

报错显示系统服务账户在mycomp-services-process命名空间下无权访问pods资源。解决方案是通过clusterrolebinding为serviceaccount default赋予必要的权限,创建允许列出服务的角色,并参考相关教程进行配置。
摘要由CSDN通过智能技术生成

报错信息:

Message: Forbidden!Configured service account doesn't have access. Service account may have been revoked. User "system:serviceaccount:mycomp-services-process:default" cannot get resource “pods” in API group "" in the namespace "sscp-sit"

报错截图:

解决方法:

在第一个错误中,问题是默认命名空间中的serviceaccount default无法获取服务,因为它无法访问list / get服务。 因此,您需要做的是使用clusterrolebinding为该用户分配角色。

参考:https://www.e-learn.cn/content/wangluowenzhang/504150

遵循一组最低权限,您可以先创建一个可以访问列表服务的角色:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: 
在Kubernetes (k8s) 中,ConfigMap是一种持久化的键值存储,用于管理应用的配置。如果你想更改已经挂载到Pod内的ConfigMap配置文件的权限为读写,你需要通过以下几个步骤操作: 1. 首先,确认你的Pod已经正确地从ConfigMap中挂载了配置文件。通常会在Pod的定义文件(如`Deployment`, `StatefulSet`或`PodSpec`)中的`volumeMounts`部分指定。 2. 登录到运行Pod所在的节点,可以使用kubectl命令行工具,或者通过云提供商提供的控制台访问容器内部。例如: ``` $ kubectl exec -it <pod-name> /bin/bash ``` 3. 在容器内,你可以使用Linux的`chmod`命令改变文件权限。假设配置文件位于`/path/to/config-file`,你将需要给予所有用户读写权限: ``` chmod ugo+rwx /path/to/config-file ``` 其中,`u`代表用户,`g`代表组,`o`代表其他,`+rwx`分别表示读、写和执行权限。 4. 保存并退出容器。如果你是在容器内部直接改权限,这一步骤会立刻生效;如果需要更新整个Pod,你可以提交一个新的Pod配置并重启Pod,新的权限设置才会生效。 5. 最后,检查权限是否已更改,可以再次查看文件的详细权限信息: ``` ls -l /path/to/config-file ``` 注意:直接在容器里修改权限可能会带来安全风险,因为它允许所有用户对配置文件有写权限。通常更推荐在创建ConfigMap时就设定好合适的权限,并在应用层面处理配置文件的读写。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值