生产环境迁移——harbor篇

         这些年环境迁移干了很多,但是没有总结,想想还是记录一下,以前是下属做,自己统筹就行,现在就剩下孤家寡人了,只好都自己做。还是完整记录下来,供有缘人参考。其实我也是搭了个草台班子。

1 安装docker

        很多人都是简单直接安装docker,其实是不对的,因为首先知道那个目录的磁盘空间较大,否则磁盘满了,还得费二遍事。下面是我的磁盘情况,各位可能是不同,需要注意这一点。

 命令如下

yum -y install yum-utils device-mapper-persistent-data lvm2
# 这个是我的磁盘目录,不要照抄
mkdir -p /home/docker
#
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache
yum install docker-ce docker-ce-cli containerd.io -y

# 更改配置
vi /lib/systemd/system/docker.service

       在下图位置添加--data-root /home/docker,再次强调这里你们自己的目录,这个是docker文件目录。

         启动docker

systemctl daemon-reload
# 启动命令
systemctl start docker
# 开机启动
systemctl enable docker

        由于docker19.03.8已经下载不了了,

# 源服务器是centos,使用yumdownloader将docker的rpm包下载下来。
yum install -y yum-utils
sudo yumdownloader docker-ce-19.03.8-3.el7 docker-ce-cli-19.03.8-3.el7 containerd.io

2 rsync文件同步

        在源和目标的服务器都需要安装上rsync

yum install rsync -y

        exsi主机比较容易,之前在线迁移就行,但是物理机就不行。先查看源服务器上内容,

        执行同步命令,这种复制文件方式都需要思考,源服务器有啥就复制啥。

# 同步docker-compose文件
rsync -avz docker-compose root@10.101.10.2:/home/harbor
# 同步harbor安装相关文件
rsync -avz harbor root@10.101.10.2:/home/harbor

        下面是harbor目录的内容 

        直接同步harbor的数据文件,这个时候就需要思考harbor数据文件是在哪里指定的,很显然就是harbor.yml中。

3 安装docker-compose

chmod +x docker-compose
cp -a docker-compose /usr/bin
docker-compose  -v

4 harbor恢复

        上面是直接使用rsync做的文件级别同步,如何将harbor恢复呢?

        更改hostname和http端口,因为之前使用exsi做的虚拟机,80和443端口可以随便,但是现在是物理机,就不能这么干了。

        更改数据目录

        新增daemon.json配置,下面的配置现在可能docker有什么限制下载不下来,可以参考Error response from daemon: Get “https://registry-1.docker.io/v2/“: net/http: request cancele 报错

cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://2b5ean3t.mirror.aliyuncs.com"],
  "insecure-registries": ["10.101.12.2", "10.101.12.200"],
  "max-concurrent-downloads": 10,
  "max-concurrent-uploads": 10,
  "log-driver": "json-file",
  "log-level": "info",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  },
  "storage-driver": "overlay2"
}
EOF

systemctl daemon-reload
systemctl restart docker

         有些情况下修改了daemon配置可以启动不了,一个可能是文件拼写错误,一个是docker版本不同参数页不同,这个是否执行journalctl -u docker.service --no-pager,查看详细的错误日

        harbor的开启关闭如下:

# 启动
cd /home/harbor/harbor
# 首次需要执行./prepare,后面就不需要了
./prepare 
# 启动
docker-compose up -d
# 关闭
docker-compose down

          安装过程如下

        启动之后就可以看到端口变为了8081 

        登录到界面,可以看到镜像已经还原了。

5 Jenkins关联更改 

5.1 harbor镜像的全局路径配置

        在configure system中自定义全局变量docker_repository

        这个跟自己发布程序有关,可以看到py脚本如下,下面的代码在拼接。

5.2 jenkins访问harbor权限 

        打包发现访问异常。

        需要在jenkins中需要daemon.json中文件中添加需要连接harbor的ip:port,因为我已经把端口改成8081,不再是80,所以需要显式写明。

​ 

        另外需要在此台机器上做一下登录docker login 10.101.12.2:8081,再次编译harbor上传成功。

