bugfix
This commit is contained in:
parent
f6916a9a77
commit
eb367109f9
107
installer/templates/master.sh.j2.bak
Normal file
107
installer/templates/master.sh.j2.bak
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
source ./common.sh
|
||||||
|
|
||||||
|
echo "[INFO] === 初始化 Master 节点 ==="
|
||||||
|
|
||||||
|
cat <<CFG > kubeadm-config.yaml
|
||||||
|
apiVersion: kubeadm.k8s.io/v1beta3
|
||||||
|
kind: ClusterConfiguration
|
||||||
|
kubernetesVersion: v{{ cluster.kubernetes_version }}
|
||||||
|
controlPlaneEndpoint: "{{ cluster.api_server_ip }}:6443"
|
||||||
|
networking:
|
||||||
|
podSubnet: "{{ cluster.pod_cidr }}"
|
||||||
|
serviceSubnet: "{{ cluster.service_cidr }}"
|
||||||
|
imageRepository: {{ registry.ip }}:{{ registry.port }}
|
||||||
|
---
|
||||||
|
apiVersion: kubelet.config.k8s.io/v1beta1
|
||||||
|
kind: KubeletConfiguration
|
||||||
|
cgroupDriver: systemd
|
||||||
|
CFG
|
||||||
|
|
||||||
|
# 预先检查
|
||||||
|
kubeadm init phase preflight --config kubeadm-config.yaml --ignore-preflight-errors=all
|
||||||
|
|
||||||
|
# 正式初始化
|
||||||
|
# 注意:因为我们已经手动导入了镜像,不需要 kubeadm pull
|
||||||
|
kubeadm init --config kubeadm-config.yaml --upload-certs | tee kubeadm-init.log
|
||||||
|
|
||||||
|
mkdir -p $HOME/.kube
|
||||||
|
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
|
||||||
|
chown $(id -u):$(id -g) $HOME/.kube/config
|
||||||
|
|
||||||
|
echo "[INFO] 部署网络插件 (Calico)..."
|
||||||
|
kubectl apply -f "$BUNDLE_ROOT/manifests/calico.yaml"
|
||||||
|
|
||||||
|
NAMESPACE="default"
|
||||||
|
LOCAL_REGISTRY="{{ registry.ip }}:{{ registry.port }}"
|
||||||
|
echo "[INFO] 5. 导入离线镜像..."
|
||||||
|
if [ -d "$IMAGES_DIR" ]; then
|
||||||
|
for tarfile in "$IMAGE_DIR"/*.tar; do
|
||||||
|
[ -e "$tarfile" ] || continue
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo ">>> Processing $tarfile"
|
||||||
|
|
||||||
|
# 1️⃣ 导入镜像
|
||||||
|
ctr -n "$NAMESPACE" images import "$tarfile"
|
||||||
|
|
||||||
|
# 2️⃣ 获取最新导入镜像(兼容老版本 ctr)
|
||||||
|
ORIGIN_IMG=$(ctr -n "$NAMESPACE" images ls -q | head -n1)
|
||||||
|
if [[ -z "$ORIGIN_IMG" ]]; then
|
||||||
|
echo "❌ Failed to detect original image name, skipping..."
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
echo "Original image: $ORIGIN_IMG"
|
||||||
|
|
||||||
|
# 3️⃣ 根据 tar 文件名生成本地 registry 镜像名
|
||||||
|
# 文件名示例:docker.io_calico_cni_v3.26.1.tar
|
||||||
|
BASENAME=$(basename "$tarfile" .tar)
|
||||||
|
BASENAME=${BASENAME#*_} # 去掉 registry 前缀: calico_cni_v3.26.1
|
||||||
|
NAME_TAG=${BASENAME}
|
||||||
|
NAME=${NAME_TAG%_*} # calico_cni
|
||||||
|
TAG=${NAME_TAG##*_} # v3.26.1
|
||||||
|
NEW_IMG="${LOCAL_REGISTRY}/${NAME}:${TAG}"
|
||||||
|
|
||||||
|
echo "Retag as: $NEW_IMG"
|
||||||
|
|
||||||
|
# 4️⃣ 打 tag
|
||||||
|
ctr -n "$NAMESPACE" images tag "$ORIGIN_IMG" "$NEW_IMG"
|
||||||
|
|
||||||
|
# 5️⃣ 推送到本地 registry
|
||||||
|
ctr -n "$NAMESPACE" images push --plain-http "$NEW_IMG"
|
||||||
|
|
||||||
|
echo "✅ Done: $NEW_IMG"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "[INFO] 部署本地 Registry 容器..."
|
||||||
|
mkdir -p /opt/registry-data
|
||||||
|
ctr images import $IMAGES_DIR/registry_2.tar
|
||||||
|
ctr container create \
|
||||||
|
--net-host \
|
||||||
|
--mount type=bind,src=/opt/registry-data,dst=/var/lib/registry,options=rbind:rw \
|
||||||
|
docker.io/library/registry:2 \
|
||||||
|
registry-local
|
||||||
|
nohup ctr task start registry-local &
|
||||||
|
|
||||||
|
echo "[INFO] 部署 Storage & Virtualization..."
|
||||||
|
# 安装 Helm
|
||||||
|
cp "$BUNDLE_ROOT/bin/helm" /usr/local/bin/
|
||||||
|
|
||||||
|
# NFS
|
||||||
|
"$BUNDLE_ROOT/bin/helm" install nfs-subdir-provisioner "$BUNDLE_ROOT/charts/nfs-subdir-external-provisioner" \
|
||||||
|
--set nfs.server={{ storage.nfs_server }} \
|
||||||
|
--set nfs.path={{ storage.nfs_path }} \
|
||||||
|
--set storageClass.defaultClass=true
|
||||||
|
|
||||||
|
# KubeVirt
|
||||||
|
kubectl apply -f "$BUNDLE_ROOT/manifests/kubevirt-operator.yaml"
|
||||||
|
kubectl apply -f "$BUNDLE_ROOT/manifests/kubevirt-cr.yaml"
|
||||||
|
|
||||||
|
# Multus
|
||||||
|
kubectl apply -f "$BUNDLE_ROOT/manifests/multus-daemonset.yaml"
|
||||||
|
|
||||||
|
echo "[INFO] 生成 Worker 加入脚本..."
|
||||||
|
kubeadm token create --print-join-command > ../../output/join_cluster.sh
|
||||||
|
chmod +x ../../output/join_cluster.sh
|
||||||
|
echo "Master 部署完成!请检查 kubectl get nodes"
|
||||||
Loading…
x
Reference in New Issue
Block a user