在云原生环境里,有时候我们需要搭建自己的 apt 私有源,这样能更好地管理软件包,还能提高软件包的部署效率。今天咱们就来聊聊怎么基于 Harbor 搭建 apt 仓库,以及相关的权限管理和集群访问配置。

一、云原生环境与 apt 私有源的应用场景

1. 企业内部软件管理

在企业里,有很多内部开发的软件,这些软件可能没有公开的 apt 源。搭建 apt 私有源,就能把这些内部软件放到私有源里,方便企业内部的服务器和开发人员安装使用。比如说,一家互联网公司开发了一套内部的监控系统,把监控系统的软件包放到 apt 私有源后,各个部门的服务器都能轻松安装。

2. 网络安全考虑

在一些对网络安全要求很高的环境里,直接从公共 apt 源下载软件包可能存在安全风险。搭建 apt 私有源,企业可以对软件包进行严格的审核和管理,确保只有经过安全检查的软件包才能被下载和使用。就像银行这种对安全要求极高的机构,会使用 apt 私有源来保证软件的安全性。

3. 提高软件部署效率

当企业有大量服务器需要安装相同的软件包时,从公共 apt 源下载可能会因为网络问题导致下载速度慢。而使用 apt 私有源,服务器可以从本地的私有源快速下载软件包,大大提高了软件部署的效率。例如,一家电商公司在促销活动前需要快速部署大量服务器,使用 apt 私有源就能快速完成软件安装。

二、Harbor 简介及技术优缺点

1. Harbor 简介

Harbor 是一个开源的企业级容器镜像仓库,它不仅可以存储和管理容器镜像,还能用来搭建 apt 仓库。Harbor 提供了用户管理、访问控制、镜像复制等功能,非常适合企业级的使用。

2. 优点

  • 安全性高:Harbor 支持用户认证和授权,只有经过授权的用户才能访问仓库,保证了仓库的安全性。比如,企业可以设置不同的用户角色,不同角色有不同的访问权限。
  • 功能丰富:除了基本的存储和管理功能,Harbor 还提供了镜像复制、漏洞扫描等功能。镜像复制功能可以把镜像复制到不同的 Harbor 实例,方便在不同的环境中使用。
  • 易于集成:Harbor 可以和 Kubernetes、Docker 等云原生技术集成,方便企业在云原生环境中使用。

3. 缺点

  • 部署和维护复杂:Harbor 的部署和维护需要一定的技术水平,对于一些小型企业或者技术能力较弱的团队来说,可能会有一定的难度。
  • 性能问题:在高并发的情况下,Harbor 的性能可能会受到影响,需要进行性能优化。

三、基于 Harbor 搭建 apt 仓库

1. 环境准备

首先,你得有一台安装了 Docker 和 Docker Compose 的 Linux 服务器。这里以 Ubuntu 为例,安装 Docker 和 Docker Compose 的命令如下(技术栈:Shell):

# 安装 Docker
sudo apt-get update
sudo apt-get install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker

# 安装 Docker Compose
sudo apt-get install docker-compose -y

2. 下载并配置 Harbor

从 Harbor 的官方 GitHub 仓库下载最新的 Harbor 安装包,然后解压:

# 下载 Harbor 安装包
wget https://github.com/goharbor/harbor/releases/download/v2.5.0/harbor-offline-installer-v2.5.0.tgz
# 解压安装包
tar xvf harbor-offline-installer-v2.5.0.tgz
cd harbor

接着,修改 harbor.yml 配置文件,配置仓库的相关信息,比如仓库的地址、端口、管理员密码等:

# harbor.yml 部分配置示例
hostname: your-harbor-domain.com  # 替换为你的 Harbor 域名
http:
  port: 80  # HTTP 端口
harbor_admin_password: your-admin-password  # 管理员密码

3. 安装 Harbor

harbor 目录下执行安装脚本:

sudo ./install.sh

安装完成后,Harbor 就会启动,你可以通过浏览器访问 http://your-harbor-domain.com 来登录 Harbor。

4. 创建 apt 项目

登录 Harbor 后,创建一个新的项目,用于存储 apt 软件包。在 Harbor 的界面上,点击“项目” -> “新建项目”,输入项目名称和描述,然后点击“创建”。

5. 上传 apt 软件包

使用 Docker 命令将 apt 软件包上传到 Harbor 的 apt 项目中。首先,登录 Harbor:

docker login your-harbor-domain.com

然后,给 apt 软件包打标签并上传:

# 给软件包打标签
docker tag your-apt-package your-harbor-domain.com/your-project/your-apt-package:1.0
# 上传软件包
docker push your-harbor-domain.com/your-project/your-apt-package:1.0

四、Harbor 的权限管理

1. 用户管理

在 Harbor 中,你可以创建不同的用户,并为用户分配不同的角色。在 Harbor 的界面上,点击“用户” -> “新建用户”,输入用户名、密码等信息,然后点击“创建”。

2. 角色分配

Harbor 提供了几种不同的角色,比如项目管理员、开发人员、访客等。不同的角色有不同的权限,例如项目管理员可以管理项目的所有设置,开发人员可以上传和下载软件包,访客只能查看软件包信息。你可以在项目的设置中为用户分配角色。

3. 权限控制示例

假设你有一个名为 apt-project 的项目,你可以创建一个开发人员用户 developer,并为其分配开发人员角色。这样,developer 用户就可以上传和下载 apt-project 项目中的 apt 软件包,但不能修改项目的设置。

五、集群访问配置

1. 配置 apt 源

在集群中的每台服务器上,修改 /etc/apt/sources.list 文件,添加 Harbor 的 apt 源。例如:

# 添加 Harbor 的 apt 源
echo "deb [trusted=yes] http://your-harbor-domain.com/your-project/debian stretch main" | sudo tee -a /etc/apt/sources.list

2. 更新 apt 缓存

在服务器上执行以下命令更新 apt 缓存:

sudo apt-get update

3. 安装软件包

现在,你可以在服务器上使用 apt-get install 命令安装软件包了。例如:

sudo apt-get install your-apt-package

六、注意事项

1. 网络问题

确保集群中的服务器能够访问 Harbor 的地址,否则无法从 Harbor 的 apt 源下载软件包。

2. 安全问题

Harbor 的管理员密码要设置得复杂一些,避免被他人破解。同时,定期对 Harbor 进行漏洞扫描,确保仓库的安全性。

3. 性能问题

如果 Harbor 的性能出现问题,可以考虑对 Harbor 进行性能优化,比如增加服务器的资源、调整 Harbor 的配置等。

七、文章总结

通过本文,我们了解了云原生环境下基于 Harbor 搭建 apt 私有源的方法,包括环境准备、Harbor 的安装和配置、apt 仓库的创建和软件包的上传、权限管理以及集群访问配置等内容。搭建 apt 私有源可以提高企业内部软件管理的效率,增强网络安全,同时也能提高软件部署的速度。不过,在搭建和使用过程中,需要注意网络、安全和性能等方面的问题。