54 lines
1.4 KiB
Bash
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"
|