這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
協助文檔
使用的變數
本文檔用到的變數定義如下:
$ export MASTER_IP=XX.XX.XX.XX # 替換為 kubernetes master VIP$ export KUBE_APISERVER="https://${MASTER_IP}:6443"$
建立 kubectl config 檔案
$ # 設定叢集參數$ kubectl config set-cluster kubernetes \ --insecure-skip-tls-verify=true \ --server=${KUBE_APISERVER} $ # 設定用戶端認證參數$ kubectl config set-credentials crd-admin \ --token=7176d48e4e66ddb3557a82f2dd316a93 $ # 設定上下文參數$ kubectl config set-context kubernetes \ --cluster=kubernetes \ --user=crd-admin \ --namespace=crd $ # 設定預設上下文$ kubectl config use-context kubernetes
kube-apiserver設定
添加kube-apiserver端token認證
$ cat > /etc/kubernetes/pki/token_auth_file<<EOF7176d48e4e66ddb3557a82f2dd316a93,crd-admin,1 EOF
添加kube-spiserver啟動參數 --token-auth-file=/etc/kubernetes/pki/token_auth_file
配置用戶端RBAC相關
限制 crd-admin 使用者的行為,需要使用 RBAC 將該使用者的行為限制在crd namespace 空間範圍內
kubectl create -f crd-rbac.yaml
這樣 crd-admin 使用者對 crd namespace 具有完整存取。
crd-rbac.yaml具體內容:
apiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata: name: crdadmin-admin-binding namespace: crdroleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: adminsubjects:- apiGroup: rbac.authorization.k8s.io kind: User name: crd-admin