部署带证书的docker高可用的私有仓库harbor

news2024/10/22 9:44:49

一、部署带证书的docker高可用的私有仓库harbor

  harbor下载包:https://hub.fastgit.org/goharbor/harbor/releases

  docker阿里云地址:docker-ce-linux-centos-7-x86_64-stable-Packages安装包下载_开源镜像站-阿里云

  Harbor 是 VMware 公司开源的企业级 Registry 项目,可以帮助用户迅速搭建一个企业级的 Docker registry 服务。它以 Docker 公司开源的 registry 为基础,提供了管理UI, 基于角色的访问控制(Role Based Access Control),AD/LDAP 集成、以及审计日志(Audit logging) 等企业用户需求的功能,同时还原生支持中文。

  一)部署docker(docker-compose)

  1、安装docker
#安装docker,生产需要docker存储配置足够大的磁盘
yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm
systemctl  start docker
systemctl  enable  docker
  2、安装docker-compose(没有pip环境,需先安装)

  安装pip环境

mkdir -p /opt/src
cd /opt/src/
wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
wget https://files.pythonhosted.org/packages/69/81/52b68d0a4de760a2f1979b0931ba7889202f302072cc7a0d614211bc7579/pip-18.0.tar.gz
tar xf pip-18.0.tar.gz
cd pip-18.0/
python setup.py install
pip -V

  安装docker-compose

pip install docker-compose

  二)部署带证书的harbor

  1、生成证书
cd /opt/src
wget http://harbor.orientsoft.cn/harbor-v1.5.0/harbor-offline-installer-v1.5.0.tgz
tar xf harbor-offline-installer-v1.5.0.tgz 
mkdir -p /opt/src/harbor/certs/
cd /opt/src/harbor/certs/
#生成key
openssl genrsa -out /opt/src/harbor/certs/harbor-ca.key 2048
#生成指定有效期的证书(节点1)
openssl req -x509 -new -nodes -key /opt/src/harbor/certs/harbor-ca.key  -subj "/CN=harbor01.local.com" -days 7120 -out /opt/src/harbor/certs/harbor-ca.crt
#节点2
openssl req -x509 -new -nodes -key /opt/src/harbor/certs/harbor-ca.key  -subj "/CN=harbor02.local.com" -days 7120 -out /opt/src/harbor/certs/harbor-ca.crt
  2、配置harbor

  更改配置vim /opt/src/harbor/harbor.cfg

hostname = harbor01.local.com
ui_url_protocol = https

ssl_cert = /opt/src/harbor/certs/harbor-ca.crt
ssl_cert_key = /opt/src/harbor/certs/harbor-ca.key
harbor_admin_password = test123456

  安装相关的命令

 ./install.sh

  其他操作命令

#为Harbor生成配置文件
./prepare
#安装
./install
#启动
docker-compose up -d
#关闭
docker-compose down -v

  三)客户端配置

  1、发送harbor证书到管理节点
mkdir -p /etc/docker/certs.d/harbor{01,02}.local.com
#发送证书到管理节点,然后将相关文件发送到所有操作镜像的节点
#node01
scp /opt/src/harbor/certs/harbor-ca.crt 10.0.0.10:/etc/docker/certs.d/harbor01.local.com/
#node02
scp /opt/src/harbor/certs/harbor-ca.crt 10.0.0.10:/etc/docker/certs.d/harbor02.local.com/
  2、docker登录测试

  

  登录成功后,在操作用户家目录生成.一个隐藏目 .docker,目录底下有一个文件config.json 

# cat config.json 
{
    "auths": {
        "harbor01.loclal.com": {
            "auth": "YWRtaW46dGVzdDEyMzQ1Ng=="
        }
    },
    "HttpHeaders": {
        "User-Agent": "Docker-Client/18.03.1-ce (linux)"
    }
}
  3、把相关文件送到有操作镜像的节点

  yum install sshpass -y

#!/bin/bash
#目标主机列表
IP="
10.0.0.11
10.0.0.12
10.0.0.13
10.0.0.14
"
for node in ${IP};do
  sshpass -p 123456 ssh-copy-id  -p 22 ${node}  -o StrictHostKeyChecking=no
  if [ $? -eq 0 ];then
    echo "${node} 秘钥copy完成,准备环境初始化....."
      ssh  -p 22   ${node}  "mkdir /etc/docker/certs.d/harbor{01,02}.local.com -p"
      echo "Harbor 证书目录创建成功!"
      scp -P 22 /etc/docker/certs.d/harbor01.local.com/harbor-ca.crt ${node}:/etc/docker/certs.d/harbor01.local.com/harbor-ca.crt
      scp -P 22 /etc/docker/certs.d/harbor02.local.com/harbor-ca.crt ${node}:/etc/docker/certs.d/harbor02.local.com/harbor-ca.crt
      echo "Harbor 证书拷贝成功!"
      scp -P 22 /etc/hosts ${node}:/etc/hosts
      echo "host 文件拷贝完成"
      scp -r -P 22  /root/.docker  ${node}:/root/
      echo "Harbor 认证文件拷贝完成!"
      scp -r -P 22  /etc/resolv.conf  ${node}:/etc/
  else
    echo "${node} 秘钥copy失败"
  fi
done

      docker 镜像仓库 Harbor 部署 以及 跨数据复制 - 丶小炒肉 - 博客园

      Harbor私有镜像仓库无坑搭建 - Mr.zou - 博客园

二、harbor高级应用

  一)harbor管理helm-charts

  对于已经安装的harbor仓库,先stop,然后执行安装命令

  1、安装
切换到harbor 的安装目录,进行操作
cd $HARBOR_HOME
docker-compose stop
sh install.sh --with-chartmuseum

  安装完,如下图

  

  2、helm使用chart仓库

  安装helm helm基本使用 - 思维无界限 - 博客园

  安装helm push插件:helm基本使用 - 思维无界限 - 博客园

  

helm  repo add --username=${USERNAME} --password=${PASSWORD} mylibrary http://${HARBOR_SERVER}/chartrepo/library
helm repo list
helm fetch stable/redis-ha #使用fetch或pull下载charts
helm cm-push redis-ha-2.0.1.tgz mylibrary #上传到私有仓库

  二)安装扫描器trivy

  扫描器的文档:Harbor 1.10 Puts Security and Pluggable Scanners in the Limelight | The Harbor blog

  对于已经安装的harbor仓库,先stop,然后执行安装命令(注意:高版本)

sh install.sh --with-chartmuseum --with-trivy

  安装后如下图

  

  三)从harbor拉取镜像慢

   docker 从harbor 拉取镜像慢_Harbor:将制品库发挥到极致-CSDN博客

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

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

相关文章

刷题训练之多源 BFS

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:熟练掌握多源 BFS算法。 > 毒鸡汤:学习,学习,再学习 ! 学,然后知不足。 > 专栏选自:刷…

quic-go源码一---server启动

前言: 走马观花地看了RFC 9000:QUIC: A UDP-Based Multiplexed and Secure Transport, 感受不是那么直观,所以再来看看这个协议的golang语言实现:quic-go,加强学习。 https://quic-go.net/docs/quic/quic-go文档 本篇准备的代…

threejs-法线向量

一、介绍 1.介绍 1.在3D计算机图形中,‘法向量’是一个向量,表示3d模型表面在某一点的方向。在每个顶点上,都会有一个关联的法向量,这个向量通常被归一化,也就是说它的长度为1。 2.使用:定点的法向属性在很多计算图形的领域都有应…

lammps统计一个原子周围不同类型原子数量的方法

本文介绍lammps统计一个原子周围不同类型原子数量的方法。 在之前的专栏中,曾介绍过动态统计某一个固定区域内原子数量的方法,也介绍过动态统计某一个原子周围原子数量的方法: 下面介绍第三种类型:动态统计某一个原子周围不同类型原子数量的方法。 以小球的随机碰撞为例,原…

【2024.10.14练习】生命之树

题目描述 题目分析 对于求树的子区域最大和,考虑使用树形DP求解。 假设以树的某一结点为根节点来深度优先搜索整棵树,搜索到每个结点时都会有两种决策状态:加入该节点和不加入该节点。定义代表选择此结点所能得到最大权值和,代表…

【Linux】解析信号的本质&相关函数及指令的介绍

前言 大家好吖,欢迎来到 YY 滴Linux系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《Lin…

动态规划-简单多状态dp问题——LCR.091.粉刷房子

1.题目来源 题目来源:LCR.091.粉刷房子——力扣 测试用例 2.算法原理 下列矩阵表示粉刷每个房子的费用,对应颜色表示粉刷的油漆颜色 1.状态表示 创建一个n3的dp表,每一列代表第i个房子刷三个颜色中任意颜色的情况下花费的费用 dp[i][0]:第…

c语言字符函数

1,字符分类函数: 例如:写一个代码将字符串中的小写字母转化成大写字母 就可以用到上述islower函数判断字符是否是小写 2.字符转换函数 c语言提供了两个字符转换函数 1.int tolower (int c); //将输入进去的大写字母转化成小写 2,int …

AI开发者工具的双子星:Cursor与ChatGPT Canvas的区别

01—Cursor:沉浸式的开发体验 Cursor是一款旨在为开发者提供无缝编程体验的工具。它将AI的功能深度嵌入到开发者熟悉的环境中,便于在编码过程中获得即时帮助。开发者无需离开自己的操作界面,AI就能自动为其提供代码补全、错误检查和优化建议…

荣耀、中国移动、京东三强联合,开启产业链升级的“价值跃迁”

市场最大的不变就是变化,能够赢得跨越式发展的,往往是最能适应变化,并且开拓创新的企业。 在全行业数字化转型的当下,线上智能终端销售模式,正在迎来新的篇章。 10月12日,在2024中国移动全球合作伙伴大会…

买自动猫砂盆怎么不花冤枉钱?双十一高性价比自动猫砂盆推荐

平时出门在外面,真的有点来不及照顾猫咪的猫砂盆,导致粪便堆积的时间过长,污染干净的猫砂,猫砂盆长时间不清理,会增加细菌滋生的机会,从而增加猫咪尿路感染的风险。自动猫砂盆的自动铲屎很方便实用&#xf…

界面耻辱纪念堂--可视元素02

Leif Almberg 发给我们一个从 IBMs NetFinity(一个管理网络和远程计算机的程序)截取的图片。 这个图片由一大堆混乱的带边框的控件组成,这些控件占据了整个屏幕。由于他们希望把所有东西填充在一个单独对话框中,IBM 的设计者不得…

IPv6 DNS简介

IPv6网络中的每台主机都是由IPv6地址来标识的,用户只有获得待访问主机的IPv6地址,才能够成功实现访问操作。对于用户来讲,记住主机的IPv6地址是相当困难的,因此设计了一种字符串形式的主机命名机制,这就是域名系统。用…

HBuilder X 下载vue-router时 发生异常:npm ERR! code EPERM

一、异常 PS C:\Users\GL\Documents\HBuilderProjects\vj1> npm i vue-router3.6.5 npm ERR! code EPERM npm ERR! syscall mkdir npm ERR! path C:\Program Files\nodejs\node_cache\_cacache npm ERR! errno EPERM npm ERR! FetchError: Invalid response body while tr…

Vue3 集成 json-editor-vue3

简介 快速编辑json数据,还需要支持全屏编辑,以及json校验。 https://github.com/guyue88/json-editor-vue3 安装依赖 npm install json-editor-vue3 --save 引入 在 main.js中添加 import “jsoneditor”; 全局引入 import Vue from vue import Json…

【设计模式系列】模板方法模式

一、什么是模板方法模式 模板方法模式(Template Method Pattern)是一种行为型设计模式,它在父类中定义一个算法的框架,允许子类在不改变算法结构的情况下重写算法的某些特定步骤。这种模式非常适合于那些存在共同行为的类&#x…

CSS简单入门

一.简单概念 1.概念 层叠样式表&#xff0c;一种样式表语言&#xff0c;用来美化HTML文档的呈现。 2.书写位置 title标签下方添加style双标签&#xff0c;style标签里面书写CSS代码 &#xff08;1&#xff09;外部学习样式 <title>CSS使用</title> <sty…

【软件工程】数据流图DFD

文章目录 数据流图DFD概述一、数据流图的基本元素二、数据流图的绘制步骤三、数据流图的分层设计四、数据流图的绘制原则五、数据流图的应用 一个完整的数据流包含哪些要素从图中找出所有数据流1. **理解数据流图的结构**2. **识别外部实体**3. **追踪数据流**4. **记录数据流*…

在 MTT GPU 上使用 llama.cpp 推理

大语言模型因其出色的自然语言理解和生成能力而迅速被广泛使用&#xff0c;llama.cpp 大幅降低了进行大语言模型推理的门槛&#xff0c;MTT GPU 同样也是 llama.cpp 支持的运行平台&#xff0c;能够充分利用硬件的性能来助力用户的大语言模型应用。 本文主要介绍了如何在摩尔线…

如何设置JMeter界面的永久汉化?

1、找到jMeter安装目录下的bin目录 2、打开jmeter.properties文件&#xff0c;把第37行修改为"languagezh_CN"&#xff0c;保存&#xff0c;关闭 3、重启JMeter即可