• Centos 安装 Harbor


    本文安装环境是 

    Dcoker version

     Client: Docker Engine - Community
     Version:           19.03.6
     API version:       1.40
     Go version:        go1.12.16
     Git commit:        369ce74a3c
     Built:             Thu Feb 13 01:29:29 2020
     OS/Arch:           linux/amd64
     Experimental:      false

    Docker-compose version  

    docker-compose version 1.25.4, build 8d51620a
    docker-py version: 4.1.0
    CPython version: 3.7.5
    OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

    Harbor version:harbor-offline-installer-v1.10.1.tgz

    1、Harbor 基础知识

           Harbor 是一个CNCF基金会托管的开源的可信的云原生docker registry项目,可以用于存储、签名、扫描镜像内容,Harbor 通过添加一些常用的功能如安全性、身份权限管理等来扩展 docker registry 项目,此外还支持在 registry 之间复制镜像,还提供更加高级的安全功能,如用户管理、访问控制和活动审计等,在新版本中还添加了Helm仓库托管的支持.

    2、安装 Harbor 条件说明 

      

     3、Harbor 安装

    3.1 下载 Harbor 文件包

    (由于文件比较大,建议下载好传递到服务器解压即可),下载链接点击后面的文字即可. Harbor 下载链接

    3.2 上传到服务器 

    1)、执行 rz 命令,然后弹出窗口可以直接选择.(如果没有rz 命令 yum install -y lrzsz 即可)

    2)、scp 上传

    [root@k8s-master01] # scp harbor-offline-installer-v1.10.1.tgz root@192.168.56.2:/root/software/harbor

    3)、解压

    tar -zxvf harbor-offline-installer-v1.10.1.tgz

      

     4)、修改配置文件 harbor.yml

     5)、由于配置了 https,所以需要生成密钥证书相关的信息

    1、创建认证的证书
    1.1 创建一个私钥,创建成功后本目录下会有一个 ca.key 的文件
    [root@k8s-master01 keys2]# openssl genrsa -out ca.key 4096
    Generating RSA private key, 4096 bit long modulus
    ....................................................................................................................................................................................................................................................................++
    ................................++
    e is 65537 (0x10001)
    
    1.2 创建证书; 创建成功后目录下会有 ca.crt 文件
    调整-subj选项中的值以标识您的组织。如果使用FQDN连接端口主机,则必须将其指定为公共名称(CN)属性。
    openssl req -x509 -new -nodes -sha512 -days 3650 
     -subj "/C=CN/ST=Shanghai/L=Shanghai/O=bamboo/OU=Personal/CN=mydocker.harbor.com" 
     -key ca.key 
     -out ca.crt
    
    [root@k8s-master01 keys2]# openssl req -x509 -new -nodes -sha512 -days 3650 
     -subj "/C=CN/ST=Shanghai/L=Shanghai/O=bamboo/OU=Personal/CN=mydocker.harbor.com" 
     -key ca.key 
     -out ca.crt
    
    2、创建服务端的证书
    2.1[root@k8s-master01 keys2]# openssl genrsa -out mydocker.harbor.com.key 4096
    Generating RSA private key, 4096 bit long modulus
    ................................................................................................................................................................................................++
    ............................................++
    e is 65537 (0x10001)
    
    2.2 证书
    调整-subj选项中的值以标识您的组织。如果使用FQDN连接端口主机,则必须将其指定为公共名称(CN)属性,并在密钥和CSR文件名中使用。
    [root@k8s-master01 keys2]# openssl req -sha512 -new 
        -subj "/C=CN/ST=Shanghai/L=Shanghai/O=bamboo/OU=Personal/CN=mydocker.harbor.com" 
        -key mydocker.harbor.com.key 
        -out mydocker.harbor.com.csr
    
    
    2.3 生成一个x509 v3扩展文件。
    无论您是使用FQDN还是IP地址来连接到您的Harbor主机,您都必须创建这个文件,以便为您的Harbor主机生成一个符合Subject Alternative Name (SAN)和x509 v3扩展要求的证书。替换DNS项以反映您的域。
    
    
    [root@k8s-master01 keys2]# vim v3.ext 
    authorityKeyIdentifier=keyid,issuer
    basicConstraints=CA:FALSE
    keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
    extendedKeyUsage = serverAuth
    subjectAltName = @alt_names
    
    [alt_names]
    DNS.1=mydocker.harbor.com
    DNS.2=mydocker.harbor.com
    DNS.3=mydocker.harbor.com
    
    2.4 使用v3。为您的Harbor主机生成证书的ext文件。
    [root@k8s-master01 keys2]# openssl x509 -req -sha512 -days 3650 
        -extfile v3.ext 
        -CA ca.crt -CAkey ca.key -CAcreateserial 
        -in mydocker.harbor.com.csr 
        -out mydocker.harbor.com.crt
    Signature ok
    subject=/C=CN/ST=Shanghai/L=Shanghai/O=bamboo/OU=Personal/CN=mydocker.harbor.com
    Getting CA Private Key
    
    
    3、然后把这些证书提供给 docker 和 harbor
    3.1 /apps/registrs/cert 的目录就是 harbor.yaml 里配置的 https 下的目录,保持一致即可,没有目录就先创建一下
    cp mydocker.harbor.com.crt /apps/registrs/cert/
    cp mydocker.harbor.com.key /apps/registrs/cert/
    
    3.2 生成 .cert 文件以供 docker 使用
    [root@k8s-master01 keys2]# openssl x509 -inform PEM -in mydocker.harbor.com.crt -out mydocker.harbor.com.cert
    
    3.3 将服务器证书、密钥和CA文件 copy 到 Harbor 主机上的Docker证书文件夹中
    ##如果没有这个目录就创建一下先
    mkdir -p /etc/docker/certs.d/
    
    cp mydocker.harbor.com.cert /etc/docker/certs.d/ymydocker.harbor.com/
    cp mydocker.harbor.com.key /etc/docker/certs.d/mydocker.harbor.com/
    cp ca.crt /etc/docker/certs.d/mydocker.harbor.com/
    
    如果是有多个节点的话,记得把这这几项也 copy 到节点的主机上
    
    3.4 重启 docker 
    [root@k8s-master01 keys2]#systemctl restart docker

    6)、安装

    ./install.sh 

    安装过程中会一步一步的执行,如果有配置文件问题,或者硬件什么的不满足,就会直接报错,根据错误提示信息解决即可.

    我在安装的过程中遇到过的问题

    1)、yaml 格式有问题, 他会提示那一行有问题,打开 yaml 文件寻找特定的行即可.(我当时提示的是中文的冒号":",然后换成英文的冒号即可":")

    2)、虚拟机选择磁盘空间的时候,选择的小,导致提示空间不足,然后删除一些东西才可以了.

    4、Harbor 测试

    4.1 docker 登录

    [root@k8s-master01 harbor]# docker login https://mydocker.harbor.com/
    Authenticating with existing credentials...
    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-store

    Login Succeeded

    如果没有问题,就会提示如上的信息

    然后可以测试一下 push 到仓库.

    这个 demo 是我自己写的一个 springboot 的例子

    首先构建 docker 镜像,然后打 tag,再推送到这里来的.执行步骤如下:

    Dockerfile

    Dockerfile
    From java:8
    
    MAINTAINER bamboo
    
    ADD demo-0.0.1-SNAPSHOT.jar /demo-0.0.1-SNAPSHOT.jar
    
    EXPOSE 80
    
    ENTRYPOINT ["java", "-jar", "/demo-0.0.1-SNAPSHOT.jar"]

    构建镜像

    [root@k8s-master01 sbd]#  docker build -f Dockfile -t demo:1.1 .

    然后打 tag 

    [root@k8s-master01 sbd]#  docker tag demo:1.1 mydocker.harbor.com/library/demo:1.1

    查看构建、打 tag 的镜像

    [root@k8s-master01 sbd]# docker images |grep demo

    [root@k8s-master01 sbd]# docker images |grep demo
    demo 1.1 888f1547a370 22 hours ago 661MB
    mydocker.harbor.com/library/demo 1.1 888f1547a370 22 hours ago 661MB

    推送到仓库

    [root@k8s-master01 sbd]# docker push mydocker.harbor.com/library/demo:1.1

    4.2 浏览器登录

    安装成功后,打开浏览器 https://mydocker.harbor.com,输入admin/Harbor12345 登录就会看到如下的内容

    其实尽量是按照官网的来搞,会比较清楚一点,这就需要锻炼一下自己的英文了.官网的详细步骤参考如下链接:

    https://github.com/goharbor/harbor/tree/master/docs/1.10

  • 相关阅读:
    62、solidity环境搭建、编译及编写合约-3——2020年07月12日12:55:51
    61、solidity编程语言类型-2——2020年07月12日12:26:21
    60、solidity编程语言了解、实践-1——2020年07月12日12:01:12
    C#windows桌面应用小程序制作——大文件数据分段解析存储
    关于如何使用ehcarts2加载svg矢量地图并自定义县级内部乡镇轮廓
    webstorm2016.3注册码,License server更新方式,webstorm2017.1版本可用
    使用nodeValue获取值与a标签默认跳转的冲突问题
    前端知识体系目录
    sweetalert弹窗的使用
    background-size的应用情景:当给出的背景图片大于实际网页需要布局的图片大小时
  • 原文地址:https://www.cnblogs.com/zhuzi91/p/12364200.html
Copyright © 2020-2023  润新知