用户授权:
- 创建用户证书
创建用户
useradd testuser
创建私钥
umask 077;openssl genrsa -out testuser.key 2048
创建证书请求
openssl req -new -key testuser.key -out testuser.csr -subj “/CN=testuser”
用服务端CA签署并创建证书
openssl x509 -req -in testuser.csr -CA /etc/kubernetes/pki/ca.pem -CAkey /etc/kubernetes/pki/ca-key.pem -CAcreateserial -out testuser.crt -days 365
查看证书
openssl x509 -in testuser.crt -text -noout - 创建集群用户
export KUBE_APISERVER=“https://192.168.49.220:6443”
创建集群配置文件
kubectl config set-cluster kubernetes --certificate-authority=/etc/kubernetes/pki/ca.pem --embed-certs=true --server=${KUBE_APISERVER} --kubeconfig=kube-config
在集群配置文件中指定用户
kubectl config set-credentials testuser --client-certificate=/home/testuser/testuser.crt --embed-certs=true --client-key=/home/testuser/testuser.key --kubeconfig=kube-config - 创建基于集群和新用户的上下文
kubectl config set-context testuser@kubernetes --cluster=kubernetes --user=testuser --kubeconfig=kube-config - 授予testuser用户权限
指定命名空间中的所有权限
kubectl create role testuser --verb=“" --resource="” -n namespace
指定命令空间中的部分权限
kubectl create role testuser --verb=“get,list,watch” --resource=“pods” -n namespace
绑定角色到用户
kubectl create rolebinding testuser-rolebinding --role=testuser --user=testuser --namespace=namespace - 修改文件权限
chown -R testuser /home/testuser/ - 新建用户测试
su testuser
kubectl config use-context testuser@kubernetes --kubeconfig=kube-config
kubectl get pods