河北中石化建设网站,html用户登录注册页面代码,wordpress微电影模板,长治市网上商城咱也刚接触Harbor#xff0c;在x86上部署倒是没什么问题#xff0c;在arm上部署还是费了一些事的#xff0c;趟了一些小坑#xff0c;基本填平#xff0c;小白学习中#xff0c;请多指教。
目录
安装docker-compose环境
2.harbor离线安装准备
3.Https方式部署
3.1 生…咱也刚接触Harbor在x86上部署倒是没什么问题在arm上部署还是费了一些事的趟了一些小坑基本填平小白学习中请多指教。
目录
安装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 修改harbor.yml配置文件 执行harbor部署 查看harbor安装情况 redis一直处于restarting hosts中配置harbor域名 在控制台登录harbor 安装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 40963.2 生成CA证书 调整-subj选项中的值以反映您的组织。如果使用FQDN连接Harbor主机则必须将其指定为通用名称CN属性。 openssl req -x509 -new -nodes -sha512 -days 3650 \-subj /CCN/STBeijing/LBeijing/Oexample/OUPersonal/CNregistry.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 40962、生成证书签名请求CSR。
调整-subj选项中的值以反映您的组织。如果使用FQDN连接Harbor主机则必须将其指定为通用名称CN属性并在密钥和CSR文件名中使用它。
openssl req -sha512 -new \-subj /CCN/STBeijing/LBeijing/Oexample/OUPersonal/CNregistry.harbor.com \-key registry.harbor.com.key \-out registry.harbor.com.csr3.3 生成一个x509 v3扩展文件 无论您使用FQDN还是IP地址连接到Harbor主机都必须创建此文件以便可以为您的Harbor主机生成符合主题备用名称SAN和x509 v3的证书扩展要求。替换DNS条目以反映您的域。
cat v3.ext -EOF
authorityKeyIdentifierkeyid,issuer
basicConstraintsCA:FALSE
keyUsage digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage serverAuth
subjectAltName alt_names
[alt_names]
DNS.1registry.harbor.com
DNS.2registry.harbor
DNS.3harbor
EOF如果使用ip需要使用如下方式进行创建cat v3.ext -EOF
authorityKeyIdentifierkeyid,issuer
basicConstraintsCA:FALSE
keyUsage digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage serverAuth
subjectAltName IP:192.168.93.9
EOF3.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.crtyourdomain.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.cert3、将服务器证书密钥和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下的证书路径即可其他保持默认[rootharbor 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
...执行harbor部署
./install.sh --with-trivy因为我这边的需求要实现镜像扫描所以我是安装了扫描器的trivy安装包需要特地下载一下的。
查看harbor安装情况 #在harbor文件夹下使用docker-compose命令也是在实践过程中发现docker-compose要在docker-compose所在的目录下才能使用也不知道是我的问题还是它的问题。
docker-compose psredis一直处于restarting
#如果redis一直是restarting的状态
[rootharbor230 ~]# docker load trivy-adapter-photon_v2.3.4.tar
[rootharbor230 ~]# 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