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
This commit is contained in:
113
scripts/generate-join-script.sh
Executable file
113
scripts/generate-join-script.sh
Executable file
@@ -0,0 +1,113 @@
|
||||
#!/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 ""
|
||||
Reference in New Issue
Block a user