## 创建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
```