8. k8s二进制集群之Kubectl部署
- 创建kubectl证书请求文件
- 生成admin证书文件
- 复制admin证书到指定目录
- 生成kubeconfig配置文件
- 接下来完成kubectl配置文件的角色绑定
- 【扩展】kubectl命令补全操作
继续上一篇文章《k8s二进制集群之Kube ApiServer部署》下面介绍一下k8s中的命令行管理工具kubectl。
通过kubectl可以与k8s集群进行交互与操作,可以用它来创建、更新、删除和描述集群中的各种资源,如节点、部署、服务、Pod、ReplicaSet、StatefulSet、DaemonSet、Job 、 CronJob,包括故障排查、信息获取和配置管理等。
创建kubectl证书请求文件
后续kube-apiserver 使用RBAC对客户端(如kubelet、kube-proxy、Pod)请求进行授权;
kube-apiserver 预定义了一些 RBAC使用的 RoleBindings,如 cluster-admin 将 Group system:masters 与 Role cluster-admin 绑定,该Role 授予了调用kube-apiserver 的所有 API的权限;
O指定该证书的 Group 为 system:masters, kubelet使用该证书访问 kube-apiserver 时,由于证书被CA签名,所以认证通过,同时由于证书用户组为经过预授权的 system:masters,所以被授予访问所有 API的权限;
cat > admin-csr.json <<"EOF"
{
"CN": "admin",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [{
"C":"CN",
"ST":"zhejiang",
"L":"hangzhou",
"O":"system:masters",
"OU":"system"
}]
}
EOF
生成admin证书文件
拥有amdin证书才可以管理和维护k8s集群、安全性校验以及k8s API的授权访问;
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes admin-csr.json | cfssljson -bare