AI 文章摘要
本文详细介绍了在二进制部署高可用Kubernetes 1.25+集群过程中,如何配置kubectl命令行工具。首先,将预先下载的kubectl二进制文件上传至Master1节点,并分发至其他所有Master和Work节点。接着,创建用于kubectl认证的admin证书和私钥,包括生成证书签名请求、证书和私钥。随后,配置kubeconfig文件,设置客户端参数、上下文参数,并指定默认上下文。该文件随后也被分发至所有Master和Work节点。最后,验证kubectl命令是否可在所有节点正常运行,并配置命令补全功能以提升使用体验。通过这些步骤,确保kubectl能够与高可用Kubernetes集群进行有效交互,实现集群管理的便捷性和高效性。
四、部署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、确认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






学习学习,大神
学习学习,大神
学习中,楼主v5
大神太牛了
跟着文档走一遍
跟进到目前,没有任何问题,学习了
终于学习到这里了,感谢大侠分享
跟着文档走一遍,还不错