第一步:編寫自簽證書文件。
vim admin-csr.json
{ "CN": "admin", "hosts": [], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "L": "BeiJing", "ST": "BeiJing", "O": "system:masters", "OU": "System" } ] }
拷貝ca.pem,注意:必須是正在使用的ca證書。
生成管理證書
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes admin-csr.json | cfssljson -bare admin
第二步:生成config文件。執行下面幾個命令即可。
# 設置集群參數
kubectl config set-cluster kubernetes \ --server=https://192.168.1.46:6443 \ --certificate-authority=ca.pem \ --embed-certs=true \ --kubeconfig=config
# 設置客戶端認證參數
kubectl config set-credentials cluster-admin \ --certificate-authority=ca.pem \ --embed-certs=true \ --client-key=admin-key.pem \ --client-certificate=admin.pem \ --kubeconfig=config
# 設置上下文參數
kubectl config set-context default \ --cluster=kubernetes \ --user=cluster-admin \ --kubeconfig=config
# 設置默認上下文
kubectl config use-context default --kubeconfig=config
執行完上面4個命令,會生成一個config文件。
第三步:把config文件拷貝到node節點。(默認目錄為~/kube,如果不放在默認目錄,則需要添加參數kubeconfig=path)
這樣把kubectl命令拷貝到node節點上,node節點上也可以正常使用kubectl命令了。
kubectl config set-context default \ --cluster=kubernetes \ --user=cluster-admin \ --kubeconfig=config