6 k8s关联更改

        虽然镜像已经推送到harbor中,但因为自动化部署脚本是通过k8s提供的api,故而k8s的环境也需要更改。从下图可以看到harbor镜像pull失败。

6.1 kuboard连接docker仓库配置

        这个是原来的配置

,将这个删掉重新创建

k8s可以通过imagePullSecrets获取harbor私库的凭证认证。下面的脚本需要在k8s的主节点执行

# 这个跟上面的jenkins一样,把harbor的ip:port写入到insecure-registries,这样内部访问就不需要SSL了
vi /etc/docker/daemon.json
systemctl daemon-reload
systemctl restart docker

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

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

相关文章

电脑问题4[非华为电脑安装华为电脑管家华为荣耀手机多屏协助]

非华为电脑安装华为电脑管家华为荣耀手机多屏协助 我是荣耀手机之前一直用的是window的"连接手机"功能,电脑控制手机还蛮好用,但是又不能够没有好的电脑控制手机的功能,后来想了想看了看,竟然安装了华为电脑关键,竟然可以顺利连接上荣耀手机,发现还蛮好用! 本文引用…

KeyFormer:使用注意力分数压缩KV缓存

Keyformer: KV Cache Reduction through Key Tokens Selection for Efficient Generative Inference 202403&#xff0c;发表在Mlsys Introduction 优化KV cache的策略&#xff0c;主要是集中在系统级别的优化上&#xff0c;比如FlashAttention、PagedAttention&#xff0c;它…

linux ibus rime 中文输入法,快速设置为:默认简体 (****)

本文环境&#xff1a; ubuntu 22.04 直接 apt install ibus-rime 输入法的安全性&#xff0c;人们应该关注吧&#xff01;&#xff01;&#xff1f;&#xff1f; 云输入法&#xff1f;将用户的输入信息传输到云端吗&#xff1f; Rime 等的一些输入法&#xff0c;是本地的&…

【python从入门到精通】-- 第七战:字典

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;重生之我在学Linux&#xff0c;C打怪之路&#xff0c;python从入门到精通&#xff0c;数据结构&#xff0c;C语言&#xff0c;C语言题集&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持…

海外本地化呼叫中心有哪些独特优势?

随着全球化的深入推进&#xff0c;企业越来越注重拓展海外市场&#xff0c;而海外本地化呼叫中心作为企业海外拓展的重要工具&#xff0c;其独特优势逐渐凸显。沃丰科技呼叫中心系统凭借其先进的功能和卓越的服务质量&#xff0c;为众多企业提供了完美的解决方案。 语言与文化…

优选算法——分治(归并)

1. 归并排序 题目链接&#xff1a;912. 排序数组 - 力扣&#xff08;LeetCode&#xff09; 题目展示&#xff1a; 题目分析&#xff1a;这里我们直接来实现归并排序即可&#xff1b; 代码实现&#xff1a; class Solution {vector<int> tmp;//在全局创建辅助数组&…

Java从入门到工作1 - 语法

1.1、注解 注解困扰了我很长时间&#xff0c;看了一堆概念。要理解注解&#xff0c;首先得理解两个概念元数据和反射机制 元数据是关于数据的数据。它提供了关于其他数据的信息或描述。例如&#xff0c;在数据库中&#xff0c;记录的结构&#xff08;字段类型、字段名称等&am…

MySQL其五,索引详解,逻辑架构,SQL优化等概念

目录 一、索引 1、索引的概念 2、索引的优缺点 3、添加索引的原则 4、索引的分类 5、索引如何使用 6、存储过程讲解 7、测试索引的效率 7、索引的数据结构 8、覆盖索引&#xff08;SQL优化的点&#xff09; 9、最佳左前缀法则&#xff08;SQL优化的点&#xff09; 二…

简单的go写的websocket协议 im 聊天 服务,流程简单清晰,采用golang编写,flutter im客户端。免费开源哈,随意用

mini-im 1、说明&#xff1a; 项目地址&#xff1a;https://github.com/haomiao33/minim 1.1、项目介绍&#xff1a; 简单的go写的im服务&#xff0c;流程简单清晰,大部分接口使用的是http&#xff0c;方便流程控制。login服务目前只是用来做服务端推送消息通知到客户端。本…

