#!/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 ""