k8s 二进制node节点扩容

导读:本篇文章讲解 k8s 二进制node节点扩容,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

环境

k8s-master1 10.0.19.127 kube-apiserver,kube-controller-manager,kube-scheduler,etcd
k8s-node1 10.0.19.129 kube-proxy,kubelet,docker,etcd
k8s-node2 10.0.19.130 kube-proxy,kubelet,docker,etcd
k8s-node3(扩容) 10.0.19.128 kube-proxy,kubelet,docker

前置条件做好初始化,例如系统参数优化,时间同步,host主机解析,安装docker这四步,这里不详细说了
docker安装文档:https://blog.csdn.net/a13568hki/article/details/107068006
在这里插入图片描述

一、安装node3

为了简单,我们先去从node1上复制配置好的k8s组件(包含证书,配置,启动文件)到node3上

[root@k8s-node1 ~]# scp -r /opt/kubernetes root@k8s-node3:/opt/
[root@k8s-node1 system]# scp kube-proxy.service kubelet.service root@k8s-node3:/usr/lib/systemd/system

2、去node3上操作,修改配置文件ip或主机名 ,我配置里用的都是主机名,找到配置文件把主机名上改成第三个node,也就是本身的主机名

[root@k8s-node3 cfg]# cd /opt/kubernetes/cfg/
[root@k8s-node3 cfg]# grep 129 *  #这里查看不到IP,因为我用的是主机名
[root@k8s-node3 cfg]# grep k8s-node1 *
kubelet.conf:--hostname-override=k8s-node1 \
kube-proxy-config.yml:hostnameOverride: k8s-node1
[root@k8s-node3 cfg]# sed -i 's/k8s-node1/k8s-node3/g' *
[root@k8s-node3 cfg]# grep k8s-node1 *
[root@k8s-node3 cfg]# grep k8s-node3 *
kubelet.conf:--hostname-override=k8s-node3 \
kube-proxy-config.yml:hostnameOverride: k8s-node3

二、生成node3的证书

去node3上操作,把拷贝过去的文件的证书删除,这是node1的证书,我们需要重新生成
查看证书

[root@k8s-node3 ~]# ls /opt/kubernetes/ssl/
ca.pem  kubelet-client-2022-04-06-18-03-13.pem  kubelet-client-current.pem  kubelet.crt  kubelet.key  kube-proxy-key.pem  kube-proxy.pem

删除kubelet的证书
kube-proxy组件所需的证书不需要删除,因为生成的时候里面没用到IP地址只是简单的公密钥,每个节点都一样,删除kubelet使用基于bootstrap自动颁发证书,因为每个kubelet用到的证书都是独一无二的,因为它要绑定各自的IP地址,于是需要给每个kubelet单独制作证书,如果业务量很大的情况下,node节点会很多,这样一来kubelet的数量也随之增加,而且还会经常变动(增减Node)kubelet的证书制作就成为一件很麻烦的事情。使用TLS bootstrapping就可以省事儿很多。

[root@k8s-node3 ~]# rm -rf /opt/kubernetes/ssl/kubelet*

生成证书
重启kubelet;

[root@k8s-node3 cfg]# systemctl daemon-reload
[root@k8s-node3 cfg]# systemctl restart kubelet
[root@k8s-node3 cfg]# systemctl restart kube-proxy

此时在master节点执行:kubectl get csr 可以看到node01节点重新申请加入集群;

[root@k8s-master1 k8s]#  kubectl get csr
NAME                                                   AGE     REQUESTOR           CONDITION
node-csr-TmUHds0Fv-qzUM1qXFgAYGMdsXAnrjdfDgBOkCm5I34   2m46s   kubelet-bootstrap   Pending
[root@k8s-master1 k8s]#  kubectl certificate approve node-csr-TmUHds0Fv-qzUM1qXFgAYGMdsXAnrjdfDgBOkCm5I34

扩容后
在这里插入图片描述

三、安装网络插件

1、直接拷贝node1的CNI的软件包

[root@k8s-node1 opt]# scp  -r /opt/cni k8s-node3:/opt/

3)在master上执行yaml脚本,实现在worker节点安装启动网络插件功能
网络插件所需的镜像地址链接(无网络可用,镜像每台worker都要有,或者做出镜像仓库,编写yaml文件直接下载):
https://pan.baidu.com/s/1S4ux43CrHVcln5yFZ9ewEQ
提取码:vq7b

yaml文件地址链接:https://pan.baidu.com/s/1aU_Cra-8Ycwcy9OgatexNw
提取码:sy8e

[root@k8s-master1 YAML]# kubectl apply -f kube-flannel.yaml
	注意:
		这个操作受限于网络,可能会需要5~10分钟才能执行成功
		如果网上太慢,会导致超时

在这里插入图片描述
成功

报错
在这里插入图片描述
显示没安装docker

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/75680.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!