Kubernetes集群搭建之企业级环境中基于Harbor搭建自己的私有仓库 - 鬼谷君 - 博客园

标签: | 发表时间:2019-03-10 10:48 | 作者:
出处:http://www.cnblogs.com

image

搭建背景


企业环境中使用Docker环境,一般出于安全考虑,业务使用的镜像一般不会从第三方公共仓库下载。那么就要引出今天的主题

企业级环境中基于Harbor搭建自己的安全认证仓库

介绍


名称:Harbor

官网:https://github.com/vmware/harbor

简介:Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

部署Harbor


Harbor是基于Docker-Compose进行编排的,需要配合Docker和Docker-compose使用。Docker的安装可以看我的另一篇 文章

下载Docker-Compose最新稳定版


      [root@harbor-01 hub]# pwd/opt/hub[root@harbor-01 hub]# curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

ps: 可能会报错Peer reports incompatible or unsupported protocol version.,升级下curl就行

添加可执行权限


      [root@harbor-01 hub]# chmod +x /usr/local/bin/docker-compose

验证版本


      [root@harbor-01 hub]# docker-compose -vdocker-compose version 1.23.2, build 1110ad01

解压安装包



      [root@harbor-01 hub]# ls-rw-r--r-- 1 root root 541535889 Mar 4 18:52 harbor-offline-installer-v1.7.3.tgz[root@harbor-01 hub]# tar xf harbor-offline-installer-v1.7.3.tgz

修改配置


主要修改hostname字段配置

      [root@harbor-01 hub]# cd harbor/[root@harbor-01 hub]# vim harbor.cfghostname = hub.test.tech # 本机外网IP或域名,该地址供用户通过UI进行访问,不要使用127.0.0.1ui_url_protocol = http # 用户访问私仓时使用的协议,默认时httpdb_password = root123    # 指定mysql数据库管理员密码harbor_admin_password:Harbor12345 # harbor的管理员账户密码

通过官方一键脚本安装


      [root@harbor-01 hub]#./install.sh......[Step 4]: starting Harbor ...Creating network "harbor_harbor" with the default driverCreating harbor-log ... doneCreating harbor-db ... doneCreating registryctl ... doneCreating registry ... doneCreating harbor-adminserver ... doneCreating redis ... doneCreating harbor-core ... doneCreating harbor-portal ... doneCreating harbor-jobservice ... doneCreating nginx ... done✔ ----Harbor has been installed and started successfully.----Now you should be able to visit the admin portal at http://hub.test.tech. For more details, please visit https://github.com/goharbor/harbor .

测试登陆


      [root@harbor-01 harbor]# docker login hub.test.techUsername: adminPassword: WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded

在windows上用域名访问需要绑定下hosts即可

image

默认账号密码 admin  Harbor12345

使用


我这里创建个mytest的公开项目做测试(不使用默认的library)。公开项目pull不需要登录,push需要登录

image

接下来我们试下推个镜像到Harbor的mytest项目中,这里我以公共镜像goharbor/nginx-photon:v1.7.3镜像为例 ,需要注意的是要往私有仓库推镜像就得打个tag才行 指明要推往哪个仓库并标注标签

注意:我这里使用的这个域名是自定义的,那么需要在需要上传下载镜像的机器上添加hosts绑定,因为我这没开启https所有也要修改docker配置

      [root@harbor-01 ~]# cat /etc/docker/daemon.json {"insecure-registries": ["hub.test.tech"]}

重启docker即可

      [root@harbor-01 harbor]# docker images|grep nginx-photongoharbor/nginx-photon v1.7.3 9d8222585538 3 weeks ago 35.6MB[root@hub harbor]# docker tag goharbor/nginx-photon:v1.7.3 hub.test.tech/mytest/nginx-photon:v1[root@harbor-01 harbor]# docker push hub.test.tech/mytest/nginx-photon:v1The push refers to repository [hub.test.tech/mytest/nginx-photon]f08bfdb20f6f: Pushed 8e45c790c209: Pushed v1: digest: sha256:03d473217d79c40c3b4e0d6015098f8d16364707980e12b5e7330ac76938d16a size: 739

可以看到push成功,我们去页面上看看

image

pull演示


点击镜像详情可以看到具体标签版本,鼠标放在"pull命令"图标上可以获取命令

image

      [root@harbor-01 harbor]# docker pull hub.test.tech/mytest/nginx-photon:v1v1: Pulling from mytest/nginx-photonDigest: sha256:03d473217d79c40c3b4e0d6015098f8d16364707980e12b5e7330ac76938d16aStatus: Downloaded newer image for hub.test.tech/mytest/nginx-photon:v1

本篇介绍了Harbor的基本部署和使用,更多高级使用方法后续会分享。下一章介绍部署Etcd集群,敬请期待,谢谢!

