第四课Kubernetes生产级实践-Harbor的高可用方案和服务发现
tags:
- k8s
- 慕课网
categories:
- Harbor的高可用方案
- 服务发现
- Ingress
文章目录
第一节 Harbor的高可用方案
1.1 Harbor的介绍
- github网址:https://github.com/goharbor/harbor
- Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。
- 作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。
- Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。
- Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
1.2 Harbor的双主复制方案
- 双主复制该方案比较简单,需要搭建至少两个Harbor节点,并且节点之间能够互相复制,然后通过nginx代理Harbor节点提供外部访问。
- 这里采用的高可用方案级别没那么高,因为主要是通过Nginx代理其中一个节点,该节点挂掉后需要手动修改Nginx配置文件去代理另一个可用节点。
- 所以此方案比较适合中小型公司,而且Harbor主要是给公司内部的开发人员使用的,通常只需要保证分钟级的高可用性就可以了。
- 另外还有一点就是,云环境基本无法使用keepalived,因为云服务商一般不支持自定义外网可访问的虚拟IP,要么就是使用起来非常麻烦。这也是为什么没有采用keepalived的原因之一,当然,如果是部署在内网服务器上也是可以采用keepalived的。
1.3 Harbor的高可用搭建
- 搭建在之前的worker节点上,192.168.242.130和192.168.242.131。
- 下载harbor-offline-installer-v2.1.0.tgz
- 编辑配置文件
# 如果要配合docker-maven-plugin插件使用需要开启docker的2375端口提供外部访问docker
vim /usr/lib/systemd/system/docker.service
# 修改下面
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
systemctl daemon-reload // 1,加载docker守护线程
systemctl restart docker // 2,重启docker
tar -zxvf harbor-offline-installer-v2.1.0.tgz
cd harbor
# 配置harbor 将配置文件模板拷贝一份,并命名为harbor.yml,这是默认的配置文件名称
cp harbor.yml.tmpl harbor.yml
# 编辑harbor.yml文件,修改几处配置项:
vim harbor.yml
# 修改为当前所在节点的ip
hostname: 192.168.242.130
# 安装过程中如果提示 :The protocol is https but attribute ssl_cert is not set
# 解决办法:修改harbor.yml , 注释掉https相关
# 安装docker-compose,因为Harbor的安装脚本是基于docker-compose去安装的
curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod 755 /usr/local/bin/docker-compose
docker-compose version
./install.sh
# 关闭Harbo
docker-compose down