kubernetes-部署harbor
Habor是由VMWare中国团队开源的容器镜像仓库。事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访问控制 ,水平扩展,同步,AD/LDAP集成以及审计日志等。
一、部署Harbor
1: 安装docker-compose
1 [root@node2 ~]# curl -L https://github.com/docker/compose/releases/download/1.17.0-rc1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 2 [root@node2 ~]# chmod 755 !$ 3 [root@node2 ~]# docker-compose -v docker-compose 4 version 1.17.0-rc1, build a0f95af
2:下载harbor
GitHub下载地址:https://github.com/goharbor/harbor/releases
harbor下载地址:http://harbor.orientsoft.cn/
1 [root@node2 src]# wget http://harbor.orientsoft.cn/harbor-v1.5.0/harbor-offline-installer-v1.5.0.tgz 2 [root@node2 src]# tar zxvf harbor-offline-installer-v1.5.0.tgz
3:准备ca证书
手动生成证书:https://www.cnblogs.com/douyi/p/11600719.html(参考1-5步骤即可)
注册免费证书:https://freessl.org/
4:配置harbor参数
[root@node2 src]# cd harbor
[root@node2 src]# vim harbor.cfg
修改下面的参数
hostname = harbor.test.com ##定义你的域名或者IP地址
ui_url_protocol = https ##定义访问方式
ssl_cert = /usr/local/src/server.crt ##定义证书crt的路径
ssl_cert_key = /usr/local/src/server.key ##定义证书key的路径
harbor_admin_password = harbor123 ##定义harbor管理员的密码
5:执行安装harbor
[root@node2 src]# sh install.sh
1 [Step 0]: checking installation environment ... 2 3 Note: docker version: 18.09.6 4 5 Note: docker-compose version: 1.17.0 6 7 [Step 1]: loading Harbor images ... 8 52ef9064d2e4: Loading layer [==================================================>] 135.9MB/135.9MB 9 c169f7c7a5ff: Loading layer [==================================================>] 154.2MB/154.2MB 10 a2194b3a5434: Loading layer [==================================================>] 10.75MB/10.75MB 11 f3809b773329: Loading layer [==================================================>] 2.048kB/2.048kB 12 bdd2cd4d5394: Loading layer [==================================================>] 48.13kB/48.13kB 13 bce61638a813: Loading layer [==================================================>] 10.8MB/10.8MB 14 Loaded image: vmware/clair-photon:v2.0.1-v1.5.0 15 0bf5fb4e60f4: Loading layer [==================================================>] 95MB/95MB 16 9fc876f7ef97: Loading layer [==================================================>] 6.656kB/6.656kB 17 9f364ae08e7f: Loading layer [==================================================>] 2.048kB/2.048kB 18 d8e3574f27f2: Loading layer [==================================================>] 7.68kB/7.68kB 19 Loaded image: vmware/postgresql-photon:v1.5.0 20 8cb812a02f44: Loading layer [==================================================>] 23.25MB/23.25MB 21 826629c35871: Loading layer [==================================================>] 15.36MB/15.36MB 22 68fc630fcd08: Loading layer [==================================================>] 15.36MB/15.36MB 23 Loaded image: vmware/harbor-adminserver:v1.5.0 24 fd8233cdfcf0: Loading layer [==================================================>] 23.25MB/23.25MB 25 7ab0310b3d9d: Loading layer [==================================================>] 2.56kB/2.56kB 26 75609935cf31: Loading layer [==================================================>] 2.56kB/2.56kB 27 654b65c0f8ff: Loading layer [==================================================>] 2.048kB/2.048kB 28 1da5c77da464: Loading layer [==================================================>] 22.8MB/22.8MB 29 5e9191f65a4c: Loading layer [==================================================>] 22.8MB/22.8MB 30 Loaded image: vmware/registry-photon:v2.6.2-v1.5.0 31 Loaded image: vmware/photon:1.0 32 454c81edbd3b: Loading layer [==================================================>] 135.2MB/135.2MB 33 e99db1275091: Loading layer [==================================================>] 395.4MB/395.4MB 34 051e4ee23882: Loading layer [==================================================>] 9.216kB/9.216kB 35 6cca4437b6f6: Loading layer [==================================================>] 9.216kB/9.216kB 36 1d48fc08c8bc: Loading layer [==================================================>] 7.68kB/7.68kB 37 0419724fd942: Loading layer [==================================================>] 1.536kB/1.536kB 38 543c0c1ee18d: Loading layer [==================================================>] 655.2MB/655.2MB 39 4190aa7e89b8: Loading layer [==================================================>] 103.9kB/103.9kB 40 Loaded image: vmware/harbor-migrator:v1.5.0 41 1736beaf11c8: Loading layer [==================================================>] 23.25MB/23.25MB 42 3026403c0282: Loading layer [==================================================>] 24.39MB/24.39MB 43 1aaf4a794824: Loading layer [==================================================>] 7.168kB/7.168kB 44 b427e1a2dd17: Loading layer [==================================================>] 10.56MB/10.56MB 45 68906d88fd96: Loading layer [==================================================>] 24.38MB/24.38MB 46 Loaded image: vmware/harbor-ui:v1.5.0 47 cf8fe5c86f4b: Loading layer [==================================================>] 78.26MB/78.26MB 48 d15d127e6aa2: Loading layer [==================================================>] 3.072kB/3.072kB 49 9d47dbd3d824: Loading layer [==================================================>] 59.9kB/59.9kB 50 098c90ca59f4: Loading layer [==================================================>] 61.95kB/61.95kB 51 Loaded image: vmware/redis-photon:v1.5.0 52 71a9f645bc2d: Loading layer [==================================================>] 4.755MB/4.755MB 53 Loaded image: vmware/nginx-photon:v1.5.0 54 c4c015394057: Loading layer [==================================================>] 401.3MB/401.3MB 55 f9d78b9c2c97: Loading layer [==================================================>] 9.216kB/9.216kB 56 5cf7df688ef1: Loading layer [==================================================>] 9.216kB/9.216kB 57 9513efb6efc9: Loading layer [==================================================>] 7.68kB/7.68kB 58 52252ffb5fc7: Loading layer [==================================================>] 1.536kB/1.536kB 59 Loaded image: vmware/mariadb-photon:v1.5.0 60 243e37f674cb: Loading layer [==================================================>] 23.25MB/23.25MB 61 eb85e1888b13: Loading layer [==================================================>] 10.95MB/10.95MB 62 7b86ea27af2e: Loading layer [==================================================>] 17.3MB/17.3MB 63 a876e7e90459: Loading layer [==================================================>] 15.87kB/15.87kB 64 08c705395182: Loading layer [==================================================>] 3.072kB/3.072kB 65 2cb9ada082da: Loading layer [==================================================>] 28.24MB/28.24MB 66 Loaded image: vmware/notary-signer-photon:v0.5.1-v1.5.0 67 b9abce7219b5: Loading layer [==================================================>] 73.15MB/73.15MB 68 ee87a4f06084: Loading layer [==================================================>] 3.584kB/3.584kB 69 ca647be60b60: Loading layer [==================================================>] 3.072kB/3.072kB 70 aeb4260dd4ca: Loading layer [==================================================>] 4.096kB/4.096kB 71 4493e8c270cf: Loading layer [==================================================>] 3.584kB/3.584kB 72 ce532e45f1e6: Loading layer [==================================================>] 9.728kB/9.728kB 73 Loaded image: vmware/harbor-log:v1.5.0 74 4de8028cebd0: Loading layer [==================================================>] 11.78kB/11.78kB 75 b762605dfab6: Loading layer [==================================================>] 2.56kB/2.56kB 76 bed1e891c86f: Loading layer [==================================================>] 3.072kB/3.072kB 77 Loaded image: vmware/harbor-db:v1.5.0 78 820ecb80c0fa: Loading layer [==================================================>] 23.25MB/23.25MB 79 43ece8a3b461: Loading layer [==================================================>] 20.9MB/20.9MB 80 e7ac4a143f8d: Loading layer [==================================================>] 20.9MB/20.9MB 81 Loaded image: vmware/harbor-jobservice:v1.5.0 82 6ae72c7ad4ac: Loading layer [==================================================>] 12.16MB/12.16MB 83 1ad34ba80481: Loading layer [==================================================>] 17.3MB/17.3MB 84 f6ae3aed7f00: Loading layer [==================================================>] 15.87kB/15.87kB 85 1b77c5882538: Loading layer [==================================================>] 3.072kB/3.072kB 86 6364681eec7e: Loading layer [==================================================>] 29.46MB/29.46MB 87 Loaded image: vmware/notary-server-photon:v0.5.1-v1.5.0 88 89 90 [Step 2]: preparing environment ... 91 Generated and saved secret to file: /data/secretkey 92 Generated configuration file: ./common/config/nginx/nginx.conf 93 Generated configuration file: ./common/config/adminserver/env 94 Generated configuration file: ./common/config/ui/env 95 Generated configuration file: ./common/config/registry/config.yml 96 Generated configuration file: ./common/config/db/env 97 Generated configuration file: ./common/config/jobservice/env 98 Generated configuration file: ./common/config/jobservice/config.yml 99 Generated configuration file: ./common/config/log/logrotate.conf 100 Generated configuration file: ./common/config/jobservice/config.yml 101 Generated configuration file: ./common/config/ui/app.conf 102 Generated certificate, key file: ./common/config/ui/private_key.pem, cert file: ./common/config/registry/root.crt 103 The configuration files are ready, please use docker-compose to start the service. 104 105 106 [Step 3]: checking existing instance of Harbor ... 107 108 109 [Step 4]: starting Harbor ... 110 Creating network "harbor_harbor" with the default driver 111 Creating harbor-log ... 112 Creating harbor-log ... done 113 Creating redis ... 114 Creating registry ... 115 Creating harbor-db ... 116 Creating harbor-adminserver ... 117 Creating registry 118 Creating harbor-db 119 Creating redis 120 Creating harbor-adminserver ... done 121 Creating harbor-ui ... 122 Creating harbor-ui ... done 123 Creating harbor-jobservice ... 124 Creating nginx ... 125 Creating nginx 126 Creating nginx ... done 127 128 ✔ ----Harbor has been installed and started successfully.---- 129 130 Now you should be able to visit the admin portal at https://harbor.test.com. 131 For more details, please visit https://github.com/vmware/harbor
完成之后,通过docker-compose 命令查看到harbor运行相关信息
1 [root@node2 harbor]# docker-compose ps 2 Name Command State Ports 3 ------------------------------------------------------------------------------------------------------------------------------ 4 harbor-adminserver /harbor/start.sh Up 5 harbor-db /usr/local/bin/docker-entr ... Up 3306/tcp 6 harbor-jobservice /harbor/start.sh Up 7 harbor-log /bin/sh -c /usr/local/bin/ ... Up 127.0.0.1:1514->10514/tcp 8 harbor-ui /harbor/start.sh Up 9 nginx nginx -g daemon off; Up 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:80->80/tcp 10 redis docker-entrypoint.sh redis ... Up 6379/tcp 11 registry /entrypoint.sh serve /etc/ ... Up 5000/tcp
6:web界面访问
##访问之前,先在访问的机器hosts文件中定义解析地址

