{ "CN": "usertest", "hosts": [], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "L": "BeiJing", "ST": "BeiJing", "O": "k8s", "OU": "System" } ] }
证书生成 export KUBE_APISERVER="https://192.168.70.186:6443" ./cfssl gencert -ca=ca.crt -ca-key=ca.key -profile=kubernetes /apps/rbac/usertest-csr.json | ./cfssljson -bare usertest 设置集群参数 kubectl config set-cluster kubernetes --certificate-authority=/apps/conf/kubernetes/ssl/ca.crt --embed-certs=true --server=${KUBE_APISERVER} --kubeconfig=usertest.kubeconfig 设置客户端认证参数 kubectl config set-credentials usertest --client-certificate=/apps/rbac/usertest.pem --client-key=/apps/rbac/usertest-key.pem --embed-certs=true --kubeconfig=usertest.kubeconfig 设置上下文参数 kubectl config set-context kubernetes --cluster=kubernetes --user=usertest --namespace=test --kubeconfig=usertest.kubeconfig 设置默认上下文 kubectl config use-context kubernetes --kubeconfig=usertest.kubeconfig mkdir /home/usertest/.kube cp -f usertest.kubeconfig /home/usertest/.kube/config kubectl create rolebinding usertest-binding --clusterrole=test --user=usertest --namespace=test 方法二: (umask 077; openssl genrsa -out gpu.key 2048) openssl req -new -key gpu.key -out gpu.csr -subj "/CN=gpu" openssl x509 -req -in gpu.csr -CA /apps/conf/kubernetes/ssl/ca.crt -CAkey /apps/conf/kubernetes/ssl/ca.key -CAcreateserial -out gpu.crt -days 3650 openssl x509 -in gpu.crt -text -noout export KUBE_APISERVER="https://192.168.70.186:6443" kubectl config set-cluster cluster.local --certificate-authority=/apps/conf/kubernetes/ssl/ca.crt --embed-certs=true --server=${KUBE_APISERVER} --kubeconfig=gpu.kubeconfig kubectl config set-credentials gpu --client-certificate=/root/gpu.crt --client-key=/root/gpu.key --embed-certs=true --kubeconfig=gpu.kubeconfig kubectl config set-context gpu@cluster.local --cluster=cluster.local --user=gpu --namespace=test --kubeconfig=gpu.kubeconfig kubectl config use-context gpu@cluster.local --kubeconfig=gpu.kubeconfig mkdir /home/gpu/.kube cp -f gpu.kubeconfig /home/gpu/.kube/config chown gpu:gpu /home/gpu/.kube/config kubectl create rolebinding gpu-binding --clusterrole=admin --user=gpu --namespace=test 额外: 切换用户 kubectl config use-context gpu@kubernetes 验证权限 kubectl get pods 切换成管理员 kubectl config use-context kubernetes-admin@kubernetes 查看所有用户 kubectl config get-contexts 查看集群角色 kubectl get ClusterRole 查看服务账户 kubectl get serviceAccount