4. 二进制配置 Kubectl 命令行工具

发布时间:2022-07-04 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了4. 二进制配置 Kubectl 命令行工具脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

部署 kubectl 命令行工具

kubectl 默认从 ~/.kube/config 配置文件获取访问 kube-apiserver 地址、证书、用户名等信息

#一键安装kubectl 需保证yum中存在资源
$ yum install kubectl

创建 admin 证书

kubectl 与 kube-apiserver 的安全端口通信,需要为安全通信提供 TLS 证书和秘钥

创建 admin 证书签名请求

$ cd /root/CFssldir
$ cat admin-csr.json
{
  "CN": "admin",
  "hosts": [],
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "ST": "BeiJing",
      "L": "BeiJing",
      "O": "System:masters",
      "OU": "System"
    }
  ]
}
  • 后续 kube-apiserver 使用 RBAC 对客户端(如 kubeletkube-ProxyPod)请求进行授权;
  • kube-apiserver 预定义了一些 RBAC 使用的 RoleBindings,如 cluster-admin 将 Group system:masters 与 Role cluster-admin 绑定,该 Role 授予了调用kube-apiserver 所有 API的权限;
  • O 指定该证书的 Group 为 system:masterskubelet 使用该证书访问 kube-apiserver 时 ,由于证书被 CA 签名,所以认证通过,同时由于证书用户组为经过预授权的 system:masters,所以被授予访问所有 API 的权限;
  • hosts 属性值为空列表

生成 admin 证书和私钥,创建kubectl文件夹,用于存放相关文件

$ cfssl gencert -ca=/root/cfssldir/ca.PEm 
  -ca-key=/root/cfssldir/ca-key.pem 
  -config=/root/cfssldir/ca-config.JSON 
  -PRofile=kubernetes admin-csr.json | cfssljson -bare admin
$ ls admin*
admin.csr  admin-csr.json  admin-key.pem  admin.pem
$ mkdir -p /root/kubectl
$ sudo cp admin*.pem ca.pem /root/kubectl

创建 kubectl kubeconfig 文件

$ cd /root/kubectl
$ vim createkubectlcfg.sh
 # 设置集群参数
 kubectl config set-cluster kubernetes 
  --certificate-authorITy=/root/kubectl/ca.pem 
  --embed-certs=true 
  --server=https://100.69.218.95:6443
  --kubeconfig=kubectl.kubeconfig
 # 设置客户端认证参数
 kubectl config set-credentials admin 
  --client-certificate=/root/kubectl/admin.pem 
  --embed-certs=true 
  --client-key=/root/kubectl/admin-key.pem
  --kubeconfig=kubectl.kubeconfig
 # 设置上下文参数
 kubectl config set-context kubernetes 
  --cluster=kubernetes 
  --user=admin
  --kubeconfig=kubectl.kubeconfig
 # 设置默认上下文
 kubectl config use-context kubernetes --kubeconfig=kubectl.kubeconfig
  • --certificate-authority:验证 kube-apiserver 证书的根证书;
  • --client-certificate、--client-key:刚生成的 admin 证书和私钥,连接 kube-apiserver 时使用;
  • --embed-certs=true:将 ca.pem 和 admin.pem 证书内容嵌入到生成的 kubectl.kubeconfig 文件中(不加时,写入的是证书文件路径);

生成kubectl.kubeconfig 文件并替换原始配置

$ chmod +x createkubectlcfg.sh
$ bash createkubectlcfg.sh
$ cp kubectl.kubeconfig ~/.kube/config 

组件验证

执行如下命令,有正常返回值则配置成功:

kubectl get cs

脚本宝典总结

以上是脚本宝典为你收集整理的4. 二进制配置 Kubectl 命令行工具全部内容,希望文章能够帮你解决4. 二进制配置 Kubectl 命令行工具所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。