这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

快速开始

部署您的第一个应用并掌握 Drycc 基础知识的分步指南。

1 - 快速开始

本指南帮助您设置 Drycc Workflow。

通过三个简单步骤开始使用 Drycc Workflow。

  1. 为 Helm 和 Drycc Workflow 安装 CLI 工具
  2. 启动 Kubernetes 并安装 Drycc Workflow
  3. 部署您的第一个应用

本指南将帮助您设置适合评估、开发和测试的集群。当您准备好进行预发和生产环境部署时,请查看我们的生产清单

步骤 1:安装 Workflow

对于快速开始,我们将安装 Drycc Workflow

步骤 2:安装 CLI 工具

对于快速开始,我们将安装 Drycc Workflow CLI

步骤 3:部署您的第一个应用

最后但同样重要的是,登录并部署您的第一个应用

2 - 安装 Workflow

在纯主机上安装 Workflow,它可以是云服务器、裸机服务器、虚拟机,甚至您的笔记本电脑。

如果您有一个纯主机,它可以是云服务器、裸机服务器、虚拟机,甚至您的笔记本电脑。那么本章非常适合您。

操作系统

Drycc 预计可以在大多数现代 Linux 系统上运行。一些 OSS 有特定要求:

  • (Red Hat/CentOS) Enterprise Linux,它们通常使用 RPM 包管理。
  • Ubuntu (Desktop/Server/Cloud) Linux,一个非常流行的发行版。
  • Debian GNU Linux,一个非常纯净的开源软件发行版。

如果您想添加更多 Linux 发行版支持,请在 GitHub 上提交 issue 或直接提交 PR。

系统软件

在安装 drycc workflow 之前,需要安装一些基本软件。

OS 配置

K8s 需要大量端口。如果您不确定它们是什么,请关闭本地防火墙或打开这些端口。 同时,因为 k8s 需要系统时间,您需要确保系统时间正确。

安装 NFSv4 客户端

安装 NFSv4 客户端的命令因 Linux 发行版而异。

对于 Debian 和 Ubuntu,使用此命令:

$ apt-get install nfs-common

对于 RHEL、CentOS 和 EKS 与 AmazonLinux2 镜像的 EKS Kubernetes Worker AMI,使用此命令:

$ yum install nfs-utils

安装 curl

对于 Debian 和 Ubuntu,使用此命令:

$ apt-get install curl

对于 RHEL、CentOS 和 EKS 与 AmazonLinux2 镜像的 EKS Kubernetes Worker AMI,使用此命令:

$ yum install curl

硬件

硬件要求基于您的部署规模而扩展。最低推荐在这里概述。

  • RAM:1G 最低(我们推荐至少 2GB)
  • CPU:1 最低

此配置仅包含满足操作的最低要求。

磁盘

Drycc 性能取决于数据库的性能。为了确保最佳速度,我们推荐尽可能使用 SSD。磁盘性能在利用 SD 卡或 eMMC 的 ARM 设备上会有所不同。

域名

Drycc 需要一个完全由您控制的根域名,并将此域名指向要安装的服务器。 假设有一个通配符域名指向当前安装 drycc 的服务器,即名称 *.dryccdoman.com。 我们需要在安装前设置 PLATFORM_DOMAIN 环境变量。

$ export PLATFORM_DOMAIN=dryccdoman.co

当然,如果是测试环境,我们也可以使用 nip.io,一个 IP 到域名的服务。 例如,您的主机 IP 是 59.46.3.190,我们将获得以下域名 59.46.3.190.nip.io

$ export PLATFORM_DOMAIN=59.46.3.190.nip.io

安装

在安装之前,请确保您的安装环境是否是公网。 如果是内网环境且没有公网 IP,您需要禁用自动证书。

$ export CERT_MANAGER_ENABLED=false

然后您可以使用 https://www.drycc.cc/install.sh 上的安装脚本在基于 systemd 和 openrc 的系统上将 drycc 安装为服务。

$ curl -sfL https://www.drycc.cc/install.sh | bash -

如果需要安装测试版,请使用如下脚本安装。

$ export CHANNEL=testing
$ curl -sfL https://drycc-mirrors.drycc.cc/drycc/workflow/raw/refs/heads/main/install.sh | bash -

安装节点

节点可以是简单的代理或服务器;服务器具有代理的功能。多个服务器具有高可用性,但服务器数量最多不应超过 7 个。代理数量没有限制。

  • 首先,检查主节点的集群令牌。
$ cat /var/lib/rancher/k3s/server/node-token
K1078e7213ca32bdaabb44536f14b9ce7926bb201f41c3f3edd39975c16ff4901ea::server:33bde27f-ac49-4483-b6ac-f4eec2c6dbfa

我们假设集群主节点的 IP 地址是 192.168.6.240,那样的话。

  • 然后,设置环境变量:
$ export K3S_URL=https://192.168.6.240:6443
$ export K3S_TOKEN="K1078e7213ca32bdaabb44536f14b9ce7926bb201f41c3f3edd39975c16ff4901ea::server:33bde27f-ac49-4483-b6ac-f4eec2c6dbfa"
  • 以服务器身份加入集群:
