You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

2.6 KiB

Container Registry 部署指南(測試環境 - 無認證)

快速部署私有 Container Registry,適用於內部測試環境。

⚠️ 注意: 此版本無認證保護,僅適用於內部網路測試環境
生產環境請參考:091-registry-install-guide-prod.md


環境說明

  • 部署節點: 10.10.0.85
  • 服務 Port: 50000
  • 數據目錄: /srv/registry
  • 認證: 無 (開放存取)

安裝步驟

1. 建立數據目錄

10.10.0.85 上執行:

sudo mkdir -p /srv/registry

2. 啟動 Registry 容器

sudo podman run -d \
  --name registry \
  --restart=always \
  -p 50000:5000 \
  -v /srv/registry:/var/lib/registry \
  docker.io/library/registry:2

3. 驗證服務

# 檢查容器狀態
sudo podman ps | grep registry

# 測試 API
curl http://10.10.0.85:50000/v2/
# 應回傳: {}

Kubernetes 節點配置

在所有 K8s 節點上 (doris-f01 ~ f03, doris-b01 ~ b04) 執行:

方法 1: 修改 config.toml(推薦)

# 編輯 Containerd 配置檔
sudo vi /etc/containerd/config.toml

# 在檔案最後加入以下內容:
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."10.10.0.85:50000"]
  endpoint = ["http://10.10.0.85:50000"]

# 重啟 Containerd
sudo systemctl restart containerd

方法 2: 使用 hosts.toml

sudo mkdir -p /etc/containerd/certs.d/10.10.0.85:50000
sudo tee /etc/containerd/certs.d/10.10.0.85:50000/hosts.toml <<EOF
server = "http://10.10.0.85:50000"

[host."http://10.10.0.85:50000"]
  capabilities = ["pull", "resolve", "push"]
  skip_verify = true
EOF

sudo systemctl restart containerd

💡 提示: 方法 1 更簡單且已驗證可用


測試驗證

推送測試映像

# 標記映像
podman tag alpine:latest 10.10.0.85:50000/test-alpine:latest

# 推送映像
podman push 10.10.0.85:50000/test-alpine:latest --tls-verify=false

# 驗證
curl http://10.10.0.85:50000/v2/_catalog
# 應回傳: {"repositories":["test-alpine"]}

從 K8s 節點拉取

# 在任一 K8s 節點上
sudo crictl pull 10.10.0.85:50000/test-alpine:latest

# 檢查映像列表
sudo crictl images | grep 10.10.0.85

常見問題

無法拉取映像

# 檢查節點配置
sudo cat /etc/containerd/certs.d/10.10.0.85:50000/hosts.toml

# 重啟 Containerd
sudo systemctl restart containerd

檢查 Registry 日誌

sudo podman logs registry | tail -20

生產環境部署: 請參考 091-registry-install-guide-prod.md