bugfix
This commit is contained in:
parent
aee0ca2658
commit
99e98e34c8
@ -74,20 +74,5 @@ if [ -f "$BIN_DIR/cni-plugins-linux-amd64-v1.3.0.tgz" ]; then
|
|||||||
tar -C /opt/cni/bin -zxvf "$BIN_DIR/cni-plugins-linux-amd64-v1.3.0.tgz"
|
tar -C /opt/cni/bin -zxvf "$BIN_DIR/cni-plugins-linux-amd64-v1.3.0.tgz"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "[INFO] 5. 导入离线镜像..."
|
|
||||||
if [ -d "$IMAGES_DIR" ]; then
|
|
||||||
for img in "$IMAGES_DIR"/*.tar; do
|
|
||||||
[ -e "$img" ] || continue
|
|
||||||
echo "Importing $img..."
|
|
||||||
ctr -n k8s.io images import "$img"
|
|
||||||
p_img=${img//_//}
|
|
||||||
base_pimg=$(basename p_img)
|
|
||||||
limg="{{registry.ip}}:{{ registry.port}}/$base_pimg"
|
|
||||||
echo "Importing $limg..."
|
|
||||||
ctr -n k8s.io images tag $p_img $limg
|
|
||||||
ctr -n k8s.io images push --plain-http $limg
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "[INFO] 6. 启动 Kubelet..."
|
echo "[INFO] 6. 启动 Kubelet..."
|
||||||
systemctl enable --now kubelet
|
systemctl enable --now kubelet
|
||||||
|
|||||||
10
installer/templates/containerd-registry.service
Normal file
10
installer/templates/containerd-registry.service
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Local Registry using containerd
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/bin/ctr -n default task start registry-local
|
||||||
|
Restart=always
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
@ -32,36 +32,57 @@ chown $(id -u):$(id -g) $HOME/.kube/config
|
|||||||
echo "[INFO] 部署网络插件 (Calico)..."
|
echo "[INFO] 部署网络插件 (Calico)..."
|
||||||
kubectl apply -f "$BUNDLE_ROOT/manifests/calico.yaml"
|
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 容器..."
|
echo "[INFO] 部署本地 Registry 容器..."
|
||||||
# 启动 registry 容器 (假设 registry:2 镜像已导入)
|
mkdir -p /opt/registry-data
|
||||||
# 如果机器上没有 docker 命令,使用 nerdctl 或 ctr 比较麻烦
|
ctr images import $IMAGES_DIR/registry_2.tar
|
||||||
# 这里假设用户在 common.sh 步骤中通过 apt 安装了 containerd.io (含 docker CLI 吗? 不一定)
|
ctr container create \
|
||||||
# 修正:直接使用静态 Pod 或 nerdctl。为简单起见,这里假设 containerd 环境下使用 nerdctl 或者 kubectl 部署
|
--net-host \
|
||||||
# 我们使用 kubectl 部署一个简单的 registry 到本节点
|
--mount type=bind,src=/opt/registry-data,dst=/var/lib/registry,options=rbind:rw \
|
||||||
kubectl apply -f - <<REG_YAML
|
docker.io/library/registry:2 \
|
||||||
apiVersion: v1
|
registry-local
|
||||||
kind: Pod
|
nohup ctr task start registry-local &
|
||||||
metadata:
|
|
||||||
name: local-registry
|
|
||||||
namespace: kube-system
|
|
||||||
labels:
|
|
||||||
app: registry
|
|
||||||
spec:
|
|
||||||
hostNetwork: true
|
|
||||||
containers:
|
|
||||||
- name: registry
|
|
||||||
image: registry:2
|
|
||||||
ports:
|
|
||||||
- containerPort: 5000
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /var/lib/registry
|
|
||||||
name: registry-data
|
|
||||||
volumes:
|
|
||||||
- name: registry-data
|
|
||||||
hostPath:
|
|
||||||
path: /var/lib/registry
|
|
||||||
type: DirectoryOrCreate
|
|
||||||
REG_YAML
|
|
||||||
|
|
||||||
echo "[INFO] 部署 Storage & Virtualization..."
|
echo "[INFO] 部署 Storage & Virtualization..."
|
||||||
# 安装 Helm
|
# 安装 Helm
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user