Kubernetes — 创建普通用户

创建私钥

openssl genrsa -out kevin.key 2048
openssl req -new -key kevin.key -out kevin.csr

创建CSR

cat <<EOF | kubectl apply -f -
apiVersion: certificates.k8s.io/v1beta1
kind: CertificateSigningRequest
metadata:
  name: kevin
spec:
  request: LS0tLS1CRUdJT.....tLQo=
  signerName: kubernetes.io/kube-apiserver-client
  usages:
  - client auth
EOF

Some points to note:

  • usages 必须是 ‘client auth
  • request 是csr文件内容经过base64编码后的值。通过以下命令可得: cat kevin.csr | base64 | tr -d "\n"

批准证书签名请求

获取CSR列表

kubectl get csr

批准CSR

kubectl certificate approve kevin

获取证书

kubectl get csr kevin -o jsonpath='{.status.certificate}'| base64 -d > kevin.crt

绑定角色

这里图方便绑定的是cluster-admin角色。如果需要可以自行创建角色在进行绑定。

kubectl create  clusterrolebinding kevin --clusterrole=cluster-admin --user=kevin

如果不绑定角色,在执行kubectl get pod -A等操作时,会出现以下结果:

Error from server (Forbidden): pods is forbidden: User "kevin" cannot list resource "pods" in API group "" at the cluster scope

添加到kubeconfig

  • 添加新的凭据
kubectl config set-credentials kevin --client-key=kevin.key --client-certificate=kevin.crt --embed-certs=true
  • 添加上下文
kubectl config set-context kevin --cluster=kubernetes --user=kevin
  • 切换用户
kubectl config use-context kevin

一系列配置完成后就可以操作k8s集群了。

猜你喜欢

转载自blog.csdn.net/weixin_45804031/article/details/124156390