38 lines
1.0 KiB
Bash
38 lines
1.0 KiB
Bash
#!/bin/bash
|
||
set -e
|
||
|
||
# === 必要参数 ===
|
||
INSTALL_K3S_URL="https://get.k3s.io"
|
||
FLANNEL_IFACE=${FLANNEL_IFACE:-br0}
|
||
|
||
# === 安装命令拼接(最简)===
|
||
INSTALL_K3S_EXEC="server \
|
||
--disable=traefik,servicelb,local-storage \
|
||
--data-dir=/opt/rancher/k3s \
|
||
--advertise-address=$(hostname -I | awk '{print $1}') \
|
||
--kube-apiserver-arg=service-node-port-range=0-50000"
|
||
|
||
[[ -n "$FLANNEL_IFACE" ]] && INSTALL_K3S_EXEC+=" --flannel-iface=${FLANNEL_IFACE}"
|
||
|
||
# === 下载并执行安装 ===
|
||
curl -sfL ${INSTALL_K3S_URL} -o install_k3s.sh && chmod +x install_k3s.sh
|
||
INSTALL_K3S_EXEC="$INSTALL_K3S_EXEC" ./install_k3s.sh
|
||
|
||
# === 等待 CoreDNS 启动 ===
|
||
echo "⏳ 等待 CoreDNS 启动..."
|
||
until kubectl get pods -A 2>/dev/null | grep -q "coredns.*Running"; do
|
||
sleep 3
|
||
done
|
||
|
||
# === 设置本地 kubeconfig ===
|
||
mkdir -p ~/.kube
|
||
cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
|
||
chmod 600 ~/.kube/config
|
||
export KUBECONFIG=~/.kube/config
|
||
|
||
curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
|
||
|
||
echo "✅ K3s 安装完成,kubectl/helm 已就绪"
|
||
|
||
|