zoukankan      html  css  js  c++  java
  • K8S Harbor搭建及配置

     

    一、harbor简介

    Habor是由VMWare公司开源的容器镜像仓库,用于存储和分发Docker镜像的企业级Registry服务器,添加一些企业必需的功能特性,例如安全、标识和管理等
    事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用
    这些新的企业级特性包括:管理用户界面,基于角色的访问控制,AD/LDAP集成以及审计日志等,足以满足基本企业需求。
    Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中,确保数据和知识产权在公司内部网络中管控。

    官方文档:https://goharbor.io/docs/  官方地址:https://vmware.github.io/harbor/cn/

    github用户手册:https://github.com/goharbor/harbor/blob/master/docs/user_guide.md

    二、要求

    软件要求
    软件描述
    Python 2.7或更高版本 请注意,您可能必须在Linux发行版(Gentoo,Arch)上安装Python,默认情况下不安装Python解释器
    Docker引擎 版本1.10或更高版本 有关安装说明,请参阅:https//docs.docker.com/engine/installation/
    Docker Compose 版本1.6.0或更高版本 有关安装说明,请参阅:https//docs.docker.com/compose/install/
    OpenSSL 建议最新的 为Harbor生成证书和密钥
    网络端口要求
    端口协议描述
    443 HTTPS Harbor门户和核心API将接受此端口上的https协议请求
    4443 HTTPS 只有在连接到Dock的Docker Content Trust服务启用认证时才需要
    80 HTTP Harbor端口和核心API将接受此端口上的http协议请求

    根据版本的不同,可能环境要求各不相同,具体可以参官方文档:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md

     

     三、安装Harbor

    1. 安装docker

    # 安装依赖包  官方文档:https://docs.docker.com
    yum install -y yum-utils device-mapper-persistent-data lvm2
    
    # 添加Docker软件包源
    yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
    # 安装Docker CE
    yum install -y docker-ce
    
    # 启动Docker服务并设置开机启动
    systemctl start docker
    systemctl enable docker
    
    镜像从哪里来?
    Docker Hub是由Docker公司负责维护的公共注册中心,包含大量的容器镜像,Docker工具默认从这个公共镜像库下载镜像。
    地址:https://hub.docker.com/explore
    
    配置镜像加速器:https://www.daocloud.io/mirror  #下载镜像时会加速
    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

    2.安装Docker-compose
    Docker-compose有两种安装方式,分别为下载源码和pip安装

    下载源码安装(可以指定版本):
    1、下载指定版本的docker-compose
      [root@harbor-server ~]# curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    2、对二进制文件赋可执行权限
      [root@harbor-server ~]# chmod +x /usr/local/bin/docker-compose
    3、测试下docker-compose是否安装成功
      [root@harbor-server ~]#docker-compose --version
    pip安装:
    [root@harbor-server ~]# yum install python-pip -y
    [root@harbor-server ~]# pip install --upgrade pip
    [root@harbor-server ~]# pip install docker-compose #默认最新版本,可以使用 docker-compose==version指定安装版本
    [root@harbor-server ~]# docker-compose -version 
    docker-compose version 1.23.2, build 1110ad0

    3.安装Harbor
    harbor有两个版本,分别为offline(离线)和online(在线),离线的安装包比较大,后续安装会相对快一点,在线的安装包比较下,但是后续安装会比较慢,这里我们选择离线安装
    下载地址:https://github.com/goharbor/harbor/releases
    在指定版本的Download Binary处现在对应的安装包,复制链接

     

    [root@harbor-server ~]# wget https://storage.googleapis.com/harbor-releases/release-1.6.1/harbor-offline-installer-v1.6.1.tgz

    [root@harbor-server ~]# ls
    anaconda-ks.cfg docker-compose-Linux-x86_64 harbor harbor-offline-installer-v1.6.1.tgz
    [root@harbor-server ~]# cp docker-compose-Linux-x86_64 /usr/bin/docker-compose
    [root@harbor-server ~]# chmod +x /usr/bin/docker-compose
    [root@harbor-server ~]# tar -xf harbor-offline-installer-v1.6.1.tgz
    [root@harbor-server ~]# ls
    c^Hanaconda-ks.cfg harbor harbor-offline-installer-v1.6.1.tgz
    [root@harbor-server ~]# cd harbor
    [root@harbor-server harbor]# ls
    common docker-compose.clair.yml docker-compose.yml harbor.cfg install.sh NOTICE prepare
    docker-compose.chartmuseum.yml docker-compose.notary.yml ha harbor.v1.6.1.tar.gz LICENSE open_source_license
    ************************************************
    # vi harbor.cfg
    hostname = 192.168.1.200 #当前主机IP
    ui_url_protocol = http
    harbor_admin_password = Harbor12345 #admin的密码
    ***********************************************

    [root@harbor-server harbor]# ./prepare
    Generated and saved secret to file: /data/secretkey
    Generated configuration file: ./common/config/nginx/nginx.conf
    Generated configuration file: ./common/config/adminserver/env
    Generated configuration file: ./common/config/ui/env
    Generated configuration file: ./common/config/registry/config.yml
    Generated configuration file: ./common/config/db/env
    Generated configuration file: ./common/config/jobservice/env
    Generated configuration file: ./common/config/jobservice/config.yml
    Generated configuration file: ./common/config/log/logrotate.conf
    Generated configuration file: ./common/config/registryctl/env
    Generated configuration file: ./common/config/ui/app.conf
    Generated certificate, key file: ./common/config/ui/private_key.pem, cert file: ./common/config/registry/root.crt
    The configuration files are ready, please use docker-compose to start the service.
    [root@harbor-server harbor]#
    [root@harbor-server harbor]# ./install.sh

    4.Harbor配置文件
    解压缩之后,目录下回生成harbor.conf文件,该文件就是Harbor的配置文件。

    1 ## Configuration file of Harbor
     2 
     3 # hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost
     4 hostname = 172.33.16.1   #需要根据实际情况手动修改
     5 
     6 # 访问协议,默认是http,也可以设置https,如果设置https,则nginx ssl需要设置on
     7 ui_url_protocol = http
     8 
     9 # mysql数据库root用户默认密码root123,实际使用时修改下
    10 db_password = root123
    11 
    12 max_job_workers = 3 
    13 customize_crt = on
    14 ssl_cert = /data/cert/server.crt
    15 ssl_cert_key = /data/cert/server.key
    16 secretkey_path = /data
    17 admiral_url = NA
    18 
    19 # 邮件设置,发送重置密码邮件时使用
    20 email_identity = 
    21 email_server = smtp.mydomain.com
    22 email_server_port = 25
    23 email_username = sample_admin@mydomain.com
    24 email_password = abc
    25 email_from = admin <sample_admin@mydomain.com>
    26 email_ssl = false
    27 
    28 # 启动Harbor后,管理员UI登录的密码,默认是Harbor12345
    29 harbor_admin_password = Harbor12345
    30 
    31 # 认证方式,这里支持多种认证方式,如LADP、本次存储、数据库认证。默认是db_auth,mysql数据库认证
    32 auth_mode = db_auth
    33 
    34 # LDAP认证时配置项
    35 #ldap_url = ldaps://ldap.mydomain.com
    36 #ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com
    37 #ldap_search_pwd = password
    38 #ldap_basedn = ou=people,dc=mydomain,dc=com
    39 #ldap_filter = (objectClass=person)
    40 #ldap_uid = uid 
    41 #ldap_scope = 3 
    42 #ldap_timeout = 5
    43 
    44 # 是否开启自注册
    45 self_registration = on
    46 
    47 # Token有效时间,默认30分钟
    48 token_expiration = 30
    49 
    50 # 用户创建项目权限控制,默认是everyone(所有人),也可以设置为adminonly(只能管理员)
    51 project_creation_restriction = everyone
    52 
    53 verify_remote_cert = on
    配置文件解析

    5. 启动

    [root@harbor-server harbor]# docker-compose up -d  #启动harbor
    harbor-log is up-to-date
    harbor-db is up-to-date
    redis is up-to-date
    registry is up-to-date
    harbor-adminserver is up-to-date
    harbor-ui is up-to-date
    harbor-jobservice is up-to-date
    nginx is up-to-date

     6.访问

    1、网页形式 http://192.168.1.200/    admin  Harbor12345

     

    默认安装后会自动创建一个名称为library的项目,且访问级别为公开(表示任何人可读,即任何人都可以下载该项目中的镜像)

    添加一个用户 mxxl 密码Gota1234  加入到library项目组

     

    2、harbor也可以在命令行下进行登录,登录后可以将本地的镜像上传到harbor,也可以下载用户拥有权限项目下的镜像

    打tag格式

    docker tag SOURCE_IMAGE[:TAG] 192.168.1.200/library/IMAGE[:TAG]
    docker push 192.168.1.200/library/IMAGE[:TAG]
    #####例如: docker 主机192.168.1.11上#########
    
    [root@localhost ~]# vim /etc/docker/daemon.json #编辑后的语法格式一定要对 否则起不来
    
    {
    "registry-mirrors": ["http://f1361db2.m.daocloud.io"], #   "registry-mirrors": ["http://86d2a50b.m.daocloud.io"] 是国内daocloud公司代理的Registry Hub仓库的地址,可以加快国内访问Registry Hub仓库的速度
    "insecure-registries": ["192.168.1.200"] #信任IP 如果harbor服务不是默认的80端口 也要把端口加进去
    
    }
    
    [root@localhost ~]# systemctl restart docker
    [root@localhost ~]#
    
    [root@localhost ~]# docker login 192.168.1.200 #登录
    Username: mxxl
    Password: 
    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
    [root@localhost ~]# docker tag tomcat:v1 192.168.1.200/library/tomcat:v1
    [root@localhost ~]# docker push 192.168.1.200/library/tomcat:v1
    The push refers to repository [192.168.1.200/library/tomcat]
    9efeb4888585: Pushed 
    a0921a1ccaaa: Pushed 
    d69483a6face: Pushed 
    v1: digest: sha256:55ae66cba90148525597599f5b24a17be30992c1ade3a83691022ed20f4b009d size: 952
    [root@localhost ~]# docker tag tomcat:v2 192.168.1.200/library/tomcat:v2
    [root@localhost ~]# docker push 192.168.1.200/library/tomcat:v2

     harbor用户指南

     https://github.com/goharbor/harbor/blob/master/docs/user_guide.md

  • 相关阅读:
    微信小程序HTTPS
    微信商城-1简介
    va_list
    Event log c++ sample.
    EVENT LOGGING
    Analyze Program Runtime Stack
    unknow table alarmtemp error when drop database (mysql)
    This application has request the Runtime to terminate it in an unusual way.
    How to check if Visual Studio 2005 SP1 is installed
    SetUnhandledExceptionFilter
  • 原文地址:https://www.cnblogs.com/linux985/p/11820713.html
Copyright © 2011-2022 走看看