Merge pull request #15 from svc-design/codex/根据节点ip选择镜像地址

Implement automatic LabRing registry selection
This commit is contained in:
shenlan 2025-06-25 22:05:50 +08:00 committed by GitHub
commit b28e1e5ae8
4 changed files with 31 additions and 9 deletions

View File

@ -20,10 +20,11 @@ can be overridden to any compatible release.
The following command is used to create the cluster (example with one master and one worker):
```bash
REGISTRY=$(scripts/get_labring_registry.sh)
sealos run \
registry.cn-shanghai.aliyuncs.com/labring/kubernetes:<kubernetes_version> \
registry.cn-shanghai.aliyuncs.com/labring/cilium:<cilium_version> \
registry.cn-shanghai.aliyuncs.com/labring/helm:<helm_version> \
${REGISTRY}/kubernetes:<kubernetes_version> \
${REGISTRY}/cilium:<cilium_version> \
${REGISTRY}/helm:<helm_version> \
--masters 172.16.11.120 \
--nodes 172.16.11.152 \
--env '{}' \

View File

@ -39,12 +39,18 @@
executable: /bin/bash
when: inventory_hostname == (ops_host | default(master_ips | first))
- name: Determine LabRing registry prefix
shell: "{{ role_path }}/../../../../scripts/get_labring_registry.sh"
register: labring_registry
changed_when: false
when: inventory_hostname == (ops_host | default(master_ips | first))
- name: Run sealos to create Kubernetes cluster
shell: |
sealos run \
registry.cn-shanghai.aliyuncs.com/labring/kubernetes:{{ kubernetes_version }} \
registry.cn-shanghai.aliyuncs.com/labring/cilium:{{ cilium_version }} \
registry.cn-shanghai.aliyuncs.com/labring/helm:{{ helm_version }} \
{{ labring_registry.stdout }}/kubernetes:{{ kubernetes_version }} \
{{ labring_registry.stdout }}/cilium:{{ cilium_version }} \
{{ labring_registry.stdout }}/helm:{{ helm_version }} \
--masters {{ master_ips | join(',') }} \
--nodes {{ node_ips | join(',') }} \
--env '{{ sealos_cmd_env }}' \

View File

@ -12,8 +12,11 @@ sealos load -i sealos-helm.tar
sealos load -i sealos-k8s-1.25.16.tar
# 单机部署(单机部署无需ssh密码root用户本机直接执行即可)
# 根据节点 IP 所在地区自动选择拉取镜像的仓库
REGISTRY_PREFIX=$(dirname "$0")/../get_labring_registry.sh
REGISTRY_PREFIX=$("$REGISTRY_PREFIX")
sealos run \
registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.25.16 \
registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 \
registry.cn-shanghai.aliyuncs.com/labring/calico:v3.24.1 \
${REGISTRY_PREFIX}/kubernetes:v1.25.16 \
${REGISTRY_PREFIX}/helm:v3.9.4 \
${REGISTRY_PREFIX}/calico:v3.24.1 \
--single

12
scripts/get_labring_registry.sh Executable file
View File

@ -0,0 +1,12 @@
#!/bin/bash
# Determine the appropriate LabRing container registry based on geolocation.
# Defaults to the Chinese mainland registry.
REGISTRY_CN="registry.cn-shanghai.aliyuncs.com/labring"
REGISTRY_INT="ghcr.io/labring"
# Query external service for country code; fall back to CN on failure.
COUNTRY=$(curl -fsSL https://ipapi.co/country/ 2>/dev/null || echo "")
if [ "$COUNTRY" = "CN" ]; then
echo "$REGISTRY_CN"
else
echo "$REGISTRY_INT"
fi