1. 程式人生 > >(六)配置kubectl客戶端工具

(六)配置kubectl客戶端工具

9.1 綁定 .com key vpd ges bind 配置文件 創建

#(1)在跳板機上生成客戶端證書和私鑰文件;

#生成客戶端證書簽署請求
cd /temp/ssl 
cat > client-csr.json <<EOF
{
        "CN": "client",
        "hosts": [],
        "key": {
                "algo": "rsa",
                "size": 2048
        },
        "names": [
                {
                        "C": "CN",
                        "ST": "Hangzhou",
                        "L": "Hangzhou",
                        "O": "k8s",
                        "OU": "System"
                }
        ]
}
EOF

#生成客戶端證書
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json  -profile=kubernetes client-csr.json | cfssljson -bare client

#(2)在跳板機上生成kubeconfig文件, 該用文件作用是客戶端向kube-apiserver認證使用;

#設置集群信息
kubectl config set-cluster k8s --server="https://192.168.19.128:6443" --certificate-authority=ca.pem --embed-certs=true
#設置客戶端信息
kubectl config set-credentials client --client-certificate=client.pem --client-key=client-key.pem --embed-certs=true 
#配置上下文, 關聯集群和客戶端信息
kubectl config set-context client@k8s  --cluster=k8s  --user=client
#設置默認上下文
kubectl config use-context client@k8s 
#查看配置, 默認會在~/.kube/目錄下生成config文件, kubectl工具會使用該配置文件信息連接apiserver服務
kubectl config view 

#(3)在master上對kubectl用戶進行授權; clusterrole所有命名空間指定指定資源操作權限; 創建clusterrolebinding的目的是綁定用戶在所有命名空間對指定的資源操作權限; 這裏cluster-admin是管理員權限

kubectl create clusterrolebinding client-all-k8s1 --clusterrole=cluster-admin --user=client

#(4)在跳板機上驗證是否能夠創建資源
技術分享圖片
結論是能夠獲取資源和創建資源;

#(5)如果在其它機器上需要和apiserver進行通信創建資源,只需要把跳板機上的~/.kube/下的config文件拷貝到其它機器;

使用--kubeconfig選項來指定配置文件在什麽地方;

kubectl get pods --kubeconfig=/root/.kube/config

(六)配置kubectl客戶端工具