[转帖]tidb 搭建私有镜像库
https://docs.pingcap.com/zh/tidb/stable/tiup-mirror
在构建私有云时,通常会使用隔离的网络环境,此时无法访问 TiUP 的官方镜像。因此,TiUP 提供了构建私有镜像的方案,它主要由 mirror 指令来实现,该方案也可用于离线部署。使用私有镜像,你可以使用自己构建和打包的组件。
mirror 指令介绍
mirror
指令的帮助文档如下:
克隆镜像
执行 tiup mirror clone
命令,可构建本地地镜像:
target-dir
:指需要把克隆下来的数据放到哪个目录里。global-version
:用于为所有组件快速设置一个共同的版本。
tiup mirror clone
命令提供了很多可选参数,日后可能会提供更多。但这些参数其实可以分为四类:
克隆时是否使用前缀匹配方式匹配版本
如果指定了
--prefix
参数,则会才用前缀匹配方式匹配克隆的版本号。例:指定--prefix
时,填写版本 "v5.0.0" 将会匹配 "v5.0.0-rc", "v5.0.0"是否全量克隆
如果指定了
--full
参数,则会完整地克隆官方镜像。注意如果既不指定
--full
参数,又不指定global-version
或克隆的 component 版本,那么 TiUP 就只会克隆一些元信息。限定只克隆特定平台的包
如果只想克隆某个平台的包,那么可以使用
--os
和--arch
来限定:- 只想克隆 linux 平台的,则执行
tiup mirror clone <target-dir> [global-version] --os=linux
- 只想克隆 amd64 架构的,则执行
tiup mirror clone <target-dir> [global-version] --arch=amd64
- 只想克隆 linux/amd64 的,则执行
tiup mirror clone <target-dir> [global-version] --os=linux --arch=amd64
- 只想克隆 linux 平台的,则执行
限定只克隆组件的特定版本
如果只想克隆某个组件的某一个版本而不是所有版本,则使用
--<component>=<version>
来限定,例如:- 只想克隆 TiDB 的 v7.1.0 版本,则执行
tiup mirror clone <target-dir> --tidb v7.1.0
- 只想克隆 TiDB 的 v7.1.0 版本,以及 TiKV 的所有版本,则执行
tiup mirror clone <target-dir> --tidb v7.1.0 --tikv all
- 克隆一个集群的所有组件的 v7.1.0 版本,则执行
tiup mirror clone <target-dir> v7.1.0
- 只想克隆 TiDB 的 v7.1.0 版本,则执行
克隆完成后,签名密钥会自动设置。
管理私有仓库
你可以通过 SCP 和 NFS 文件共享方式,将 tiup mirror clone
克隆下来的仓库共享给其他主机,也可以通过 HTTP 或 HTTPS 协议来共享。可以使用 tiup mirror set <location>
指定仓库的位置。
如果在执行了 tiup mirror clone
的机器上执行 tiup mirror set
,下次执行 tiup mirror clone
时,机器会从本地镜像而非远程镜像进行克隆。因此,更新私有镜像前,需要执行 tiup mirror set --reset
来重置镜像。
还可以通过 TIUP_MIRRORS
环境变量来使用镜像。下面是一个使用私有仓库运行 tiup list
的例子。
设置 TIUP_MIRRORS
会永久改变镜像配置,例如 tiup mirror set
。详情请参考 tiup issue #651。
更新私有仓库
如果使用同样的 target-dir
目录再次运行 tiup mirror clone
命令,机器会创建新的 manifest,并下载可用的最新版本的组件。
重新创建 manifest 之前,请确保所有组件和版本(包括之前下载的早期版本)都包含在内。
自定义仓库
你可以创建一个自定义仓库,以使用自己构建的 TiDB 组件,例如 TiDB、TiKV 或 PD。你也可以创建自己的 TiUP 组件。
要创建自己的组件,请执行 tiup package
命令,并按照组件打包的说明进行操作。
创建自定义仓库
以下命令在 /data/mirror
目录下创建一个空仓库:
创建仓库时,密钥会被写入 /data/mirror/keys
。
以下命令在 ~/.tiup/keys/private.json
中创建一个私钥:
以下命令为 jdoe
授予 /data/mirror
路径下私钥 ~/.tiup/keys/private.json
的所有权:
使用自定义组件
创建一个名为
hello
的自定义组件:$ cat > hello.c << END > #include <stdio.h> int main() { printf("hello\n"); return (0); } END $ gcc hello.c -o hello $ tiup package hello --entry hello --name hello --release v0.0.1package/hello-v0.0.1-linux-amd64.tar.gz
创建成功。创建一个仓库和一个私钥,并为仓库授予所有权:
$ tiup mirror init /tmp/m $ tiup mirror genkey $ tiup mirror set /tmp/m $ tiup mirror grant $USERtiup mirror publish hello v0.0.1 package/hello-v0.0.1-linux-amd64.tar.gz hello运行组件。如果组件还没有安装,会先下载安装:
$ tiup helloThe component `hello` version is not installed; downloading from repository. Starting component `hello`: /home/dvaneeden/.tiup/components/hello/v0.0.1/hello hello执行
tiup mirror merge
命令,可以将自定义组件的仓库合并到另一个仓库中。这一操作假设/data/my_custom_components
中的所有组件都使用$USER
签名:$ tiup mirror set /data/my_mirror $ tiup mirror grant $USER $ tiup mirror merge /data/my_custom_components
[转帖]tidb 搭建私有镜像库的更多相关文章
- 如何在K8S中优雅的使用私有镜像库 (Docker版)
前言 在企业落地 K8S 的过程中,私有镜像库 (专用镜像库) 必不可少,特别是在 Docker Hub 开始对免费用户限流之后, 越发的体现了搭建私有镜像库的重要性. 私有镜像库不但可以加速镜像的拉 ...
- docker搭建harbor私有镜像库
创建harbor私有镜像库 一.部署准备: harbor软件包 在部署节点上: 1)解压harbor的软件包将harbor目录下所有文件发送到/opt/目录下 tar zxvf harbor- ...
- Docker 安装私有镜像库的简单使用
公司的网络实在是太差了, 想着自己搭建一个私有的镜像库进行使用测试使用.... docker pull registry.docker-cn.com/library/registry docker t ...
- 【Docker】(4)搭建私有镜像仓库
[Docker](4)搭建私有镜像仓库 说明 1. 这里是通过阿里云,搭建Docker私有镜像仓库. 2. 这里打包的镜像是从官网拉下来的,并不是自己项目创建的新镜像,主要测试功能 一.搭建过程 首先 ...
- [转]Ubuntu18.04下使用Docker Registry快速搭建私有镜像仓库
本文转自:https://blog.csdn.net/BigData_Mining/article/details/88233015 1.背景 在 Docker 中,当我们执行 docker pull ...
- 【下一代核心技术DevOps】:(四)私有镜像库阿里云Docker服务使用
1.使用阿里云镜像库有很多优点 稳定可靠,阿里技术,放心使用. 国内cdn多节点加速,下载速度非常快 可以和阿里云Git代码集成,不需要第三方CI工具,当然带的自动构建服务也可以和其他的Git库集成, ...
- docker从私有镜像库pull/push镜像问题:Error response from daemon: Get https://xxxx.com/: x509: certificate signed by unknown authority
docker从私有镜像库pull/push镜像问题:Error response from daemon: Get https://harbor.op.xxxx.com/v2/: x509: cert ...
- ubuntu16搭建harbor镜像库
参考 https://blog.csdn.net/qq_35720307/article/details/86691752 目的:搭建本地镜像库,方便快速的存放和拉取需要的镜像文件.
- 搭建私有maven库发布及使用流程
一:背景 Apache Maven是当Java技术栈前最流行的项目管理工具,它提供了一系列方便快捷的命令帮助程序员们进行Java工程的开发工作.Maven服务器位于美国,由于出国带宽和众多因素,在国内 ...
- 第4篇创建harbor私有镜像库
一.部署准备: 1.准备harbor软件包 在部署节点上: 2.挂载一个磁盘,专门存储harbor镜像和文件 3.进入到/etc/docker/harbor/目 ...
随机推荐
- 斯坦福 UE4 C++ ActionRoguelike游戏实例教程 03.EQS初体验:从智障到智慧
斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 0.绪论 概述 本文章对应课程第十一章 43节.这篇文章会简单介绍EQS和实际上手使用,为AI添加更丰富的行为逻辑. 目录 初识 ...
- Provider的八种提供者
代码 class Example extends StatelessWidget { @override Widget build(BuildContext context) { return Sca ...
- 云图说丨什么是应用身份管理服务OneAccess
摘要: OneAccess是华为云提供的应用身份管理服务,具备集中式的身份管理.认证和授权能力,保证企业用户根据权限访问受信任的云端和本地应用系统,并对异常访问行为进行有效防范,真正做到事前预防.事中 ...
- 云小课|大数据时代的隐私利器-GaussDB(DWS)数据脱敏
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 数据仓库服务Ga ...
- 混合编程:如何用pybind11调用C++
摘要:在实际开发过程中,免不了涉及到混合编程,比如,对于python这种脚本语言,性能还是有限的,在一些对性能要求高的情景下面,还是需要使用c/c++来完成. 本文分享自华为云社区<混合编程:如 ...
- 不会使用Spring的配置文件,赶紧把这个甩给他
摘要:文章从Spring程序的快速使用.Bean标签的使用和其属性的具体使用,每个属性都用代码来解释,运行结果和案例也写的都很明白. 本文分享自华为云社区<怎样使用Spring的配置文件?带大家 ...
- webpack原理(2):ES6 module在Webpack中如何Tree-shaking构建
Tree-shaking 最早由打包工具 Rollup 提出 DCE 作用于模块内(webpack 的 DCE 通过 UglifyJS 完成),而 Tree-shaking 则是在打包的时候通过模块之 ...
- 再谈P2P技术:网络拓扑结构、核心技术分析
随着P2P应用的蓬勃发展,作为P2P应用中核心问题的发现技术除了遵循技术本身的逻辑以外,也受到某些技术的发展趋势.需求趋势的深刻影响. P2P协议概述 P2P打破了传统的Client/Server ( ...
- linux添加用户,修改用户密码,修改用户权限,设置root用户操作
1.添加普通用户 [root@server ~]# useradd chenjiafa //添加一个名为chenjiafa的用户[root@server ~]# passwd chenjiafa ...
- ElasticSearch 实现分词全文检索 - 经纬度定位商家距离查询
目录 ElasticSearch 实现分词全文检索 - 概述 ElasticSearch 实现分词全文检索 - ES.Kibana.IK安装 ElasticSearch 实现分词全文检索 - Rest ...