Files
k3s-configs/scripts/generate-join-script.sh
K3s Admin a725f0f933 Add k3s cluster expansion documentation and scripts
- Complete expansion guide for 2/4/6 node scenarios
- Quick join scripts for worker and master nodes
- Health check and diagnostic scripts
- Quick reference card for common operations
2026-01-21 09:02:47 +00:00

114 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
#
# 快速配置脚本生成器
# 为新节点生成定制化的加入脚本
#
# 颜色输出
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
echo -e "${GREEN}================================${NC}"
echo -e "${GREEN}K3s 节点加入脚本生成器${NC}"
echo -e "${GREEN}================================${NC}"
echo ""
# 获取当前配置
MASTER_IP="134.195.210.237"
NODE_TOKEN="K109d35a131f48b4d40b162398a828b766d60735f29dd7b4a37b030c1d1c0e26b23::server:72e04c3a9e3e762cbdefffc96f348a2d"
echo -e "${YELLOW}当前 Master 节点信息:${NC}"
echo "IP: $MASTER_IP"
echo "Token: ${NODE_TOKEN:0:20}..."
echo ""
# 选择节点类型
echo "请选择要加入的节点类型:"
echo "1) Worker 节点 (推荐用于 2 节点方案)"
echo "2) Master 节点 (用于 HA 高可用方案)"
echo ""
read -p "请输入选项 (1 或 2): " NODE_TYPE
if [ "$NODE_TYPE" == "1" ]; then
SCRIPT_NAME="join-worker-custom.sh"
echo ""
echo -e "${GREEN}生成 Worker 节点加入脚本...${NC}"
cat > $SCRIPT_NAME << 'EOFWORKER'
#!/bin/bash
set -e
# 配置信息
MASTER_IP="134.195.210.237"
NODE_TOKEN="K109d35a131f48b4d40b162398a828b766d60735f29dd7b4a37b030c1d1c0e26b23::server:72e04c3a9e3e762cbdefffc96f348a2d"
echo "开始加入 Worker 节点..."
# 系统准备
swapoff -a
sed -i '/ swap / s/^/#/' /etc/fstab
apt-get update -qq
apt-get install -y curl open-iscsi nfs-common
systemctl enable --now iscsid
# 安装 k3s agent
curl -sfL https://get.k3s.io | K3S_URL=https://${MASTER_IP}:6443 \
K3S_TOKEN=${NODE_TOKEN} sh -
echo "Worker 节点加入完成!"
echo "在 Master 节点执行: kubectl get nodes"
EOFWORKER
chmod +x $SCRIPT_NAME
elif [ "$NODE_TYPE" == "2" ]; then
SCRIPT_NAME="join-master-custom.sh"
echo ""
read -p "请输入负载均衡器 IP: " LB_IP
echo -e "${GREEN}生成 Master 节点加入脚本...${NC}"
cat > $SCRIPT_NAME << EOFMASTER
#!/bin/bash
set -e
# 配置信息
FIRST_MASTER_IP="134.195.210.237"
LB_IP="$LB_IP"
NODE_TOKEN="K109d35a131f48b4d40b162398a828b766d60735f29dd7b4a37b030c1d1c0e26b23::server:72e04c3a9e3e762cbdefffc96f348a2d"
echo "开始加入 Master 节点 (HA 模式)..."
# 系统准备
swapoff -a
sed -i '/ swap / s/^/#/' /etc/fstab
apt-get update -qq
apt-get install -y curl open-iscsi nfs-common
systemctl enable --now iscsid
# 安装 k3s server
curl -sfL https://get.k3s.io | sh -s - server \\
--server https://\${FIRST_MASTER_IP}:6443 \\
--token \${NODE_TOKEN} \\
--tls-san=\${LB_IP} \\
--write-kubeconfig-mode 644
echo "Master 节点加入完成!"
echo "在任意 Master 节点执行: kubectl get nodes"
EOFMASTER
chmod +x $SCRIPT_NAME
else
echo "无效的选项"
exit 1
fi
echo ""
echo -e "${GREEN}✓ 脚本已生成: $SCRIPT_NAME${NC}"
echo ""
echo "使用方法:"
echo "1. 将脚本复制到新节点"
echo "2. 在新节点上执行: sudo bash $SCRIPT_NAME"
echo ""