往期文章一览

1、 Kubernetes集群搭建之系统初始化配置篇

END

如果你觉得文章还不错,请大家点 『好看』分享下。你的肯定是我最大的鼓励和支持。


相关 [kubernetes 集群 企业] 推荐:

Kubernetes集群搭建之企业级环境中基于Harbor搭建自己的私有仓库 - 鬼谷君 - 博客园

- -
企业环境中使用Docker环境,一般出于安全考虑,业务使用的镜像一般不会从第三方公共仓库下载. 企业级环境中基于Harbor搭建自己的安全认证仓库. 官网:https://github.com/vmware/harbor. 简介:Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution.

Kubernetes & Microservice

- - 午夜咖啡
这是前一段时间在一个微服务的 meetup 上的分享,整理成文章发布出来. 谈微服务之前,先澄清一下概念. 微服务这个词的准确定义很难,不同的人有不同的人的看法. 比如一个朋友是『微服务原教旨主义者』,坚持微服务一定是无状态的 http API 服务,其他的都是『邪魔歪道』,它和 SOA,RPC,分布式系统之间有明显的分界.

Kubernetes 完全教程

- - 午夜咖啡
经过一个阶段的准备,视频版本的 《Kubernetes 完全教程》出炉了. 课程一共分为七节,另外有一节 Docker 预备课,每节课大约一个多小时. 目标是让从没接触过 Kubernetes 的同学也能通过这个课程掌握 Kubernetes. 为什么要学习 Kubernetes. 在介绍课程之前,先说说为什么要学习 Kubernetes 以及什么人需要学习 Kubernetes.

喜大普奔:Spark on kubernetes

- - Zlatan Eevee
两个星期前(08/15/2017),spark社区提了一个新的SPIP(Spark Project Improvement Proposals): Spark on Kubernetes: Kubernetes as A Native Cluster Manager,即用k8s管理spark集群. 经过社区2个星期的投票,看上去很快要能合入了.

Kubernetes 日志收集方案

- - IT瘾-dev
Kubernetes 中的基本日志. Kubernetes 日志收集. 以 sidecar 容器收集日志. 用 sidecar 容器重新输出日志. 使用 sidecar 运行日志采集 agent. 前面的课程中和大家一起学习了 Kubernetes 集群中监控系统的搭建,除了对集群的监控报警之外,还有一项运维工作是非常重要的,那就是日志的收集.

一篇文章带你了解Kubernetes安装

- - Tony Bai
由于之前在阿里云上部署的 Docker 1.12.2的Swarm集群没能正常展示出其所宣称的Routing mesh和VIP等功能,为了满足项目需要,我们只能转向另外一种容器集群管理和服务编排工具 Kubernetes. 注:之前Docker1.12集群的Routing mesh和VIP功能失效的问题,经过在github上.

Kubernetes中的服务发现与负载均衡

- - Feisky's Blog
Kubernetes在设计之初就充分考虑了针对容器的服务发现与负载均衡机制,提供了Service资源,并通过kube-proxy配合cloud provider来适应不同的应用场景. 随着kubernetes用户的激增,用户场景的不断丰富,又产生了一些新的负载均衡机制. 目前,kubernetes中的负载均衡大致可以分为以下几种机制,每种机制都有其特定的应用场景:.

将 Java 应用容器化改造并迁移到 Kubernetes 平台

- - IT瘾-dev
为了能够适应容器云平台的管理模式和管理理念,应用系统需要完成容器化的改造过程. 对于新开发的应用,建议直接基于微服务架构进行容器化的应用开发;对于已经运行多年的传统应用系统,也应该逐步将其改造成能够部署到容器云平台上的容器化应用. 本文针对传统的Java 应用,对如何将应用进行容器化改造和迁移到Kubernetes 平台上进行说明.

部署微服务的时候,Spring Cloud 和 Kubernetes 哪个更好? - DockOne.io

- -
【编者的话】本文比较了当下最火热的两大微服务开发平台:Spring Cloud和Kubernetes的优缺点,并指出结合二者的优点来组合使用,将在微服务旅程上获得更大成功. 当我们需要部署微服务的时候,哪个更好. Spring Cloud还是Kubernetes. 答案是都可以,只是各自有其优势. Kubernetes都宣称自己是开发和运行微服务的最佳环境,但是它们的本质非常不一样,所追求的目标也不同.

集群概念

- - 开源软件 - ITeye博客
        集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台. 在客户端看来,一个集群就象是一个服务实体,但 事实上集群由一组服务实体组成.         与单一服务实体相比较,集群提供了以下两个关键特性:.        1.可扩展性--集群的性能不限于单一的服务实体,新的服 务实体可以动态地加入到集群,从而增强集群的性能.