配置kubectl客戶端通過token方式訪問kube-apiserver


使用的變量

本文檔用到的變量定義如下:

$ 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
  • 使用命令www.97yingyuan.org head -c 16 /dev/urandom | od -An -t x | tr -d ' ' 生成token

kube-apiserver設置

添加kube-apiserver端token證書

$ cat > /etc/kubernetes/pki/token_auth_file<<EOF
7176d48e4e66ddb3557a82f2dd316a93,crd-admin,1
 EOF
  • 第一列為剛剛生成的token,要與config里的token一致

  • 第二列為user, 要與config里的use一致

  • 編號或是序列號

添加kube-spiserver啟動參數 --token-auth-file=/etc/kubernetes/pki/token_auth_file

  • 注意地址

  • 需要重啟kube-apiserver

  • 證書驗證和token和同時啟用的,但是token和用戶名密碼,不可同時啟用

配置客戶端RBAC相關

限制 crd-admin 用戶的行為,需要使用 RBAC 將該用戶的行為限制在crd namespace 空間范圍內

kubectl create -f crd-rbac.yaml

這樣 crd-admin 用戶對 crd namespace 具有完全訪問權限。

crd-rbac.yaml具體內容:

 
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata:  name: crdadmin-admin-binding  namespace: crd roleRef:  apiGroup: rbac.authorization.k8s.io  kind: ClusterRole  name: admin subjects: - apiGroup: rbac.authorization.k8s.io  kind: User  name: crd-admin


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM