四川省城乡住房建设部网站首页,google seo 优化,sinaapp wordpress 固定链接,网络编程技术基础Harbor官网 写在文前#xff1a; 本文中用到机器均为虚拟机 CentOS-7-x86_64-Minimal-2009 镜像。
基础设施要求 虚拟机配置达到最低要求即可#xff0c;本次系统中使用 docker 24.0.4、docker-compose 1.29.2。docker 及 docker-compose 的安装可以参考上篇文章 微服务 本文中用到机器均为虚拟机 CentOS-7-x86_64-Minimal-2009 镜像。
基础设施要求 虚拟机配置达到最低要求即可本次系统中使用 docker 24.0.4、docker-compose 1.29.2。docker 及 docker-compose 的安装可以参考上篇文章 微服务 云原生搭建 K8S 集群 中的 基础准备 部分。
下载 Harbor
官方有两种安装方式在线(Online installer)和离线(Offline installer)这里推荐安装离线安装包在 https://github.com/goharbor/harbor/tags 选择相应版本进行下载这里我选择 v2.8.3 版本即 harbor-offline-installer-v2.8.3.tgz。
# 下载
wget -c https://github.com/goharbor/harbor/releases/download/v2.8.3/harbor-offline-installer-v2.8.3.tgz# 解压
tar xzvf harbor-offline-installer-v2.8.3.tgz可以看到解压后的文件列表
生成 CA 证书
新增本地域名 ip 映射我这里安装 harbor 的机器的 ip 地址为 192.168.65.134
vim /etc/hosts# 添加 ip 与自定义域名映射域名可以随便设置
192.168.65.134 harbor.kubemanagement.com新建一个 certs 文件夹
mkdir certs生成 CA
# 1.
cd certs
openssl genrsa -out ca.key 4096# 2. 注意这里域名用上面设置的比如 harbor.kubemanagement.com
openssl req -x509 -new -nodes -sha512 -days 3650 \-subj /CCN/STBeijing/LBeijing/Oexample/OUPersonal/CNharbor.kubemanagement.com \-key ca.key \-out ca.crt# 3.
openssl genrsa -out harbor.kubemanagement.com.key 4096# 4.
openssl req -sha512 -new \-subj /CCN/STBeijing/LBeijing/Oexample/OUPersonal/CNharbor.kubemanagement.com.com \-key harbor.kubemanagement.com.key \-out harbor.kubemanagement.com.csr# 5.
cat v3.ext -EOF
authorityKeyIdentifierkeyid,issuer
basicConstraintsCA:FALSE
keyUsage digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage serverAuth
subjectAltName alt_names[alt_names]
DNS.1harbor.kubemanagement.com
DNS.2yourdomain
DNS.3hostname
EOF # 6.
openssl x509 -req -sha512 -days 3650 \-extfile v3.ext \-CA ca.crt -CAkey ca.key -CAcreateserial \-in harbor.kubemanagement.com.csr \-out harbor.kubemanagement.com.crt# 7.
mkdir -p /data/cert/cp harbor.kubemanagement.com.crt /data/cert/
cp harbor.kubemanagement.com.key /data/cert/# 8.
openssl x509 -inform PEM -in harbor.kubemanagement.com.crt -out harbor.kubemanagement.com.cert# 9.
mkdir -p /etc/docker/certs.d/harbor.kubemanagement.com/cp harbor.kubemanagement.com.cert /etc/docker/certs.d/harbor.kubemanagement.com/
cp harbor.kubemanagement.com.key /etc/docker/certs.d/harbor.kubemanagement.com/
cp ca.crt /etc/docker/certs.d/harbor.kubemanagement.com/# 10.
systemctl restart docker配置安装 Harbor
# 进入解压目录如果目录里有 harbor.yml 就直接修改我这里只有 harbor.yml.tmpl
cd harbor
cp harbor.yml.tmpl harbor.ymlvim harbor.yml主要注意下面几个地方分别是自定义的域名保存 CA 的位置以及默认的登录密码 修改完成后直接运行 install 脚本
./install.sh成功安装后提示 使用 docker-compose 查看运行情况
docker-compose ps没有问题的话全部处于 healthy 状态。
测试
浏览器输入域名或 ip 有如下界面默认用户名为 admin密码为 harbor.yml 文件中设置的 登录系统后新建一个私有项目 kubemanagment 此时可以测试上传镜像首先(必须)登陆 docker
docker login harbor.kubemanagement.com按照 Harbor 的要求标记镜像并推送 这里简单以busybox镜像为例
# 1. 拉取 busybox 镜像
docker pull busybox
# 2. tag
docker tag busy:latest harbor.kubemanagement.com/kubemanagment/busybox:latest
# 3. push
docker push harbor.kubemanagement.com/kubemanagment/busybox:latest此时在网页中可以看到已经存在 kubemanagment/busybox 了 到这里Harbor 基本安装配置完成。
至于上面的 kubemanagment/mysql是在测试 k8s 集群环境下测试 harbor 推送的具体过程如下
基础 k8s 集群环境为 微服务 云原生搭建 K8S 集群为简单起见这里只包含一个 master 节点和一个 worker 节点。master 节点 ip 信息如下
ip: 192.168.65.130在 master 的 hosts 中增加映射
vim /etc/hosts
192.168.65.134 harbor.kubemanagement.com为了在 master 节点上推送镜像直接使用 docker login harbor.kubemanagement.com 登录是不行的会报错 需要把 harbor 所在的机器上的 CA 信息拷贝到 master 节点中
# 在 master主机上
cd /etc/docker/# 192.168.65.134 为 harbor 所在主机
scp -r root192.168.65.134:/etc/docker/certs.d .随后重启 docker
systemctl restart docker接着
# 这里的 mysql:8.0.23 是我 master 节点中以前就 pull 好的镜像
docker login harbor.kubemanagement.com
docker tag mysql:8.0.23 harbor.kubemanagement.com/kubemanagment/mysql:8.0.23
docker push harbor.kubemanagement.com/kubemanagment/mysql:8.0.23