ARM架构-银河麒麟v10-server离线安装Harbor

咱也刚接触Harbor,在x86上部署倒是没什么问题,在arm上部署还是费了一些事的,趟了一些小坑,基本填平,小白学习中,请多指教。

目录

  1. 安装docker-compose环境

2.harbor离线安装准备

3.Https方式部署

3.1 生成CA证书私钥

3.2 生成CA证书

3.3 生成一个x509 v3扩展文件

3.4 使用该v3.ext文件为您的Harbor主机生成证书

3.4 重新启动Docker Engine

  1. 修改harbor.yml配置文件

  2. 执行harbor部署

  3. 查看harbor安装情况

  4. redis一直处于restarting

  5. hosts中配置harbor域名

  6. 在控制台登录harbor

  7. 安装docker-compose环境
    安装docker-compose

cd /root/k8s/docker-compose/
cp ./docker-compose-linux-aarch64 ./docker-compose
mv docker-compose /usr/local/bin/
chmod +x /usr/local/bin/docker-compose
docker-compose -v //查看版本

2.harbor离线安装准备
准备harbor离线包及部分镜像包

ps:harbor-arm安装包也是找了好久的,官方的包貌似更适配x86架构,在百度茫茫博客中找到了一个arm架构的包,倒也不是完全适配的,又后续替换了redis,补充了trivy,才算是齐备的harbor-arm安装包啦~

言归正传~Harbor有两种部署方式:http和https,经过尝试已知http方式只能部署harbor,无法登陆harbor仓库,对于我而言,并不能解决我的问题,安装方式也极其简单,此处不再进行记录;https方式可以实现仓库登陆,但是配置过程更加复杂,但是没有办法,我也只能采用这种方式。

哒哒哒哒~拿到安装包的第一步当然是解压看看里面的内容!

3.Https方式部署
默认情况下,Harbor不附带证书。要配置HTTPS,必须创建SSL证书。可以使用由受信任的第三方CA签名的证书,也可以使用自签名证书。本节介绍如何使用OpenSSL创建CA,以及如何使用CA签署服务器证书和客户端证书。您可以使用其他CA提供程序,例如Let’s Encrypt。

可以以registry.harbor.com域名为例进行配置,也可以直接使用IP地址代替域名配置https,但在生成证书时有两处配置稍有不同。

官方文档:https://goharbor.io/docs/2.0.0/install-config/configure-https/

在生产环境中,您应该从CA获得证书。在测试或开发环境中,您可以生成自己的CA。要生成CA证书,请运行以下命令。

3.1 生成CA证书私钥
#创建目录保存证书(可选)

mkdir -p /root/harbor/ssl
cd /root/harbor/sslopenssl genrsa -out ca.key 4096

3.2 生成CA证书
调整-subj选项中的值以反映您的组织。如果使用FQDN连接Harbor主机,则必须将其指定为通用名称(CN)属性。

 
openssl req -x509 -new -nodes -sha512 -days 3650 \-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=registry.harbor.com" \-key ca.key \-out ca.crt

如果使用IP地址,需要在执行以上命令前执行以下操作:

 
cd /root
openssl rand -writerand .rnd
cd -

生成服务器证书

证书通常包含一个.crt文件和一个.key文件,例如yourdomain.com.crt和yourdomain.com.key。

1、生成私钥。

 
openssl genrsa -out registry.harbor.com.key 4096

2、生成证书签名请求(CSR)。

调整-subj选项中的值以反映您的组织。如果使用FQDN连接Harbor主机,则必须将其指定为通用名称(CN)属性,并在密钥和CSR文件名中使用它。

openssl req -sha512 -new \-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=registry.harbor.com" \-key registry.harbor.com.key \-out registry.harbor.com.csr

3.3 生成一个x509 v3扩展文件
无论您使用FQDN还是IP地址连接到Harbor主机,都必须创建此文件,以便可以为您的Harbor主机生成符合主题备用名称(SAN)和x509 v3的证书扩展要求。替换DNS条目以反映您的域。

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=registry.harbor.com
DNS.2=registry.harbor
DNS.3=harbor
EOF如果使用ip,需要使用如下方式进行创建:cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = IP:192.168.93.9
EOF

3.4 使用该v3.ext文件为您的Harbor主机生成证书
将yourdomain.comCRS和CRT文件名中的替换为Harbor主机名。

openssl x509 -req -sha512 -days 3650 \-extfile v3.ext \-CA ca.crt -CAkey ca.key -CAcreateserial \-in registry.harbor.com.csr \-out registry.harbor.com.crt

提供证书给Harbor和Docker

生成后ca.crt,yourdomain.com.crt和yourdomain.com.key文件,必须将它们提供给harbor和docker,和重新配置harbor使用它们。

1、将服务器证书和密钥复制到Harbor主机上的certficates文件夹中。

mkdir -p /data/cert
cp registry.harbor.com.crt /data/cert/
cp registry.harbor.com.key /data/cert/

2、转换yourdomain.com.crt为yourdomain.com.cert,供Docker使用。
Docker守护程序将.crt文件解释为CA证书,并将.cert文件解释为客户端证书。

 
openssl x509 -inform PEM -in registry.harbor.com.crt -out registry.harbor.com.cert

3、将服务器证书,密钥和CA文件复制到Harbor主机上的Docker证书文件夹中。您必须首先创建适当的文件夹。

mkdir -p /etc/docker/certs.d/registry.harbor.com/
cp registry.harbor.com.cert /etc/docker/certs.d/registry.harbor.com/
cp registry.harbor.com.key /etc/docker/certs.d/registry.harbor.com/
cp ca.crt /etc/docker/certs.d/registry.harbor.com/

如果将默认nginx端口443映射到其他端口,请创建文件夹/etc/docker/certs.d/yourdomain.com:port或/etc/docker/certs.d/harbor_IP:port。(省略)

3.4 重新启动Docker Engine
systemctl restart docker
4. 修改harbor.yml配置文件
跳转到harbor所在的目录,没有所谓的harbor.yml,但是有harbor.yml.tmpl,那就cp出harbor.yml,并修改文件中的hostname及https下的证书路径:

cd /root/k8s/harbor230/harbor并cp harbor.yml.tmpl harbor.yml#只需修改hostname及https下的证书路径即可,其他保持默认[root@harbor harbor]# vi harbor.yml
# Configuration file of Harbor# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: registry.harbor.com# http related config
http:# port for http, default is 80. If https enabled, this port will redirect to https portport: 80# https related config
https:# https port for harbor, default is 443port: 443# The path of cert and key files for nginxcertificate: /data/cert/registry.harbor.com.crtprivate_key: /data/cert/registry.harbor.com.key
...
  1. 执行harbor部署
./install.sh --with-trivy

因为我这边的需求要实现镜像扫描,所以我是安装了扫描器的:trivy,安装包需要特地下载一下的。

  1. 查看harbor安装情况
    #在harbor文件夹下使用docker-compose命令,也是在实践过程中发现docker-compose要在docker-compose所在的目录下才能使用,也不知道是我的问题还是它的问题。
docker-compose ps
  1. redis一直处于restarting
#如果redis一直是restarting的状态:
[root@harbor230 ~]# docker load < trivy-adapter-photon_v2.3.4.tar
[root@harbor230 ~]# docker load < redis.tar    #加载新下载的redis-arm的镜像包#将之前harbor安装包自带的redis容器删除掉,并将新下载的redis重新打上标签,使用新的redis镜像包
docker rmi -f goharbor/redis-python:v2.3.4的镜像ID
docker stop 正在运行的容器ID
docker rm 正在运行的容器id
docker rmi -f goharbor/redis-python:v2.3.4的镜像ID
docker tag redis:latest goharbor/redis-python:v2.3.4#重启harbor组件镜像包:
docker-compose down -v
docker-compose up -d
8. hosts中配置harbor域名
#在hosts文件加入以下内容
192.168.0.190 registry.harbor.com

#hosts是系统文件,修改后,需要重启主机
reboot
9. 在控制台登录harbor

docker login registry.harbor.com
Username: admin
Password: Harbor12345
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded

至此,harbor算是可以使用啦~~~在网页端通过域名或地址访问就好啦