多音轨视频使用FFmpeg删除不要音轨方法

近期给孩子找宫崎骏动画&#xff0c;但是有很多是多音轨视频但是默认的都是日语&#xff0c;电视上看没办法所以只能下载后删除音轨文件只保留中文。 方法分两步&#xff0c;先安装FFmpeg在转文件即可。 第一步FFmpeg安装 FFmpeg是一个开源项目&#xff0c;包含了处理视频的…

GitHub企业版:AWS CodeCommit迁移的最佳路径与技术优势

此前&#xff0c;亚马逊网路服务&#xff08;AWS&#xff09;宣布&#xff0c;自2024年7月25日起&#xff0c;AWS CodeCommit不再接受新客户。虽然现有客户可以继续使用该服务&#xff0c;且其安全性、可用性和性能将得到维护&#xff0c;但AWS将不再推出新功能或接受新用户。 …

龙旗科技社招入职测评:言语理解材料计算图形推理真题北森题库考什么?

龙旗科技社招入职测评北森题库主要考察以下几个方面&#xff1a; 1. **言语逻辑**&#xff1a;这部分的考试时间是10分钟&#xff0c;需要完成10道题目。每题的作答时间被限定为60秒&#xff0c;一旦提交后无法返回修改。题目类型包括总结中心思想、选词填空和推理文章意思。考…

并发编程中数据的可见性

一、什么是并发编程的可见性&#xff1f; 在并发编程中&#xff0c;“可见性”是指一个线程对共享变量的修改是否能被其他线程及时看到的特性。 二、不可见情况的测试 现在设置成员属性flagtrue&#xff0c;如果flagtrue则t1线程一直死循环执行任务&#xff0c;main线程设置fl…

不配置python环境,直接用PyCharm就可以?

有的伙伴可能遇到不安装python环境只安装pycharm也可以进行运行代码。 所以自认为是不需要解释器就可以运行&#xff1f; 这个是不现实的&#xff0c;有很多伙伴可能是安装了Pycharm&#xff0c;但Pycharm看你电脑上没有解释器&#xff0c;所以在安装的时候给你默认安装在C盘…

C语音顺序表专题及应用

数据结构引进 0数据结构相关概念 0.1什么是数据结构 数据结构是由“数据”和“结构”两词组合而来。 什么是数据&#xff1f;常见的数值1、2、3、4…、教务系统⾥保存的用户信息&#xff08;姓名、性别、年龄、学历等等&#xff09;、网页肉眼可以看到的信息&#xff08;⽂字…

单元测试总结

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 Hello&#xff01;大家好&#xff0c;我是一个专注于分享软件测试干货的测试开发。 对于软件测试&#xff0c;我们先按照开发阶段来进行划分&#xff0c;将软件测…

immaculate C# DragDrop 注册失败 解决 C#窗口程序如何看控制台打印的日志

C# DragDrop 注册失败 System.InvalidOperationExceptionHResult0x80131509MessageDragDrop 注册失败。SourceSystem.Windows.FormsStackTrace:在 System.Windows.Forms.Control.SetAcceptDrops(Boolean accept)在 System.Windows.Forms.Control.OnHandleCreated(EventArgs e)…

怎样衡量电阻负载的好坏

电阻负载的好坏通常通过以下几种方法来衡量&#xff1a; 1. 测量电阻值&#xff1a;最直接的方法是使用万用表来测量电阻负载的电阻值。将万用表设置在适当的电阻档位&#xff0c;然后将测试笔连接到电阻负载的两个引脚上。如果电阻负载是好的&#xff0c;那么万用表应该显示一…

酒蒙子骰子小程序系统

酒蒙子流量变现小程序小游戏 后端tp8 前端uniapp 会员变现 分销推广 流量主 …

Spring Boot 3.x:自动配置类加载机制的变化

随着 Spring Boot 3.x 版本的发布&#xff0c;Spring Boot 引入了一些关键的变更。其中最重要的一项变更是 自动配置类的加载机制。在之前的版本中&#xff0c;Spring Boot 使用 spring.factories 文件来管理自动配置类的加载。然而&#xff0c;在 Spring Boot 3.x 中&#xff…