Helm 3 的 Kubernetes 权限安装到特定命名空间
Kubernetes permissions for Helm 3 install to specific namespace
我正在尝试设置一个用户,该用户将有权使用 Helm 3 安装到特定命名空间。 (对于我的 CI/CD 系统。)
例如,如果用户尝试 运行 一个 helm upgrade --install
和 --namespace=dev
那么它工作得很好。但是如果他们尝试 --namespace=test
它将失败。
但我发现自己被这些选择淹没了。创建角色时,您必须选择 apiGroups
、resources
和 verbs
。我看到一个名为 deployments
的资源,但我读到还需要秘密访问。我做了一些谷歌搜索,但大多数点击都是关于配置 Helm 2(带舵柄)的。
使用 Helm 3 安装所需的最低 Kubernetes 权限是多少?
在 Kubernetes 中,最佳做法是确保您的应用程序在您指定的范围内运行,这就是为什么您必须将角色授予用户或特定于应用程序的服务帐户。详细了解服务帐户权限 in the official Kubernetes docs。
要限制用户对特定命名空间的访问,您可以使用 edit
或 admin
角色。如果您的图表创建角色和角色绑定或与之交互,您将需要使用 admin
ClusterRole。
此外,您还可以创建具有 cluster-admin
访问权限的 RoleBinding。授予用户 cluster-admin
在命名空间范围内的访问权限可以完全控制命名空间中的每个资源,包括命名空间本身。
对于此示例,我们将创建一个具有 edit
角色的用户。首先,创建命名空间:
$ kubectl create namespace your-namespace
现在,在该命名空间中创建 RoleBinding,授予用户 edit
角色。
$ kubectl create rolebinding steve-edit
--clusterrole edit \
--user steve \
--namespace your-namespace
此命令将创建角色绑定 steve-edit
。此角色绑定将 clusterrole edit
中定义的权限授予命名空间 your-namespace
的用户 steve
Edit
是默认的 clusterrole,它允许 read/write 访问命名空间中的大多数对象。它不允许查看或修改角色或角色绑定。
了解集群角色:rbac-clusteroles, kubernetes-authorization。
您还可以在集群范围内授予特定用户 read/write 访问权限,这样您就可以在任何命名空间中安装 helm。您必须授予用户 admin
或 cluster-admin
访问权限。
在此处阅读更多内容:cluster-scope-rbac-helm。
我正在尝试设置一个用户,该用户将有权使用 Helm 3 安装到特定命名空间。 (对于我的 CI/CD 系统。)
例如,如果用户尝试 运行 一个 helm upgrade --install
和 --namespace=dev
那么它工作得很好。但是如果他们尝试 --namespace=test
它将失败。
但我发现自己被这些选择淹没了。创建角色时,您必须选择 apiGroups
、resources
和 verbs
。我看到一个名为 deployments
的资源,但我读到还需要秘密访问。我做了一些谷歌搜索,但大多数点击都是关于配置 Helm 2(带舵柄)的。
使用 Helm 3 安装所需的最低 Kubernetes 权限是多少?
在 Kubernetes 中,最佳做法是确保您的应用程序在您指定的范围内运行,这就是为什么您必须将角色授予用户或特定于应用程序的服务帐户。详细了解服务帐户权限 in the official Kubernetes docs。
要限制用户对特定命名空间的访问,您可以使用 edit
或 admin
角色。如果您的图表创建角色和角色绑定或与之交互,您将需要使用 admin
ClusterRole。
此外,您还可以创建具有 cluster-admin
访问权限的 RoleBinding。授予用户 cluster-admin
在命名空间范围内的访问权限可以完全控制命名空间中的每个资源,包括命名空间本身。
对于此示例,我们将创建一个具有 edit
角色的用户。首先,创建命名空间:
$ kubectl create namespace your-namespace
现在,在该命名空间中创建 RoleBinding,授予用户 edit
角色。
$ kubectl create rolebinding steve-edit
--clusterrole edit \
--user steve \
--namespace your-namespace
此命令将创建角色绑定 steve-edit
。此角色绑定将 clusterrole edit
中定义的权限授予命名空间 your-namespace
steve
Edit
是默认的 clusterrole,它允许 read/write 访问命名空间中的大多数对象。它不允许查看或修改角色或角色绑定。
了解集群角色:rbac-clusteroles, kubernetes-authorization。
您还可以在集群范围内授予特定用户 read/write 访问权限,这样您就可以在任何命名空间中安装 helm。您必须授予用户 admin
或 cluster-admin
访问权限。
在此处阅读更多内容:cluster-scope-rbac-helm。