Kubernetes / 云原生

二进制部署一套高可用K8s集群-1.25+(三)

浅时光博客 · 4月4日 · 2022年 7.2w 次已读

四、部署kubectl命令行工具

1、下载和分发 kubectl 二进制文件

  • 我这里直接将下载好二进制包上传至Master1服务器节点中,然后拷贝至其他节点
[root@k8s-master1 ~]# cd /opt/k8s/work
[root@k8s-master1 work]# tar -zxvf kubernetes-client-linux-amd64.tar.gz
kubernetes/
kubernetes/client/
kubernetes/client/bin/
kubernetes/client/bin/kubectl
kubernetes/client/bin/kubectl-convert


[root@k8s-master1 work]# for node_ip in ${NODE_IPS[@]}
  do
    echo ">>> ${node_ip}"
    scp kubernetes/client/bin/kubectl root@${node_ip}:/opt/k8s/bin/
    ssh root@${node_ip} "chmod +x /opt/k8s/bin/*"
  done

2、创建admin证书和私钥

2.1:创建证书签名请求

[root@k8s-master1 ~]# cd /opt/k8s/work
[root@k8s-master1 work]# cat > admin-csr.json <<EOF
{
  "CN": "admin",
  "hosts": [],
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "ST": "ShangHai",
      "L": "ShangHai",
      "O": "system:masters",
      "OU": "dqz"
    }
  ]
}
EOF

2.2:生成证书和私钥

[root@k8s-master1 work]# cfssl gencert -ca=/opt/k8s/work/ca.pem \
  -ca-key=/opt/k8s/work/ca-key.pem \
  -config=/opt/k8s/work/ca-config.json \
  -profile=kubernetes admin-csr.json | cfssljson -bare admin

[root@k8s-master1 work]# ls admin*
admin.csr  admin-csr.json  admin-key.pem  admin.pem

3、创建 kubeconfig 文件

[root@k8s-master1 work]# kubectl config set-cluster kubernetes \
  --certificate-authority=/opt/k8s/work/ca.pem \
  --embed-certs=true \
  --server=${KUBE_APISERVER} \
  --kubeconfig=kubectl.kubeconfig
  • 设置客户端原文链接:https://dqzboy.com参数
[root@k8s-master1 work]# kubectl config set-credentials admin \
  --client-certificate=/opt/k8s/work/admin.pem \
  --client-key=/opt/k8s/work/admin-key.pem \
  --embed-certs=true \
  --kubeconfig=kubectl.kubeconfig 
  • 设置上下文参数
[root@k8s-master1 work]# kubectl config set-context kubernetes \
  --cluster=kubernetes \
  --user=admin \
  --kubeconfig=kubectl.kubeconfig 
  • 设置默认上下文
[root@k8s-master1 work]# kubectl config use-context kubernetes --kubeconfig=kubectl.kubeconfig 

4、分发kubeconfig文件

  • 分发文件至所有文章来源(Source):https://dqzboy.comMaster和Work节点
[root@k8s-master1 work]# for node_ip in ${NODE_IPS[@]}
  do
    echo ">>> ${node_ip}"
    ssh root@${node_ip} "mkdir -p ~/.kube"
    scp kubectl.kubeconfig root@${node_ip}:~/.kube/config
  done 

5、确认kubectl已经可以使用

  • 确保Master节点和Work节点的kubectl命令都可以使用
[root@k8s-master1 work]# kubectl --help

6、配置kubectl命令补全

  • 所有节点执行
yum install -y bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc

本文作者:浅时光博客
原文链接:https://www.dqzboy.com/9726.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可,转载时请以>超链接形式标明文章原始出处和作者信息
免责声明:本站内容仅供个人学习与研究,严禁用于商业或非法目的。请在下载后24小时内删除相应内容。继续浏览或下载即表明您接受上述条件,任何后果由用户自行承担。

28 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!

  1. wx_a29f639a64广东·深圳2022-10-10 · 16:22

    大佬大佬,打卡学习

  2. 随风四川·达州2022-9-25 · 20:39

    学习到这里了,前面虽有坎坷,但还顺利。

  3. xiaochun上海2022-9-20 · 12:34

    学习学习,感谢博主

  4. 浅时光博客2022-9-8 · 13:58

    解锁下隐藏内容

  5. yangsen香港特别行政区2022-8-31 · 18:02

    学习学习,感谢博主

  6. wx_970f0fe071北京2022-8-22 · 19:10

    感谢分享 仔细学习一下 现在学习到第三步骤

  7. iie075陕西·西安2022-7-7 · 11:59

    感谢分享,很详细

  8. seasonjj上海2022-6-29 · 11:26

    感谢分享,打卡

  9. michel北京2022-6-27 · 19:42

    又来打卡学习了

  10. 空人空心空世界安徽·合肥2022-6-26 · 17:54

    只能说大佬牛掰