## 創建admin管理員證書
```
vi /opt/k8s/ssl/k8s_apiserver_admin.json
{
"CN": "admin",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "GuangXi",
"L": "Nanning",
"O": "system:masters",
"OU": "System"
}
]
}
?
# 后續 kube-apiserver 使用 RBAC 對客戶端(如 kubelet、kube-proxy、Pod)請求進行授權;
# kube-apiserver 預定義了一些 RBAC 使用的 RoleBindings,如 cluster-admin 將 Group system:masters 與 Role cluster-admin 綁定,該 Role 授予了調用kube-apiserver 的所有 API的權限;
# OU 指定該證書的 Group 為 system:masters,kubelet 使用該證書訪問 kube-apiserver 時 ,由于證書被 CA 簽名,所以認證通過,同時由于證書用戶組為經過預授權的 system:masters,所以被授予訪問所有 API 的權限
?
cd /opt/k8s/ssl/
?
# 創建證書
cfssl gencert -ca=/opt/ssl/k8s/k8s-ca.pem -ca-key=/opt/ssl/k8s/k8s-ca-key.pem \
-config=/opt/k8s/ssl/ca-config.json \
-profile=kubernetes /opt/k8s/ssl/k8s_apiserver_admin.json | cfssljson -bare k8s_apiserver_admin
?
```