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 
  • 设置上下文参数
[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节点
[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、确认k文章来源(Source):https://dqzboy.comubectl已经可以使用

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

6、配置kubectl命令补全

  • 所有节点执行
  • 原文链接:https://dqzboy.com
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. X_186上海2022-6-21 · 20:59

    写的很详细

  2. gaizi河北·衡水2022-5-17 · 9:37

    对新人学习还有点难度

  3. K.S广东·广州2022-5-10 · 14:20

    写得很好呀,学习了

  4. luonan北京2022-4-25 · 18:54

    谢谢博主分享,按教程试试

  5. 风之旅人北京2022-4-25 · 18:44

    谢谢博主分享

  6. 冰梦上海2022-4-18 · 12:21

    相当有用哦

  7. fcsh浙江·杭州2022-4-18 · 10:31

    学而时习之

  8. Devops小白安徽·合肥2022-4-16 · 14:12

    顺利来到第三章节

  9. Devops小白安徽·合肥2022-4-14 · 21:57

    向博主学习

  10. 詹光军浙江·杭州2022-4-10 · 9:44

    向博主学习,向自己不会的技术进军