87 lines
3.0 KiB
Markdown
87 lines
3.0 KiB
Markdown
![]() |
<h1><center>kubernetes集群添加新节点</center></h1>
|
|||
|
|
|||
|
**作者:行癫(盗版必究)**
|
|||
|
|
|||
|
------
|
|||
|
|
|||
|
## 一:项目背景
|
|||
|
|
|||
|
当现有的节点无法提供足够的CPU、内存或存储资源来运行更多的Pod时,添加新的节点可以增加集群的总资源池,从而支持更多的应用部署和服务;通过增加工作节点的数量,可以在某些节点失效时保证其他节点能够继续为用户提供服务,从而提高整个系统的高可用性和容错性。这对于生产环境中的关键任务应用尤为重要
|
|||
|
|
|||
|
## 二:节点准备
|
|||
|
|
|||
|
#### 第一部分
|
|||
|
|
|||
|
1.修改所有节点的主机名 (规范)
|
|||
|
|
|||
|
2.所有节点本地解析
|
|||
|
|
|||
|
3.网络配置(所有节点全部使用静态地址)
|
|||
|
|
|||
|
4.所有节点保证yum仓库可用 base epel https://developer.aliyun.com/mirror/
|
|||
|
|
|||
|
5.所有节点关闭swap交换分区
|
|||
|
|
|||
|
使用free -m 来判断 如果是没有swap交换分区 此步略过
|
|||
|
|
|||
|
使用free -m 来判断 如果是有swap交换分区 swapoff -a 修改/etc/fstab 把swap的挂载去掉
|
|||
|
|
|||
|
6.集群所有节点保持时间一致,不一致做时间同步
|
|||
|
|
|||
|
#### 第二部分
|
|||
|
|
|||
|
1.container runtime 所有节点 docker 安装
|
|||
|
|
|||
|
略
|
|||
|
|
|||
|
2.安装核心组件 kubelet 引导工具 kubeadm 命令行管理工具 kubectl 依赖包 ipvsadm
|
|||
|
|
|||
|
需要指定版本安装(√)
|
|||
|
|
|||
|
修改kubelet的配置文件(√)
|
|||
|
|
|||
|
略
|
|||
|
|
|||
|
3.加载内核模块 修改内核参数
|
|||
|
|
|||
|
略
|
|||
|
|
|||
|
#### 第三部分
|
|||
|
|
|||
|
1.获取加入命令
|
|||
|
|
|||
|
Master节点执行
|
|||
|
|
|||
|
```shell
|
|||
|
[root@master ~]# kubeadm token create --print-join-command
|
|||
|
kubeadm join 10.9.12.234:6443 --token nu1g7p.w5sg414ekfm6hlcw --discovery-token-ca-cert-hash sha256:92d8500db9480e0159f47b959139a27c9efea0809c3fa7a9c98016b14dfe2bca
|
|||
|
```
|
|||
|
|
|||
|
2.新节点执行加入
|
|||
|
|
|||
|
```shell
|
|||
|
[root@node-4 ~]# kubeadm join 10.9.12.234:6443 --token nu1g7p.w5sg414ekfm6hlcw --discovery-token-ca-cert-hash sha256:92d8500db9480e0159f47b959139a27c9efea0809c3fa7a9c98016b14dfe2bca
|
|||
|
[preflight] Running pre-flight checks
|
|||
|
[WARNING SystemVerification]: this Docker version is not on the list of validated versions: 26.1.4. Latest validated version: 20.10
|
|||
|
[WARNING Service-Kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service'
|
|||
|
[preflight] Reading configuration from the cluster...
|
|||
|
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
|
|||
|
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
|
|||
|
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
|
|||
|
[kubelet-start] Starting the kubelet
|
|||
|
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...
|
|||
|
|
|||
|
This node has joined the cluster:
|
|||
|
* Certificate signing request was sent to apiserver and a response was received.
|
|||
|
* The Kubelet was informed of the new secure connection details.
|
|||
|
|
|||
|
Run 'kubectl get nodes' on the control-plane to see this node join the cluster.
|
|||
|
```
|
|||
|
|
|||
|
3.主节点验证
|
|||
|
|
|||
|
```shell
|
|||
|
[root@master ~]# kubectl get nodes
|
|||
|
```
|
|||
|
|