$ curl -sfL https://www.drycc.cc/install.sh | bash -s - install_k3s_server
  • 以代理身份加入集群:
$ curl -sfL https://www.drycc.cc/install.sh | bash -s - install_k3s_agent

安装选项

使用此方法安装 drycc 时,可以使用以下环境变量来配置安装:

环境变量 描述
PLATFORM_DOMAIN 必需项,指定 drycc 的域名
DRYCC_ADMIN_USERNAME 必需项,指定 drycc 的管理员用户名
DRYCC_ADMIN_PASSWORD 必需项,指定 drycc 的管理员密码
CERT_MANAGER_ENABLED 是否使用自动证书。默认是 false
CHANNEL 默认安装 stable 通道。您也可以指定 testing
KUBERNETES_SERVICE_HOST 设置为 kube-apiserver 前面的负载均衡器的 HOST
KUBERNETES_SERVICE_PORT 设置为 kube-apiserver 前面的负载均衡器的 PORT
METALLB_CONFIG_FILE metallb 配置文件路径,默认使用 layer 2 网络
LONGHORN_CONFIG_FILE Longhorn 配置文件路径
INSTALL_DRYCC_MIRROR 指定加速镜像位置。目前仅支持 cn
BUILDER_REPLICAS 要部署的构建器副本数
CONTROLLER_API_REPLICAS 要部署的控制器 API 副本数
CONTROLLER_CELERY_REPLICAS 要部署的控制器 celery 副本数
CONTROLLER_METRIC_REPLICAS 要部署的控制器指标副本数
CONTROLLER_MUTATE_REPLICAS 要部署的控制器变异副本数
CONTROLLER_WEBHOOK_REPLICAS 要部署的控制器 webhook 副本数
CONTROLLER_APP_RUNTIME_CLASS RuntimeClass 用于选择容器运行时配置。
CONTROLLER_APP_GATEWAY_CLASS drycc gateways 分配的 GatewayClass;默认使用默认 GatewayClass
CONTROLLER_APP_STORAGE_CLASS drycc volumes 分配的 StorageClass;默认使用默认 storageClass
VALKEY_PERSISTENCE_SIZE 分配给 valkey 的持久化空间大小,默认是 5Gi
VALKEY_PERSISTENCE_STORAGE_CLASS valkey 的 StorangeClass;默认使用默认 storangeclass
STORAGE_PERSISTENCE_SIZE 分配给 storage 的持久化空间大小,默认是 5Gi
STORAGE_PERSISTENCE_STORAGE_CLASS storage 的 StorangeClass;默认使用默认 storangeclass
MONITOR_GRAFANA_PERSISTENCE_SIZE 分配给 monitor.grafana 的持久化空间大小,默认是 5Gi
MONITOR_GRAFANA_PERSISTENCE_STORAGE_CLASS monitor grafana 的 StorangeClass;默认使用默认 storangeclass
DATABASE_PERSISTENCE_SIZE 分配给 database 的持久化空间大小,默认是 5Gi
DATABASE_PERSISTENCE_STORAGE_CLASS database 的 StorangeClass;默认使用默认 storangeclass
TIMESERIES_REPLICAS 要部署的时间序列副本数
TIMESERIES_PERSISTENCE_SIZE 分配给 timeseries 的持久化空间大小,默认是 5Gi
TIMESERIES_PERSISTENCE_STORAGE_CLASS timeseries 的 StorangeClass;默认使用默认 storangeclass
PASSPORT_REPLICAS 要部署的护照副本数
REGISTRY_REPLICAS 要部署的注册表副本数
HELMBROKER_API_REPLICAS 要部署的 helmbroker api 副本数
HELMBROKER_CELERY_REPLICAS 要部署的 helmbroker celery 副本数
HELMBROKER_PERSISTENCE_SIZE 分配给 helmbroker 的持久化空间大小,默认是 5Gi
HELMBROKER_PERSISTENCE_STORAGE_CLASS helmbroker 的 StorangeClass;默认使用默认 storangeclass
VICTORIAMETRICS_CONFIG_FILE victoriametrics 配置文件的路径,开启此项,下面的两个不会工作。
VICTORIAMETRICS_VMAGENT_PERSISTENCE_SIZE 分配给 victoriametrics vmagent 的持久化空间大小,默认是 10Gi
VICTORIAMETRICS_VMAGENT_PERSISTENCE_STORAGE_CLASS victoriametrics vmagent 的 StorangeClass;默认使用默认 storangeclass
VICTORIAMETRICS_VMSTORAGE_PERSISTENCE_SIZE 分配给 victoriametrics vmstorage 的持久化空间大小,默认是 10Gi
VICTORIAMETRICS_VMSTORAGE_PERSISTENCE_STORAGE_CLASS victoriametrics vmstorage 的 StorangeClass;默认使用默认 storangeclass
K3S_DATA_DIR k3s 数据目录的配置;如果未设置,使用默认路径
ACME_SERVER ACME 服务器 URL,默认使用 letsencrypt
ACME_EAB_KEY_ID 您的外部账户绑定所索引的密钥 ID
ACME_EAB_KEY_SECRET 您的外部账户对称 MAC 密钥的密钥 Secret

