搭建自己的多平台镜像站

# 1. 拉取代码
$ git clone https://github.com/wzshiming/crproxy.git
$ cd crproxy/examples/default

# 2. 修改网关域名
使用vim编辑start.sh文件,将第五行的gateway变量值修改为你自己设定的域名。
原:gateway=cr.zsm.io 
修改为:gateway=XS.rapha.top #改成你自己的域名

# 3. 启动服务
$ ./start.sh

# 4. 拉取镜像示例
如果域名为xs.rapha.top,可以通过添加前缀的方式拉取镜像
$ docker pull xs.rapha.top/registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.10.1

# 5. 设置别名
如果需要使用前缀替换方式拉取镜像,需要执行setup-alias.sh脚本,并为别名申请证书。

# 6. 重启服务
$ ./reload.sh

这个方式在k8s中不太实用。

推荐别名方式

第一个参数前缀替换的域名 第一个参数是源站的域名 第三个参数是在start.sh脚本里配置的网关域名

./setup-alias.sh k8s-gcr.rapha.top k8s.gcr.io xs.rapha.top

为别名申请证书
update-tls.sh k8s-gcr.rapha.top

最后这样

GETEWAY=rapha.top
DM=xs.rapha.top

./setup-alias.sh docker.${GETEWAY} docker.io ${DM}
./setup-alias.sh gcr.${GETEWAY} gcr.io ${DM}
./setup-alias.sh ghcr.${GETEWAY} ghcr.io ${DM}
./setup-alias.sh k8s-gcr.${GETEWAY} k8s.gcr.io ${DM}
./setup-alias.sh k8s.${GETEWAY} registry.k8s.io ${DM}
./setup-alias.sh quay.${GETEWAY} quay.io ${DM}

./update-tls.sh docker.${GETEWAY}
./update-tls.sh gcr.${GETEWAY}
./update-tls.sh ghcr.${GETEWAY}
./update-tls.sh k8s-gcr.${GETEWAY}
./update-tls.sh k8s.${GETEWAY}
./update-tls.sh quay.${GETEWAY}

#重启服务
./reload.sh

k8s中使用

apiVersion: v1
kind: Namespace
metadata:
  name: registry-proxy

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: registry-proxy
  namespace: registry-proxy

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: registry-proxy
rules:
- apiGroups: [""]
  resources: ["namespaces", "configmaps", "secrets"]
  verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
- apiGroups: ["admissionregistration.k8s.io"]
  resources: ["mutatingwebhookconfigurations"]
  verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: registry-proxy
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: registry-proxy
subjects:
- kind: ServiceAccount
  name: registry-proxy
  namespace: registry-proxy

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: registry-proxy
  namespace: registry-proxy
spec:
  selector:
    matchLabels:
      app: registry-proxy
  template:
    metadata:
      labels:
        app: registry-proxy
    spec:
      serviceAccountName: registry-proxy
      containers:
      - name: registry-proxy
        image: registry.cn-hangzhou.aliyuncs.com/ketches/registry-proxy:v1.2.0
        imagePullPolicy: Always
        resources:
          requests:
            memory: "64Mi"
            cpu: "50m"
          limits:
            memory: "256Mi"
            cpu: "200m"
        ports:
        - containerPort: 443

---
apiVersion: v1
kind: Service
metadata:
  name: registry-proxy
  namespace: registry-proxy
spec:
  selector:
    app: registry-proxy
  ports:
  - port: 443
    targetPort: 443
  type: ClusterIP

会生成一个configmap

#编辑
 kubectl edit cm -n registry-proxy registry-proxy-config
添加你域名

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/702841.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode | 66.加一

这道题有多个思路,可以依次取数组的每一位,乘10后加下一位,直到最后一位,就得到我们数组所表示的数字,然后加一,然后把新得到的数字再转化为对应的数组,我的做法是直接取数组的最后一位&#xf…

快速上手 GreatSQL 8.0.32-25 with openEuler 24.03 LTS

5 月底,openEuler 24.03 LTS 发布,详情戳: 恭喜!openEuler 24.03 LTS 版本发布:首个AI原生开源操作系统 在诸多亮点特性中,有一条值得注意: 集成 GreatSQL 数据库,适用于金融级应用场…

小程序 js+Canvas 绘制半圆环虚线进度条

效果图: 思路:过程分为三步,第1步,先画虚线底部背景,第2步,画动态的虚线(已选虚线蓝颜色),第3步,画动态的外标(已选虚线外位置的标)&a…

面向对象编程

文章目录 面向对象编程是怎么回事:面向对象编程的好处是:对象是啥,如何得到?运行原理代码举例注意事项:空指针异常 黑马学习笔记 面向对象编程是怎么回事: 祖师爷 詹姆斯高斯林 认为万物皆对象&#xff0c…

[next.js] svgr/webpack

nextjs如何配置svg文件,使其像react组件一样导入? 当前next.js 开发环境我使用了--turbo 来开启turbopack加速文件构建,所以之前的一些webpack loader之类的无法正常工作。通过搜索发现一般都是使用svgr/webpack来处理svg,打开svgr官网发现…

Stable Diffusion: ControlNet 插件安装

前面介绍了一些通过代码实现ControlNet进行控制的案例。现在通过Stable Diffusion体验一下更便捷的操作。 Stable Diffusion插件安装办法大致相同。启动Stable Diffusion后,点击最右边的“扩展”,点击“可下载”,点击“加载扩展列表”。 视网…

Linux服务器安装Jupyter,并设置公网访问详细教程

本章教程,主要介绍如何在Linux服务器上安装jupyter,并可以通过公网地址进行访问。 一、安装jupyter pip install jupyter二、生成jupyter配置文件 jupyter notebook --generate-config三、编辑这个配置文件 找到配置文件并修改以下配置项: # 允许所有 IP 地址访问 c.Noteb…

【Java面试】十九、并发篇(下):线程池

文章目录 1、为什么要使用线程池2、线程池的执行原理2.1 七个核心参数2.2 线程池的执行原理 3、线程池用到的常见的阻塞队列有哪些4、如何确定核心线程数开多少个?5、线程池的种类有哪些?6、为什么不建议用Executors封装好的静态方法创建线程池7、线程池…

【C++ | 左值、右值】一文了解C++的左值、右值、左值引用()、右值引用()

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 ⏰发布时间⏰:2024-06-12 1…

鸿蒙轻内核A核源码分析系列五 虚实映射(5)虚实映射解除

虚实映射解除函数LOS_ArchMmuUnmap解除进程空间虚拟地址区间与物理地址区间的映射关系,其中参数包含MMU结构体、解除映射的虚拟地址和解除映射的数量count,数量的单位是内存页数。 ⑴处函数OsGetPte1用于获取指定虚拟地址对应的L1页表项数据。⑵处计算需要解除的无效…

python实现高斯(Gauss)迭代自动计算

实现高斯(Gauss)迭代自动计算 输入系数矩阵mx、值矩阵mr、迭代次数n,即可得到答案。本人在原博主的代码基础上优化了数据输出形式,原文链接:python实现高斯(Gauss)迭代法_python中gausspp-CSDN博客 运算结果如下图&am…

家用洗地机怎么选?四大行业精品集合,识别度超高

家用洗地机,作为一种能够高效清洁地面的清洁工具,不仅减轻了人们家务的轻度,也给人们腾出了很多空闲的时间去享受生活。但是洗地机那么多,我们在面对洗地机选购的时候,我们应该要注意哪些呢?下面就为大家详…

游戏研发(策略+sass+回调模式)

前言 由于这边需要对接游戏研发后台,基本就是开服,封禁.角色日志等,但是每个游戏提供的接口都是不一样的,所以为了统一处理提前进行sass封装,以便后续可以更好的兼容 同时还涉及了多数据源的问题,因为有些日志太大不可能直接去http调用,会使用直接查询游戏研发的数据库方式这一…

从零实现KV存储项目实战

本项目是从零实现一个完整的、兼容Redis协议的KV数据库项目。 通过每一行代码的编写。你会对整个系统了如指拿,这样对自己基本功的锻炼、对编程能力的提升都是很大的 项目提供完整的视频教程代码 下面是关于KV存储项目的技术大纲: 如果你在学习的过程…

BUAA-2024年春-OO第四单元总结

正向建模与开发 在本单元中,我们需要模拟一个小型的图书管理系统,完成图书馆所支持的相关业务,并遵守一定的规章制度。与前几次不同的是,本单元中,我们需要预先将自己的设计思路用UML来实现,然后进行编程。…

Ecovadis审核的内容

Ecovadis审核的内容。Ecovadis是一家国际性的企业社会责任评估机构,旨在为全球供应链的可持续性发展提供评估和审核。在本文中,我们将从以下几个方面详细介绍Ecovadis审核的内容: 一、Ecovadis审核的范围和目的 Ecovadis审核的范围涵盖了各个…

EMI电路

PFC 功率部分 1 、整流桥是串联 2 、 PFC 电感串联 3 、二极管并联 4 、 MOSFET 并联 EMI电路图

C++中的结构体——结构体嵌套结构体

作用:结构体中的成员可以是另一个结构体 例如:每一个老师辅导一个学生,每个老师的结构体中,记录一个学生的结构体 示例 运行结果

springboot二屯村钓鱼场管理系统-计算机毕业设计源码58167

摘 要 在互联网时代的来临,电子商务的骤起,一时间网络进行购物这一形式备受欢迎,到现在,网购更是普及。现如今各个行业也通过网购的方式来进行拓展业务,增加企业的知名度以及提升业绩,满足了用户像网购一样…

云原生应用开发培训,开启云计算时代的新征程

在云计算时代,云原生应用开发技术已经成为IT领域的热门话题。如果您想要转型至云原生领域,我们的云原生应用开发培训将帮助您开启新征程。 我们的课程内容涵盖了云原生技术的基础概念、容器技术、微服务架构、持续集成与持续发布(CI/CD&#…