在Kubernetes(k8s)中如何授权Pod内可以访问指定的ConfigMap

在一个Kubernetes集群中,有时候我们希望授权特定的Pod可以直接访问某个ConfigMap,而无需将这个ConfigMap挂载到Pod中。本文将介绍如何通过添加Role和RoleBinding来实现这一目标。

通过创建Role和RoleBinding,我们可以精确地控制Pod对ConfigMap的访问权限,从而提高系统的安全性和灵活性。

Kubernetes

解决方案

步骤1:创建Role配置文件

首先,我们需要创建一个Role配置文件,用于定义允许访问ConfigMap的权限。创建一个名为`configmap-reader-role.yaml`的文件,并将以下内容添加到文件中:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: production
  name: configmap-reader
rules:
- apiGroups: [""]
  resourceNames:
    - appsettings.shared.json
  resources:
    - configmaps
  verbs:
    - get

在上述配置中,我们定义了一个名为`configmap-reader`的Role,它允许在`production`命名空间中的Pod获取名为`appsettings.shared.json`的ConfigMap。

步骤2:添加Role到集群中

使用以下命令将上一步中创建的Role添加到集群中:

kubectl apply -f configmap-reader-role.yaml

这样,Role就会被创建并生效。

步骤3:创建RoleBinding配置文件

接下来,我们需要创建一个RoleBinding配置文件,用于将之前创建的Role绑定到特定的ServiceAccount上。创建一个名为`configmap-reader-rolebinding.yaml`的文件,并添加以下内容:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-configmap
  namespace: production
subjects:
- kind: ServiceAccount
  name: default
roleRef:
  kind: Role 
  name: configmap-reader
  apiGroup: rbac.authorization.k8s.io

在上述配置中,我们定义了一个名为`read-configmap`的RoleBinding,将之前创建的Role(`configmap-reader`)绑定到`production`命名空间下的默认ServiceAccount。

步骤4:添加RoleBinding到集群中

使用以下命令将上一步中创建的RoleBinding添加到集群中:

kubectl apply -f configmap-reader-rolebinding.yaml

这样,RoleBinding就会被创建并生效。文章来源地址https://www.toymoban.com/article/683.html

到此这篇关于在Kubernetes(k8s)中如何授权Pod内可以访问指定的ConfigMap的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://www.toymoban.com/article/683.html

如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

    系统发生错误

    系统发生错误

    您可以选择 [ 重试 ] [ 返回 ] 或者 [ 回到首页 ]

    [ 错误信息 ]

    页面错误!请稍后再试~

    Tob