当前位置: 首页 > news >正文

突破Docker Hub限制:awx-on-k3s私有容器registry部署与配置

突破Docker Hub限制:awx-on-k3s私有容器registry部署与配置

【免费下载链接】awx-on-k3sAn example implementation of AWX on single node K3s using AWX Operator, with easy-to-use simplified configuration with ownership of data and passwords.项目地址: https://gitcode.com/gh_mirrors/aw/awx-on-k3s

Docker Hub的拉取限制常常让开发者头疼不已,特别是在使用awx-on-k3s部署AWX时,频繁的镜像拉取很容易触发Docker Hub的速率限制,导致部署失败或中断。本文将详细介绍如何在awx-on-k3s项目中部署和配置私有容器registry,彻底解决Docker Hub限制问题,让你的AWX部署更加顺畅和自主。

为什么需要私有容器registry?

当你按照awx-on-k3s仓库的步骤部署AWX时,对Docker Hub的拉取请求会被识别为免费匿名账户,因此每6小时只能请求200次。当出现"429 Too Many Requests"消息时,说明已超出限制。此时,部署一个私有容器registry就成了理想的解决方案,它不仅能突破Docker Hub的限制,还能让你完全掌控自己的镜像数据和访问权限。

私有容器registry部署步骤

准备必要文件

首先,生成自签名证书,注意不能指定IP地址:

REGISTRY_HOST="registry.example.com" openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -out ./registry/tls.crt -keyout ./registry/tls.key -subj "/CN=${REGISTRY_HOST}/O=${REGISTRY_HOST}" -addext "subjectAltName = DNS:${REGISTRY_HOST}"

修改registry/ingress.yaml中的hostshost字段,将registry.example.com替换为你的域名:

... - hosts: - registry.example.com 👈👈👈 secretName: registry-secret-tls rules: - host: registry.example.com 👈👈👈 ...

生成htpasswd字符串,用于容器registry的用户认证:

$ kubectl run htpasswd -it --restart=Never --image httpd:2.4 --rm -- htpasswd -nbB reguser Registry123! reguser:$2y$05$VLMvcWCPF0VUuHi0BXBz7eoXGZ6KRl1gataiqTXz4DdSVIXGloKiq pod "htpasswd" deleted

将生成的htpasswd字符串替换到registry/configmap.yaml中:

... htpasswd: |- reguser:$2y$05$VLMvcWCPF0VUuHi0BXBz7eoXGZ6KRl1gataiqTXz4DdSVIXGloKiq 👈👈👈 ...

创建Persistent Volumes所需的目录:

sudo mkdir -p /data/registry
部署私有容器registry

执行以下命令部署私有容器registry:

kubectl apply -k registry

部署完成后,检查registry命名空间下的资源:

$ kubectl -n registry get all,ingress NAME READY STATUS RESTARTS AGE pod/registry-7457f6c64b-sxqfp 1/1 Running 0 9s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/registry-service ClusterIP 10.43.15.228 <none> 5000/TCP 9s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/registry 1/1 1 1 9s NAME DESIRED CURRENT READY AGE replicaset.apps/registry-7457f6c64b 1 1 1 9s NAME CLASS HOSTS ADDRESS PORTS AGE ingress.networking.k8s.io/registry-ingress <none> registry.example.com 192.168.0.221 80, 443

现在,你的容器registry可以通过指定的主机名(如registry.example.com)使用了。

私有容器registry测试

Docker测试

将你的registry添加为不安全的registry,并重启Docker守护进程:

sudo tee /etc/docker/daemon.json <<EOF { "insecure-registries" : ["registry.example.com"] } EOF sudo systemctl restart docker

登录到你的容器registry:

$ docker login registry.example.com Username: reguser Password: WARNING! Your password will be stored unencrypted in /home/********/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded

测试镜像推送和拉取:

# 从docker.io拉取镜像 docker pull docker.io/docker/whalesay:latest # 标记为私有registry上的镜像 docker tag docker.io/docker/whalesay:latest registry.example.com/reguser/whalesay:latest # 推送到私有registry docker push registry.example.com/reguser/whalesay:latest # 删除本地镜像 docker image rm docker.io/docker/whalesay:latest docker image rm registry.example.com/reguser/whalesay:latest # 从私有registry拉取镜像 docker pull registry.example.com/reguser/whalesay:latest # 运行测试容器 docker run -it --rm registry.example.com/reguser/whalesay:latest cowsay hoge
深入了解Registry

使用reg工具可以更深入地管理容器registry:

# 安装reg sudo curl -fSL https://github.com/genuinetools/reg/releases/download/v0.16.1/reg-linux-amd64 -o /usr/local/bin/reg sudo chmod +x /usr/local/bin/reg # 列出registry中的仓库和标签 reg ls -k registry.example.com reg tags -k registry.example.com/reguser/whalesay # 删除registry中的标签 reg rm -k registry.example.com/reguser/whalesay:latest

