Files
devstar/docs/kubernetes/k8s-step6-join-nodes.sh

54 lines
1.4 KiB
Bash

#!/bin/bash
set -e
# Kubernetes 节点加入脚本
# 功能: 将 Node1 和 Node2 加入 Kubernetes 集群
echo "==== 将节点加入 Kubernetes 集群 ===="
# 检查是否存在加入命令文件
if [ ! -f "node-join-command.txt" ]; then
echo "错误: 找不到 node-join-command.txt 文件"
echo "请先运行 k8s-step4-init-cluster.sh 初始化集群"
exit 1
fi
# 读取加入命令
JOIN_COMMAND=$(cat node-join-command.txt)
# SSH 选项与密钥
SSH_OPTS='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes'
SSH_KEY_PATH=${SSH_KEY:-$HOME/.ssh/id_rsa}
[ -f "$SSH_KEY_PATH" ] && SSH_ID="-i $SSH_KEY_PATH" || SSH_ID=""
echo "使用加入命令: $JOIN_COMMAND"
# 定义节点列表
NODES=("172.17.0.43:node1" "172.17.0.34:node2")
# 将节点加入集群
for node in "${NODES[@]}"; do
IFS=':' read -r ip hostname <<< "$node"
echo "==== 将 $hostname ($ip) 加入集群 ===="
ssh $SSH_OPTS $SSH_ID ubuntu@$ip "sudo $JOIN_COMMAND"
echo "$hostname 加入完成"
done
# 等待节点加入
echo "==== 等待节点加入集群 ===="
sleep 30
# 验证集群状态
echo "==== 验证集群状态 ===="
kubectl get nodes
kubectl get pods -n kube-system
kubectl get pods -n kube-flannel
echo "==== 节点加入完成 ===="
echo "集群信息:"
echo "- Master: 172.17.0.15"
echo "- Node1: 172.17.0.43"
echo "- Node2: 172.17.0.34"
echo "- Kubernetes 版本: v1.32.3"
echo "- 网络插件: Flannel"
echo "- 容器运行时: containerd"