添加qiming-rcoder模块

This commit is contained in:
Codex
2026-06-01 13:54:52 +08:00
parent 8092c4b1f8
commit 4b1a580132
539 changed files with 151650 additions and 0 deletions

View File

@@ -0,0 +1,110 @@
## registry2本地私有镜像仓库
本目录用 docker compose 起一个 `registry:2` 容器,作为局域网内的镜像中转站——既供 docker push 测试用,也可配到 k3s 节点作首选 mirror。
### 地址
- **私有仓库**`192.168.32.228:5000`(本机启动后局域网可达)
- **Web UI**`http://192.168.32.228:5080`(浏览器访问;用于查看仓库/镜像/Tag 等)
### 启动/停止
```bash
cd /home/swufe/gitworkspace/rcoder/k8s/register2
docker compose up -d
docker compose ps
docker compose logs -f
docker compose down
```
数据落地在同目录下的 `./data/` compose 已声明 volume
---
## 作为 k3s 的镜像 mirror
### 架构
```
k3s/containerd (两个节点)
├──(1st) http://192.168.32.228:5000 ← registry2 (本目录, 私有推送)
├──(2nd) http://192.168.32.228:5002 ← registry-cache (pull-through, 可选)
├──(3rd) https://docker.m.daocloud.io / ... ← 公网 cn mirror 回退
└──(4th) https://*.docker.io / registry.k8s.io (默认兜底)
```
containerd 按顺序尝试 endpoint404 自动回退到下一个。
### 一键配置两个节点
```bash
# 1. 启动 registry2
cd k8s/register2 && docker compose up -d
# 2. 给每个 k3s 节点配 mirror (用 REGISTRY_HOST 环境变量)
sudo REGISTRY_HOST=192.168.32.228:5000 \
k8s/scripts/install-k3s-registry-mirrors-cn.sh
# 脚本会:
# - 备份已有 /etc/rancher/k3s/registries.yaml (如有)
# - 写入新配置 (本地 registry 作首选, 公网 cn mirror 兜底)
# - 自动 restart k3s 或 k3s-agent
# - 用 crictl pull 验证 mirror 是否生效
# 3. 配置本机 docker daemon 允许 push 到 HTTP registry
# 编辑 /etc/docker/daemon.json:
# {
# "insecure-registries": ["192.168.32.228:5000"]
# }
sudo systemctl restart docker
```
### 多个 registry 串联
如果同时有 registry2 (5000, 私有存储) 和 registry-cache (5002, pull-through 缓存)
```bash
sudo REGISTRY_HOST=192.168.32.228:5000,192.168.32.228:5002 \
k8s/scripts/install-k3s-registry-mirrors-cn.sh
```
### 验证
```bash
# 1) 推个镜像进去看 5000 是否可用
docker tag busybox:1.36 192.168.32.228:5000/busybox:test
docker push 192.168.32.228:5000/busybox:test
curl -s http://192.168.32.228:5000/v2/_catalog
# 2) k3s 节点上: 用 crictl 拉 (与 kubelet 一致的链路)
sudo crictl --runtime-endpoint unix:///run/k3s/containerd/containerd.sock \
pull 192.168.32.228:5000/busybox:test
# 3) 验证 mirror 路由 (通过 docker.io 间接拉)
sudo crictl --runtime-endpoint unix:///run/k3s/containerd/containerd.sock \
pull docker.io/rancher/mirrored-pause:3.6
```
---
## 与离线 bundle 的联动
配好 registry mirror 后bundle 的 `--mode=registry` 可以直接推到 5000
```bash
tar xzf dist/rcoder-offline-*.tar.gz -C /tmp/offline-test
cd /tmp/offline-test
docker load -i images/all-images.tar
bash rewrite-registry.sh \
--registry 192.168.32.228:5000/rcoder \
--thirdparty-registry 192.168.32.228:5000/thirdparty \
--images-file images/images.txt
# 之后 helm install 时 k3s 会自动从本地 registry 拉, 走内网千兆
helm install rcoder-offline k8s/helm/rcoder \
-f k8s/helm/rcoder/values-dev.yaml \
-f k8s/helm/rcoder/values-offline.yaml \
--set global.imageRegistry=192.168.32.228:5000/rcoder \
--set global.thirdPartyRegistry=192.168.32.228:5000/thirdparty \
--namespace nuwax-rcoder-offline-test --create-namespace
```