~~地址访问:https://192.168.0.190:443

~~域名访问:应该是需要给浏览器配置一下ca证书

某些浏览器可能会显示警告,指出证书颁发机构(CA)未知。使用不是来自受信任的第三方CA的自签名CA时,会发生这种情况。可以将CA导入浏览器以删除警告。

注意,这里的CA证书位于harbor节点/root/harbor/ssl/ca.crt。

以chrome浏览器导入证书为例,搜索栏输入以下内容,下拉选择管理证书,选择受信任的证书颁发机构,然后导入ca.crt重启浏览器使用域名访问即可。

chrome://settings/security

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在斯坦福,做 Manning 的 phd 要有多强?

文 | 付瑶编 | 小轶博士的毕业论文是我们博士学位教育重要的一环&#xff0c;不仅仅是获得学位的最后一个难关&#xff0c;也是读博期间工作的总结展现。那么一个优秀的博士在读博期间会做出多少成果&#xff1f;ta 的博士论文又长什么样&#xff1f;今天&#xff0c;让我们打开…

LeetCode 655. 输出二叉树(二叉树高度二叉树遍历)

1. 题目 在一个 m*n 的二维字符串数组中输出二叉树&#xff0c;并遵守以下规则&#xff1a; 行数 m 应当等于给定二叉树的高度。列数 n 应当总是奇数。根节点的值&#xff08;以字符串格式给出&#xff09;应当放在可放置的第一行正中间。根节点所在的行与列会将剩余空间划分…

pyhon爬虫—爬取原创力文档(全面解析)

https://blog.csdn.net/weixin_46184311/article/details/115291441

开源开放 | 计算机科学示意图问答数据集CSDQA(CCKS2021)

OpenKG地址&#xff1a;http://openkg.cn/dataset/csdqa开源地址&#xff1a;http://zscl.xjtudlc.com:888/CSDQA/开放许可协议&#xff1a;CC BY-SA 4.0 &#xff08;署名相似共享&#xff09;贡献者&#xff1a;西安交通大学(王绍伟、张玲玲、杨祎、胡欣、秦涛、魏笔凡、刘均…

数据驱动精准化营销在大众点评的实践

精准化营销一直以来都是互联网营销业务在细分市场下快速获取用户和提高转化的利器。在移动互联网爆发的今天&#xff0c;数据量呈指数增长&#xff0c;如何在移动和大数据场景下用数据驱动进行精准营销&#xff0c;从而提高营销效能&#xff0c;成为营销业务部门的主要挑战之一…

LeetCode 1104. 二叉树寻路(数学位运算)

1. 题目 在一棵无限的二叉树上&#xff0c;每个节点都有两个子节点&#xff0c;树中的节点 逐行 依次按 “之” 字形进行标记。 如下图所示&#xff0c;在奇数行&#xff08;即&#xff0c;第一行、第三行、第五行……&#xff09;中&#xff0c;按从左到右的顺序进行标记&am…

构建基于Python的CI/CD流水线

构建基于Python的CI/CD流水线

再介绍一篇最新的Contrastive Self-supervised Learning综述论文

文 | 对白源 | 对白的算法屋自监督学习&#xff08;Self-supervised learning&#xff09;最近获得了很多关注&#xff0c;因为其可以避免对数据集进行大量的标签标注。它可以把自己定义的伪标签当作训练的信号&#xff0c;然后把学习到的表示&#xff08;representation&#…

论文浅尝 | 重新审视语言模型与知识库的关系

笔记整理&#xff1a;陈卓&#xff0c;浙江大学在读博士&#xff0c;主要研究方向为低资源学习和知识图谱论文链接&#xff1a;https://arxiv.org/pdf/2106.09231发表会议&#xff1a;ACL 2021动机这篇文章类似于是批判性的文章&#xff0c;反驳的之前EMNLP2019的一篇文章knowl…

Spark在美团的实践

本文已发表在《程序员》杂志2016年4月期。 前言 美团是数据驱动的互联网服务&#xff0c;用户每天在美团上的点击、浏览、下单支付行为都会产生海量的日志&#xff0c;这些日志数据将被汇总处理、分析、挖掘与学习&#xff0c;为美团的各种推荐、搜索系统甚至公司战略目标制定提…