新建一个项目test-tomcat


二、测试
1:拉取tomcat公共镜像
1 [root@node2 src]# docker pull tomcat:9.0 2 9.0: Pulling from library/tomcat 3 844c33c7e6ea: Pull complete 4 ada5d61ae65d: Pull complete 5 f8427fdf4292: Pull complete 6 f025bafc4ab8: Pull complete 7 67b8714e1225: Pull complete 8 a78c0b398690: Pull complete 9 db8414d1baad: Pull complete 10 4fd8b5730f57: Pull complete 11 2985be663ca3: Pull complete 12 6c2146356687: Pull complete 13[root@node2 src]# docker tag tomcat:9.0 harbor.test.com/test-tomcat/tomcat:9.0
2:把tomcat推送到harbor仓库里(首次上传,需要先通过docker login登录)
1 [root@node2 src]# docker login https://harbor.test.com 2 Username: admin 3 Password: 4 WARNING! Your password will be stored unencrypted in /root/.docker/config.json. 5 Configure a credential helper to remove this warning. See 6 https://docs.docker.com/engine/reference/commandline/login/#credentials-store 7 8 Login Succeeded
1 [root@node2 src]# docker push harbor.test.com/test-tomcat/tomcat:9.0 2 The push refers to repository [harbor.test.com/test-tomcat/tomcat] 3 0c2c0181da75: Pushed 4 dd940d218ae3: Pushed 5 3254597aa3ac: Pushed 6 25efa461ccff: Pushed 7 4272c5799ff4: Pushed 8 9a11244a7e74: Pushed 9 5f3a5adb8e97: Pushed 10 73bfa217d66f: Pushed 11 91ecdd7165d3: Pushed 12 e4b20fcc48f4: Pushed 13 9.0: digest: sha256:ef41ad8f2e6119f71dad674d29b0edd28057eaf25be8786d3e259a1152d4fd25 size: 2422
在web页面,项目里查看是否成功

记录每一天有趣的事情!!