一文教你快速创建一个 Kubernetes Service Account 并绑定 Cluster Role
2023-10-28 00:22:49
在 Kubernetes 集群中,Service Account 是 Pod 内部进程与 API 服务器通信时用于身份认证的账户。当您创建一个 Pod 时,您可以为该 Pod 指定一个 Service Account,该 Service Account 将自动为 Pod 中的进程生成一个令牌,以便它们可以访问 API 服务器。
Cluster Role 是 Kubernetes 中的一种授权机制,它允许您将一组权限授予一组用户或 Service Account。当您将 Service Account 绑定到 Cluster Role 时,该 Service Account 将获得该 Cluster Role 中定义的所有权限。
在本教程中,您将学习如何:
- 创建一个 Service Account
- 创建一个 Cluster Role
- 将 Service Account 绑定到 Cluster Role
创建一个 Service Account
要创建一个 Service Account,您可以使用以下命令:
kubectl create serviceaccount <service-account-name>
例如,要创建一个名为 "my-service-account" 的 Service Account,您可以使用以下命令:
kubectl create serviceaccount my-service-account
创建一个 Cluster Role
要创建一个 Cluster Role,您可以使用以下命令:
kubectl create clusterrole <cluster-role-name> --verb=<verb> --resource=<resource>
例如,要创建一个名为 "my-cluster-role" 的 Cluster Role,该 Cluster Role 允许 Service Account 读写 Pod,您可以使用以下命令:
kubectl create clusterrole my-cluster-role --verb=get,list,watch,create,update,delete --resource=pods
将 Service Account 绑定到 Cluster Role
要将 Service Account 绑定到 Cluster Role,您可以使用以下命令:
kubectl create rolebinding <rolebinding-name> --clusterrole=<cluster-role-name> --serviceaccount=<namespace>:<service-account-name>
例如,要将名为 "my-service-account" 的 Service Account 绑定到名为 "my-cluster-role" 的 Cluster Role,您可以使用以下命令:
kubectl create rolebinding my-rolebinding --clusterrole=my-cluster-role --serviceaccount=default:my-service-account
现在,您已经成功地创建了一个 Service Account 并将其绑定到了 Cluster Role。您现在可以将该 Service Account 用于 Pod 中的进程,以便它们可以访问 API 服务器。