网站首页 > 教程文章 正文
由于现有服务器节点负载已经达到一定程度,需要进行服务器扩容,添加新的服务器节点,具体步骤如下:
1. 环境准备
首先在新节点上进行基础环境配置:
设置主机名
# cat /etc/hostname
node3
添加host配置文件
# 关闭防火墙
systemctl disable --now firewalld
# 关闭SELinux
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
# 关闭swap
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
# 设置系统参数
cat > /etc/modules-load.d/k8s.conf << EOF
overlay
br_netfilter
EOF
modprobe overlay
modprobe br_netfilter
验证是否加载内核
lsmod | grep overlay
lsmod | grep br_netfilter
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system
# 设置时区
timedatectl set-timezone Asia/Shanghai
说明:为什么在 Kubernetes 中必须加载这两个模块?
- overlay:为容器运行时(如 containerd)提供存储支持,否则容器无法正常创建和运行。
- br_netfilter:确保 Kubernetes 的网络插件(如 Calico、Flannel)能够正常工作,实现 Pod 网络通信和安全策略。
如果不加载这两个模块,Kubernetes 集群可能会出现容器无法启动、网络不通等问题。因此,在安装 Kubernetes 前,通常需要通过 modprobe 命令手动加载它们,并通过 sysctl 配置相关网络参数(如
net.bridge.bridge-nf-call-iptables)。
2. 安装 containerd
我这边docker也顺带安装,安装docker ,containerd ,K8S 1.24 及以上版本推荐使用 containerd 作为容器运行时,替代 Docker。
dnf config-manager --add-repo=https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
sed -i 's+$releasever+9+' /etc/yum.repos.d/docker-ce.repo
dnf makecache
dnf install docker-ce docker-ce-cli containerd.io -y
配置containerd
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
sed -i 's|registry.k8s.io|registry.aliyuncs.com/google_containers|g' /etc/containerd/config.toml
sed -i 's|SystemdCgroup = false|SystemdCgroup = true|g' /etc/containerd/config.toml
systemctl enable containerd --now
systemctl restart containerd
systemctl status containerd
3. 安装 Kubernetes 组件
# cat /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.32/rpm/
#baseurl=https://pkgs.k8s.io/core:/stable:/v1.32/rpm/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.32/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet
4. 准备加入集群
在控制平面节点上生成加入命令:
# kubeadm token create --print-join-command
在新节点执行:
kubeadm join masterip:6443 --token t9m4w1.2d9agaois2njwc32 --discovery-token-ca-cert-hash sha256:28e85a396536ce5ffdf954a79ac0189ef4979b35b3ee00739ab06afcdd6cd4b3
5. 验证节点加入
kubectl get nodes
kubectl get pods -A -o wide | grep node3
6. 安装网络插件(如果集群还没有安装)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
如果加入的节点已经是read,并且查看pod已经有网络插件的pod那么说明网络插件已经安装,不需要重新安装。
- 上一篇: CentOS 8仓库配置问题解决方案
- 下一篇: CentOS7系统基于HTTP构建YUM网络源
猜你喜欢
- 2025-08-03 Rocky Linux 8.1 安装 ELK教程
- 2025-08-03 CentOS7系统基于HTTP构建YUM网络源
- 2025-08-03 CentOS 8仓库配置问题解决方案
- 2025-08-03 Linux安全基线 - 1
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- mybatis plus page (35)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)
- http method (35)
- js array splice (33)