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
  • 设置客户端参数
[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 
文章来源(Source):浅时光博客
  • 设置上下文参数
[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文件

  • 分发文件至所有Master和Work节点
文章来源(Source):浅时光博客
[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. wzibit浙江·杭州2024-6-11 · 14:33

    学习学习,大神

  2. 遇见_730上海2024-4-16 · 17:24

    学习学习,大神

  3. tinyhan吉林·长春2024-1-29 · 14:35

    学习中,楼主v5

  4. DBCHO广东·深圳2023-9-12 · 18:20

    大神太牛了

  5. mannysys陕西·西安2023-6-16 · 14:43

    跟着文档走一遍

  6. huiquan安徽·宿州2023-1-13 · 14:37

    跟进到目前,没有任何问题,学习了

  7. Lucifer广东·深圳2022-11-19 · 12:10

    终于学习到这里了,感谢大侠分享

  8. allenjol上海2022-10-25 · 16:20

    跟着文档走一遍,还不错