云服务提供商和 Kubernetes#
本指南介绍如何在不同的云服务提供商和 Kubernetes 上部署 Argilla 服务器。
Kubernetes#
仓库中的 Kubernetes (k8s) 文件夹包含用于在 Kubernetes 上部署 Argilla 的最小配置的几个文件。这些文件还包含一些关于托管的资源需求建议。对于更强大的配置,我们建议使用 Helm charts。
argilla-server-deployment.yaml: 部署主 Argilla 服务器,
argilla-server-hpa.yaml: 缩放器,用于将服务器从 1 个扩展到 3 个 pod。
argilla-server-ingress.yaml: 服务器入口配置。
argilla-server-service.yaml: 服务器服务配置。
elasticsearch-deployment.yaml: 最小的 Elastic Search 配置。
elasticsearch-pvc.yaml: 用于动态扩展和保留数据的持久卷声明。
elasticsearch-service.yaml: Elastic 服务配置。
Helm charts#
为了更强大和现代的设置,我们建议将官方 Kubernetes helm charts 与 Argilla 服务器 Kubernetes yaml 结合使用。Argilla 本身没有任何 helm 支持,但仍然可以通过将 ARGILLA_ELASTICSEARCH 环境变量设置为 ElasticSearch 托管的端点,与 Helm 部署的 ElasticSearch 一起使用。
亚马逊云服务 (AWS)#
设置 AWS 配置文件#
必须安装 aws 命令 cli。然后,输入
aws configure --profile argilla
并按照命令指示操作。有关更多详细信息,请访问 AWS 官方文档。
一旦创建了配置文件(新条目应出现在文件 ~/.aws/config
中),你可以通过设置环境变量来激活它。
export AWS_PROFILE=argilla
创建 docker machine#
docker-machine create --driver amazonec2 \
--amazonec2-root-size 60 \
--amazonec2-instance-type t2.large \
--amazonec2-open-port 80 \
--amazonec2-ami ami-0b541372 \
--amazonec2-region eu-west-1 \
argilla-aws
可用的亚马逊机器镜像 (AMI) 取决于区域。提供的 AMI 适用于 eu-west 区域,并且是 ubuntu-16.04-server 镜像。要查找可用的最新镜像,请访问 AWS AMI Marketplace,选择“启动实例”并按 ubuntu
筛选(别忘了选择你的目标区域)。
如果你已经在目标区域中拥有多个实例和 VPC,建议在创建 Argilla 实例之前创建一个新的 VPC。添加以下参数以指定要用于实例的 VPC
--amazonec2-vpc-id vpc-1234abcd # Replace vpc-1234abcd with the created VPC id
验证 machine 创建#
$>docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
argilla-aws - amazonec2 Running tcp://52.213.178.33:2376 v20.10.7
保存分配的 machine ip#
在我们的例子中,分配的 ip 是 52.213.178.33
连接到远程 docker machine#
为了启用本地 docker 客户端和远程守护程序之间的连接,我们必须输入以下命令
eval $(docker-machine env argilla-aws)
定义 docker-compose.yaml#
# docker-compose.yaml
version: "3"
services:
argilla:
image: argilla/argilla-server:v1.29
ports:
- "80:80"
environment:
ARGILLA_ELASTICSEARCH: <elasticsearch-host_and_port>
ARGILLA_AUTH_SECRET_KEY: Please generate a 32 character random string with: openssl rand -hex 32
restart: unless-stopped
拉取镜像#
docker-compose pull
启动 docker 容器#
docker-compose up -d
访问 Argilla#
在我们的例子中 http://52.213.178.33
Azure#
在 Azure 上部署 Argilla 最简单的方法是使用 Azure 容器实例 (ACI) 服务。此服务允许你以无服务器方式运行容器,而无需管理底层基础设施。本指南将引导你使用 Azure CLI 工具部署 Argilla,并基于 Azure 文档 关于同一服务的文档。
🚒 在撰写本文时,仍然可以使用
docker run
命令和docker context
与 Azure 集成来部署 Argilla,但 此方法 即将弃用在 docker cli 中。
1. 验证 Azure 身份#
首先,你需要使用 az
CLI 验证 Azure 身份
az login
2. 设置 Azure 资源组#
创建一个资源组,用于部署 Argilla 服务器
az group create --name <resource-group> --location <location>
3. 创建 Azure 容器实例#
使用 az container create
命令创建 Azure 容器实例
az container create --resource-group <resource-group> --name <deployment-name> --image argilla/argilla-quickstart:latest --dns-name-label <dns-name> --ports 6900
一旦容器部署完成,你可以使用以下命令检查部署情况:
az container show --resource-group <resource-group> --name argilla --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" --out table
现在应该可以通过输出中提供的 FQDN 在端口 6900
上访问 Argilla。
Google Cloud Platform (GCP) 通过 Cloud Run#
首先,我们将使用 Cloud Run 部署 Argilla,这是一个用于扩展无状态容器的托管平台。要在 GCP 上部署 Argilla,你可以使用 Cloud Run,这是一个用于扩展无状态容器的托管平台。本指南将引导你使用 gcloud
CLI 工具部署 Argilla,并基于 GCP 文档。
🚒 为了简单起见,我们将部署 Argilla 快速入门镜像,这意味着我们有一个预先打包的存储层,并且无法使用 Cloud Run 的水平扩展功能。
1. 验证 GCP 身份#
首先,你需要使用 gcloud
CLI 验证 GCP 身份
gcloud auth login
2. 构建和部署容器#
我们将使用 gcloud run deploy
命令直接从 Docker Hub 部署 Argilla 容器。我们可以将 cloud run url 指向容器的默认端口 (6900) 并定义相关的计算资源。
gcloud run deploy <deployment-name> \
--region <region> \
--image argilla/argilla-quickstart:latest \
--allow-unauthenticated \
--port 6900 \
--cpu 2 \
--memory 4Gi \
--max-instances 1 \
--min-instances 1
现在你可以通过输出中提供的 URL 或运行以下命令访问 Argilla:
gcloud run services describe <deployment-name> \
--region <region> \
--format 'value(status.url)'
Google Cloud Platform (GCP) 在专用虚拟机上#
如果通过 Cloud Run 部署不适合你的用例,你可以通过 Cloud Compute 在专用虚拟机上部署 Argilla。将 Argilla 服务器部署到 Cloud Compute 涉及创建计算实例、设置 Docker 和 Docker Compose 以及配置外部流量的网络设置。请按照以下步骤操作
1. 创建实例#
使用必要的规范创建一个新的 Google Cloud VM 实例。
gcloud compute instances create "argilla-instance" \
--machine-type "n1-standard-2" \
--image-family "debian-10" \
--image-project "debian-cloud" \
--boot-disk-size "50GB" \
--zone "asia-south2-a"
2. SSH 进入实例#
实例运行后,使用 SSH 连接到它。
gcloud compute ssh argilla-instance --zone asia-south2-a
3. 安装依赖项#
更新包管理器并安装必要的依赖项。
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common gnupg2 lsb-release
4. 安装 Docker 和 Docker Compose#
在实例上安装 Docker Engine 和 Docker Compose。
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
5. 使用 Docker Compose 启动 Argilla#
从存储库中获取 docker-compose.yaml
文件并启动 Argilla 服务器。
mkdir argilla && cd argilla
wget -O docker-compose.yaml https://raw.githubusercontent.com/argilla-io/argilla/main/docker/docker-compose.yaml
sudo docker compose up -d
6. 允许外部流量#
配置防火墙规则以允许在所需端口上的传入流量。
gcloud compute instances add-tags argilla-instance --zone asia-south2-a --tags=argilla-instance
gcloud compute firewall-rules create allow-6900 --allow tcp:6900 --target-tags argilla-instance --description "Allow incoming traffic on port 6900"
7. 分配静态 IP 地址#
保留并分配静态 IP 地址,以确保可以通过相同的 IP 地址持续访问服务器。
gcloud compute addresses create my-static-ip --region asia-south2
8. 使用静态 IP 配置实例#
将静态 IP 地址绑定到实例。
STATIC_IP=$(gcloud compute addresses list --format="value(address)" --filter="name=my-static-ip")
gcloud compute instances delete-access-config argilla-instance --zone asia-south2-a --access-config-name "external-nat"
gcloud compute instances add-access-config argilla-instance --zone asia-south2-a --address $STATIC_IP
9. 测试连接#
通过向 Argilla 服务器发出 HTTP 请求来确认服务器可访问。
curl -vI $STATIC_IP:6900
现在你可以使用 URL http://[STATIC_IP]:6900
在浏览器中访问 Argilla 实例。