0.介绍
以下是使用Kubernetes RBAC(Role-ased Access Control)机制的基本流程。
一、创建个人密钥与证书
openssl genrsa -out myuser.key 2048
openssl req -new -key myuser.key -out myuser.csr -subj "/CN=myuser/O=databases"
二、使用kubernetes CA生成证书
openssl x509 -req -in myuser.csr -CAcreateserial -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -out myuser.crt -days 1000
三、使用kubectl创建集群配置
kubectl --kubeconfig=myuser.config config set-cluster mycluster --server=https://127.0.0.1:6443 --certificate-authority=/etc/kubernetes/pki/ca.crt --embed-certs
四、创建用户
kubectl --kubeconfig=myuser.config config set-credentials myuser_credentials --username myuser --client-certificate ./myuser.crt --client-key ./myuser.key --embed-certs
五、创建Context
kubectl --kubeconfig=myuser.config config set-context myuserctx --cluster mycluster --user myuser --namespace mynamespace
六、设置current context
kubectl --kubeconfig=myuser.config config use-context myuserctx
七、创建命名空间
kubectl create ns mynamespace
八、创建role
kubectl create role myspacemanager --verb=create,list,delete,get --resource pods --namespace=mynamespace
九、创建rolebinding
kubectl create rolebinding myspacemanager_binding --user=myuser --role=myspacemanager --namespace=mynamespace
到这一步结束,使用myuser.config作为kubectl --kubeconfig参数,myuser用户应当只能对mynamespace命名空间中的pod资源执行get、list、create、delete操作。