【pd读取csv文件踩坑】读取csv文件时报错:UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xb5 in position 0

【pd读取csv文件踩坑】读取csv文件时报错&#xff1a;UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xb5 in position 0

LeetCode 958. 二叉树的完全性检验(层序遍历)

1. 题目 给定一个二叉树&#xff0c;确定它是否是一个完全二叉树。 百度百科中对完全二叉树的定义如下&#xff1a; 若设二叉树的深度为 h&#xff0c;除第 h 层外&#xff0c;其它各层 (1&#xff5e;h-1) 的结点数都达到最大个数&#xff0c;第 h 层所有的结点都连续集中在…

论文浅尝 | 通过学习中间步骤的监督信号改进多跳知识库问答

笔记整理&#xff1a;陈永锐&#xff0c;东南大学博士论文链接&#xff1a;https://arxiv.org/pdf/2101.03737.pdf概述该论文处理多跳知识库问答&#xff08;KBQA&#xff09;任务&#xff0c;主要关注训练过程在中间步骤缺乏监督信号的挑战。由于这一挑战&#xff0c;多跳 KBQ…

打破情感分类准确率 80 分天花板!更加充分的知识图谱结合范式

文 | SeverusNLP的研究者们一直都在尝试&#xff0c;怎么样让模型像人类一样&#xff0c;学会“知识”。而最直观的想法莫过于将人类已经总结出来供机器解读的“知识体系”&#xff0c;及其嵌入表示作为额外的特征添加到NLP模型之中。至少&#xff0c;从直觉上看&#xff0c;将…

分布式块存储系统Ursa的设计与实现

引言 云硬盘对IaaS云计算平台有至关重要的作用&#xff0c;几乎已成为必备组件&#xff0c;如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性&#xff0c;如更高的数据可靠性和可用性、灵活的数据快照功能、更…

sql日期转【pd读取csv文件踩坑】读取csv文件时报错:UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xb5 in position 0

【pd读取csv文件踩坑】读取csv文件时报错&#xff1a;UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xb5 in position 0 select trunc(2020-08-10 10:43:32 ,yyyy-MM-dd hh24:mi:ss )1.当前时间 select CURRENT_TIMESTAMP 2020-08-10 10:41:22.94347308 select C…

LeetCode 919. 完全二叉树插入器(层序遍历队列)

1. 题目 完全二叉树是每一层&#xff08;除最后一层外&#xff09;都是完全填充&#xff08;即&#xff0c;结点数达到最大&#xff09;的&#xff0c;并且所有的结点都尽可能地集中在左侧。 设计一个用完全二叉树初始化的数据结构 CBTInserter&#xff0c;它支持以下几种操作…

开源开放 | 中文相对复杂词汇识别数据集RCWI-Dataset(CCKS2021)

OpenKG地址&#xff1a;http://openkg.cn/dataset/rcwi-dataset开放许可协议&#xff1a;CC BY-SA 4.0 &#xff08;署名相似共享&#xff09;贡献者&#xff1a;北京语言大学&#xff08;阙孟溪、张宇飞、于东&#xff09;1. 摘要中文领域的词汇复杂度评估资源较为匮乏&#x…

提升 NLP 实战技能的一点建议

作为最典型的 AI 领域之一&#xff0c;NLP 这些年也是越来越热门&#xff0c;基本上是各大厂必备了。随着 OpenAI 等技术的诞生、迁移学习等技术的成功应用&#xff0c;使得 NLP 技术在搜索、推荐、信息流、互联网金融、社交网络等领域不断发展壮大。与此同时&#xff0c;NLP 工…

深入FFM原理与实践

FM和FFM模型是最近几年提出的模型&#xff0c;凭借其在数据量比较大并且特征稀疏的情况下&#xff0c;仍然能够得到优秀的性能和效果的特性&#xff0c;屡次在各大公司举办的CTR预估比赛中获得不错的战绩。美团技术团队在搭建DSP的过程中&#xff0c;探索并使用了FM和FFM模型进…