配置AWX或K3s使用私有容器registry

这个私有registry不仅可以用作AWX的Execution Environment存储库,还可以作为K3s的私有registry。

配置步骤

创建registries.yaml并重启K3s:

sudo tee /etc/rancher/k3s/registries.yaml <<EOF configs: registry.example.com: auth: username: reguser password: Registry123! tls: insecure_skip_verify: true EOF # 安全重启K3s服务,不会影响正在运行的资源 sudo systemctl restart k3s

检查应用的配置:

sudo $(which k3s) crictl info # 使用jq查看 sudo $(which k3s) crictl info | jq .config.registry

如果希望Kubernetes能够直接从这个私有registry拉取镜像,除了在registries.yaml中写入凭据外,还可以为Pod手动创建imagePullSecrets。关于如何使用ImagePullSecrets,另一篇关于Docker Hub速率限制的指南中有详细解释。

测试配置

使用需要身份验证的私有仓库中的镜像启动Pod:

$ kubectl run whalesay -it --restart=Never --image registry.example.com/reguser/whalesay:latest --rm -- cowsay hoge ______ < hoge > ------ \ \ \ ## . ## ## ## == ## ## ## ## === /""""""""""""""""___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\______/ pod "whalesay" deleted

通过以上步骤,你已经成功部署并配置了awx-on-k3s的私有容器registry,彻底突破了Docker Hub的限制。现在,你可以更自由地管理和使用容器镜像,确保AWX部署和运行的稳定性。

如果你在使用过程中遇到任何问题,可以参考项目中的tips/troubleshooting.md文档获取帮助。同时,tips/dockerhub-rate-limit.md中也提供了更多关于处理Docker Hub速率限制的方法。

希望这篇指南能帮助你顺利搭建自己的私有容器registry,享受更顺畅的AWX部署体验! 🚀

【免费下载链接】awx-on-k3sAn example implementation of AWX on single node K3s using AWX Operator, with easy-to-use simplified configuration with ownership of data and passwords.项目地址: https://gitcode.com/gh_mirrors/aw/awx-on-k3s

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1296834/

相关文章:

  • C#方法:从声明到调用指南
  • 城市生命线采购转向软硬一体,风险评估与监测系统闭环落地
  • Hello,World! [从 0 开始的 C++ 之旅 1.1]
  • 全面掌握NBTExplorer:高效编辑Minecraft游戏数据的跨平台NBT编辑器
  • Zotero插件市场:如何用3个步骤彻底改变你的学术工具管理体验?
  • svmjs实战教程:用JavaScript实现异或问题分类,掌握SVM训练技巧
  • 智能体面试准备(十一):Agent 评估体系——轨迹、工具选择与成功率的量化方法
  • 2026年旧衣服回收能当场拿到现金吗?上门回收流程与平台推荐对比 - 快递物流资讯
  • 揭秘VengeanceUI核心技术:GSAP动画与Three.js 3D效果的完美结合
  • 如何快速安装BetterNCM插件管理器:网易云音乐PC版终极增强指南
  • 从ChatGPT到Codex:AI开发为什么正在进入多Agent协作阶段?
  • 沟槽MOS(Trench MOSFET)——把电流“直译“成效率的秘密
  • IoTaWatt Open WiFi Electric Energy Monitor:打造智能家庭能源管理系统的终极指南
  • 免费解锁9大网盘下载速度!网盘直链下载助手终极使用指南
  • 深入理解C++ const:从语法到实战的常量正确性指南
  • 2026山东舞蹈艺考集训机构盘点:实用选校参考 - 谁都没有我好看
  • 如何快速制作OpenCore引导盘:Windows环境下的完整配置指南
  • 以三件套为起点,燃气安全监管平台如何打通全链条闭环
  • Embedding不是黑箱!:用PyTorch逐层可视化BERT/CLIP/SPLADE向量生成路径(附可复现Notebook)
  • vue-monaco实战案例:构建支持多语言的在线代码编辑平台(附完整代码)
  • 2026 年现阶段,冕宁评价高的移动空调回收挂机空调回收厂家联系方式,这玩意儿还能这么处理?旧空调别乱卖,两种机型回收都能赚外快-添运回收 - 行业严选官
  • 告别APA格式噩梦:Word参考文献一键转换终极指南
  • 分布式事务:从“原子性“到“最终一致“
  • Matlab实现动态系统故障诊断与容错控制技术
  • 4000亿智慧高速大考:一条路500公里,AI算力怎么铺?
  • Parquet Viewer:浏览器端Parquet文件分析的终极指南
  • WinBtrfs实战指南:Windows平台Btrfs文件系统完全手册
  • CH9241实现快充线一拖二
  • 输入输出 [从 0 开始的 C++ 之旅 1.2]
  • 隐患与挑战,从爆发期到主动防御的转型