K8S RBAC 命令行创建

创建 role

创建名称为 “pod-reader” 的 Role 对象,允许用户对 Pods 执行 get、watch 和 list 操作:

kubectl create role pod-reader --verb=get --verb=list --verb=watch --resource=pods

创建名称为 “pod-reader” 的 Role 对象并指定 resourceNames:

kubectl create role pod-reader --verb=get --resource=pods --resource-name=readablepod --resource-name=anotherpod

创建名为 “foo” 的 Role 对象并指定 apiGroups:

kubectl create role foo --verb=get,list,watch --resource=replicasets.apps

创建名为 “foo” 的 Role 对象并指定子资源权限:

kubectl create role foo --verb=get,list,watch --resource=pods,pods/status

创建名为 “my-component-lease-holder” 的 Role 对象,使其具有对特定名称的资源执行 get/update 的权限:

kubectl create role my-component-lease-holder --verb=get,list,watch,update --resource=lease --resource-name=my-component

创建 clusterrole

创建名称为 “pod-reader” 的 ClusterRole 对象,允许用户对 Pods 对象执行 get、 watch 和 list 操作:

kubectl create clusterrole pod-reader --verb=get,list,watch --resource=pods

创建名为 “pod-reader” 的 ClusterRole 对象并指定 resourceNames:

kubectl create clusterrole pod-reader --verb=get --resource=pods --resource-name=readablepod --resource-name=anotherpod

创建名为 “foo” 的 ClusterRole 对象并指定 apiGroups:

kubectl create clusterrole foo --verb=get,list,watch --resource=replicasets.apps

创建名为 “foo” 的 ClusterRole 对象并指定子资源:

kubectl create clusterrole foo --verb=get,list,watch --resource=pods,pods/status

创建名为 “foo” 的 ClusterRole 对象并指定 nonResourceURL:

kubectl create clusterrole "foo" --verb=get --non-resource-url=/logs/*

创建名为 “monitoring” 的 ClusterRole 对象并指定 aggregationRule:

kubectl create clusterrole monitoring --aggregation-rule="rbac.example.com/aggregate-to-monitoring=true"

创建 rolebinding

在名字空间 “acme” 中,将名为 admin 的 ClusterRole 中的权限授予名称 “bob” 的用户:

kubectl create rolebinding bob-admin-binding --clusterrole=admin --user=bob --namespace=acme

在名字空间 “acme” 中,将名为 view 的 ClusterRole 中的权限授予名字空间 “acme” 中名为 myapp 的服务账户:

kubectl create rolebinding myapp-view-binding --clusterrole=view --serviceaccount=acme:myapp --namespace=acme

在名字空间 “acme” 中,将名为 view 的 ClusterRole 对象中的权限授予名字空间 “myappnamespace” 中名称为 myapp 的服务账户:

kubectl create rolebinding myappnamespace-myapp-view-binding --clusterrole=view --serviceaccount=myappnamespace:myapp --namespace=acme

创建 clusterrolebinding

在整个集群范围,将名为 cluster-admin 的 ClusterRole 中定义的权限授予名为 “root” 用户:

kubectl create clusterrolebinding root-cluster-admin-binding --clusterrole=cluster-admin --user=root

在整个集群范围内,将名为 system:node-proxier 的 ClusterRole 的权限授予名为 “system:kube-proxy” 的用户:

kubectl create clusterrolebinding kube-proxy-binding --clusterrole=system:node-proxier --user=system:kube-proxy

在整个集群范围内,将名为 view 的 ClusterRole 中定义的权限授予 “acme” 名字空间中名为 “myapp” 的服务账户:

kubectl create clusterrolebinding myapp-view-binding --clusterrole=view --serviceaccount=acme:myapp
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Kubernetes 集群中创建管理员用户的方法有多种,其中一种是通过 kubeadm 工具来创建。使用 kubeadm 创建的用户默认拥有 cluster-admin 权限。 1. 创建管理员用户的证书和私钥: ``` openssl genpkey -out admin-key.pem -aes256 -algorithm rsa -pkeyopt rsa_keygen_bits:4096 openssl req -new -key admin-key.pem -out admin.csr -subj "/CN=k8s-admin/O=system:masters" openssl x509 -req -in admin.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out admin.crt -days 365 ``` 2. 创建 kubeconfig 文件: ``` kubectl config set-cluster k8s-cluster --server=https://<k8s-apiserver-ip>:6443 --certificate-authority=/etc/kubernetes/pki/ca.crt kubectl config set-credentials k8s-admin --client-certificate=admin.crt --client-key=admin-key.pem kubectl config set-context k8s-admin-context --cluster=k8s-cluster --user=k8s-admin kubectl config use-context k8s-admin-context ``` 3. 给管理员用户赋予 cluster-admin 权限: ``` kubectl create clusterrolebinding k8s-admin-binding --clusterrole=cluster-admin --user=k8s-admin ``` 注意:上述操作中的 k8s-apiserver-ip 请替换为您集群中的实际 IP 地址。 ### 回答2: 在KubernetesK8s)中创建管理员用户的过程包括以下几个步骤: 1. 创建一个管理员用户的凭据:可以使用openssl生成一个管理员用户的证书和私钥文件。这可以通过运行以下命令来完成: ``` openssl genrsa -out admin.key 2048 ``` ``` openssl req -new -key admin.key -out admin.csr -subj "/CN=admin/O=system:masters" ``` ``` openssl x509 -req -in admin.csr -CA /path/to/ca.crt -CAkey /path/to/ca.key -CAcreateserial -out admin.crt -days 365 ``` 2. 创建管理员用户的配置文件:使用kubectl创建一个配置文件,该文件包含管理员用户的凭据和集群的信息。可以运行以下命令: ``` kubectl config set-credentials admin --client-certificate=admin.crt --client-key=admin.key ``` ``` kubectl config set-context admin-context --cluster=<cluster-name> --user=admin ``` ``` kubectl config use-context admin-context ``` 3. 授权管理员用户:将创建的管理员用户赋予集群的管理员权限,使其可以执行特权操作。可以通过创建一个ClusterRoleBinding来实现授权,运行以下命令: ``` kubectl create clusterrolebinding admin-binding --clusterrole=cluster-admin --user=admin ``` 通过完成以上步骤,管理员用户将被成功创建并授权。可以使用管理员用户的凭据来执行Kubernetes集群的管理操作,例如创建、删除和调整资源,以及执行其他需要特权的操作。 ### 回答3: 在Kubernetes创建管理员用户可以通过以下步骤实现: 1. 生成管理员用户的证书和秘钥。首先,创建一个包含管理员用户信息的策略文件(policy file),例如`admin-policy.yml`。其中包含了该管理员具有的权限,如创建、修改和删除资源的权限等。然后使用该策略文件生成管理员用户的证书和秘钥。 2. 创建管理员用户的参数配置文件(kubeconfig)。该文件指定了管理员用户需要连接的Kubernetes集群的相关信息,如API服务器的地址、证书文件的位置等。可以使用`kubectl`命令行工具来生成配置文件,例如执行以下命令: ``` $ kubectl config set-cluster my-cluster --server=https://api-server:6443 --certificate-authority=/path/to/cert.crt $ kubectl config set-credentials admin --certificate-authority=/path/to/cert.crt --client-key=/path/to/key.key --client-certificate=/path/to/cert.crt $ kubectl config set-context my-cluster --cluster=my-cluster --user=admin ``` 3. 配置管理员用户的RBAC角色和角色绑定。在Kubernetes中使用RBAC(Role-Based Access Control)来管理用户的权限。可以创建一个RBAC角色,定义管理员用户具有的权限,并将该角色绑定到管理员用户帐号上。 4. 配置API服务器的访问控制。在Kubernetes的API服务器配置文件中,将管理员用户的证书和秘钥配置为可信证书,从而允许该用户进行管理员操作。 5. 将管理员用户的kubeconfig文件与管理员用户共享,并配置相应的环境变量。通过将管理员用户的kubeconfig文件发送给管理员,管理员可以使用该文件来连接Kubernetes集群并执行相应的管理操作。 通过以上步骤,您就可以成功地在Kubernetes创建管理员用户,并赋予该用户相应的权限,使其能够有效地管理Kubernetes集群。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值