由于安装脚本将安装 k3s,其他环境变量可以参考 k3s 安装 环境变量

卸载

如果您使用安装脚本安装了 drycc,您可以使用此脚本卸载整个 drycc。

$ curl -sfL https://www.drycc.cc/uninstall.sh | bash -

3 - Drycc Workflow 客户端 CLI

如何下载、安装 Drycc CLI 工具。

Drycc Workflow 客户端 CLI

Drycc 命令行界面 (CLI) 让您与 Drycc Workflow 交互。 使用 CLI 创建、配置和管理应用程序。

使用以下命令为 Linux 或 Mac OS X 安装 drycc 客户端:

$ curl -sfL https://www.drycc.cc/install-cli.sh | bash -

其他人请访问:https://github.com/drycc/workflow-cli/releases

安装程序将 drycc 二进制文件放在当前目录中,但您应该将其移动到 $PATH 中的某个位置:

$ sudo ln -fs $PWD/drycc /usr/local/bin/drycc

$ sudo mv $PWD/drycc /usr/local/bin/drycc

通过运行 drycc version 检查您的工作:

$ drycc version
v1.1.0

将 workflow cli 更新到最新发布。

drycc update

4 - 部署您的第一个应用

使用 drycc cli 部署应用程序。

确定您的主机和主机名值

Drycc Workflow 需要一个通配符 DNS 记录来动态映射应用名称到路由器。

用户应该已经设置了 DNS 指向他们的已知主机。$hostname 值可以通过在 global.platformDomain 中设置的值前加上 drycc. 来计算。

登录到 Workflow

Workflow 使用 passport 组件创建和授权用户。 如果您已经有账户,使用 drycc login 对 Drycc Workflow API 进行身份验证。

$ drycc login http://drycc.example.com
Opening browser to http://drycc.example.com/v2/login/drycc/?key=4ccc81ee2dce4349ad5261ceffe72c71
Waiting for login... .o.Logged in as admin
Configuration file written to /root/.drycc/client.json

或者您可以使用用户名和密码登录

$ drycc login http://drycc.example.com --username=demo --password=demo
Configuration file written to /root/.drycc/client.json

部署应用程序

Drycc Workflow 支持三种不同类型的应用程序,Buildpacks、Dockerfiles 和容器镜像。我们的第一个应用程序将是一个简单的基于容器镜像的应用程序,所以您不必与检出代码搏斗。

运行 drycc create 在 Drycc Workflow 上创建一个新应用程序。如果您没有为应用程序指定名称,Workflow 会自动生成一个友好的(有时有趣的)名称。

$ drycc create --no-remote
Creating Application... done, created proper-barbecue
If you want to add a git remote for this app later, use `drycc git remote -a proper-barbecue`

我们的应用程序已创建并命名为 proper-barbecue。与 drycc 主机名一样,任何到 proper-barbecue 的 HTTP 流量将由边缘路由器自动路由到您的应用程序 pod。

让我们使用 CLI 告诉平台部署应用程序,然后使用 curl 向应用发送请求:

$ drycc pull drycc/example-go -a proper-barbecue
Creating build... done
$ curl http://proper-barbecue.$hostname
Powered by Drycc

Workflow 的边缘路由器知道所有关于应用程序名称的信息,并自动将流量发送到正确的应用程序。路由器将 proper-barbecue.104.197.125.75.nip.io 的流量发送到您的应用,就像 drycc.104.197.125.75.nip.io 被发送到 Workflow API 服务一样。

更改应用程序配置

接下来,让我们使用 CLI 更改一些配置。我们的示例应用构建为从环境读取配置。通过使用 drycc config set 我们可以更改应用程序的行为方式:

$ drycc config set POWERED_BY="Container Images + Kubernetes" -a proper-barbecue
Creating config... done

在幕后,Workflow 为您的应用程序创建了一个新发布,并使用 Kubernetes 提供零停机滚动部署到新发布!

验证我们的配置更改是否有效:

$ curl http://proper-barbecue.104.197.125.75.nip.io
Powered by Container Images + Kubernetes

扩展您的应用程序

最后,让我们通过添加更多应用程序进程来扩展我们的应用程序。使用 CLI 您可以轻松添加和删除额外的进程来服务请求:

$ drycc scale web=2 -a proper-barbecue
Scaling processes... but first, coffee!
done in 36s

NAME                                RELEASE    STATE    PTYPE       STARTED
proper-barbecue-v18-web-rk644       v18        up       web         2023-12-08T03:09:25UTC
proper-barbecue-v18-web-0ag04       v18        up       web         2023-12-08T03:09:25UTC

恭喜!您已使用 Drycc Workflow 部署、配置和扩展了您的第一个应用程序。

进一步探索

Drycc Workflow 可以做更多事情,试试 CLI: