全部开发文档
选择文档

使用说明

本页目录使用说明1. 安装2. 配置2.1 在 EC2 实例上2.2 在任意机器上3. 运行

使用说明


1. 安装

从以下链接下载软件压缩包:

将压缩包解压到本地目录。本地目录结构如下:

代码示例
ROOT_DIR/
        +---cloud_functions/            * 不要修改
        +---cluster_scripts/            * 不要修改
        +---README-CN.md                * 本文件
        +---README.md                   * 英文说明文档
        +---cluster_config_ha.json      * 可修改:集群配置(高可用版本)
        +---cluster_config_no_ha.json   * 可修改:集群配置(常规版本)
        +---scalex-cmd                  * 可执行文件:命令行接口
        +---scalex-svc                  * 可执行文件:ScaleX 服务器启动器

ROOT_DIR/scalex-cmd(在 POSIX 上)或 ROOT_DIR\scalex-cmd.exe(在 Windows 上)是用于本地运行的命令行接口。如果您想自托管 ScaleX 服务,请运行 scalex-svc 可执行文件。

2. 配置

2.1 在 EC2 实例上

如果您在 AWS EC2 实例上运行 ScaleX,可以通过为 EC2 实例附加一个带有策略的 IAM 角色来开始使用 ScaleX。操作步骤如下:

  • 创建一个具有所需权限范围(附录scalex-所需权限)的 IAM 策略。
  • 创建一个 IAM 角色,并将上一步创建的策略附加到该角色上。
  • 将创建的 IAM 角色附加到 EC2 实例上。
    • 在 AWS 控制台中:操作(Actions)-> 安全(Security)-> 修改 IAM 角色(Modify IAM role)-> 选择角色(Choose the Role)-> 更新 IAM 角色(Update IAM Role)

有关如何使用 awscli 或在 AWS 控制台中执行上述操作的更多详细信息,请参阅 AWS 文档。

或者,您也可以提供 AWS 凭证。具体步骤见下文。

2.2 在任意机器上

您可以在任意本地或远程机器(包括 AWS EC2 实例)上提供 AWS 凭证(access_key_id 和 secret_access_key)来运行 ScaleX。

重要提示:

  • 对于命令行接口操作,scalex-cmd 不会将任何信息(除云 API 调用外)如凭证从您的本地环境中传出。config 命令仅读取您的凭证并本地存储。
  • 对于自托管的 ScaleX API 服务,请务必确保在创建和存储配置到后端时启用并妥善管理 SSL/TLS。

打开终端(在 POSIX 系统上)或命令提示符窗口(在 Windows 上)。

切换到 ScaleX 的 ROOT_DIR。假设 ROOT_DIR 是 /home/my/scalex_root。

运行以下命令:

  • my@ubuntu:~$ cd /home/my/scalex_root
  • my@ubuntu:~/scalex_root$ ./scalex-cmd config --action create --key-name my-first-key --cloud aws --ak your_access_key --sk your_secret_key

如果一切顺利,您的凭证将被保存到本地。控制台输出类似于:

代码示例
Scalex (Scale-X): Scale Your Cloud and Save Your Cost. [Version: 0.0.2.0519]
Config action: create.
[*] Key name randomized to: my-first-key.b7dp2u341ig.
{
  "key_name": "my-first-key.b7dp2u341ig",
  "cloud_vendor": "aws"
}

请保持终端或 CMD 窗口打开以进行下一步操作。

3. 运行

注意: 在 macOS 系统( macOS 13 Ventura 或更高版本)中,由于默认的隐私和安全策略,ScaleX 可能会被阻止运行。如果遇到这种情况,请按照以下步骤操作:

系统设置 -> 隐私与安全性 -> 向下滚动至 安全性 部分 -> 允许 scalex-cmd 运行

ScaleX 提供了一个带有多个命令和相应选项的命令行界面。详情如下:

用法:./scalex 命令 参数 ...

代码示例
命令         参数
config  配置云凭证。
                --action (create | list | update | delete)
        action: create
                --cloud (currently supported: aws)
                --key-name key_name
                --ak your_access_key
                --sk your_access_secret
        action: update | delete
                --key-name unique_key_name
create  创建一个 Kubernetes 集群。
        Command Line Interface:
                --config-file /your/config/file.json
                --config-b64 base64_encoded_config
                --pk-file /your/public/key/file
                --pk-text public_key_plain_text
                --pk-b64 base64_encoded_public_key
                --ssh-private-key-path /your/private/key/path (必需)
                --functions-root /your/functions/root/path
                --scripts-root /your/scripts/root/path
        API requests:
                --config-b64 base64_encoded_config
                --pk-text public_key_plain_text
                --pk-b64 base64_encoded_public_key
                --ssh-private-key-b64 base64_encoded_private_key (必需)
        说明:
                - 创建集群必须提供 SSH 私钥
                - ScaleX 在创建集群前会验证密钥对
                - 私钥被安全地管理在 ~/.scalex/ssh_keys/ 目录中
fetch   获取集群的云资源。
                --stack-id stack_id_string
                (optional)--region region_name
                --resource-types type_a,type_b,...
                --all
                --key-name key_name
delete  删除一个 Kubernetes 集群。
                --stack-id stack_id_string
                (optional)--region region_name
                --delete-logs
                --key-name key_name
list    列出您的堆栈。
                --type clusters | groups
                --regions all or --regions region_a,region_b,...
                --groups all or --groups group_a,group_b,...
                --key-name key_name
status  获取集群的状态。
                --stack-id stack_id_string
                (optional)--region region_name
                --summary
                --key-name key_name
start   启动集群的节点。
                --all
                --groups all or --groups group_a,group_b,...
                --stack-id stack_id_string
                (optional)--region region_name
                --key-name key_name
stop    停止集群的节点。
                --all
                --groups all or --groups group_a,group_b,...
                --stack-id stack_id_string
                (optional)--region region_name
                --key-name key_name
scale   扩容(增加)或缩容(删除)工作节点。
                --action (add | delete)
                --groups all or --groups group_a,group_b,...
                --count N (每个工作组添加/删除的节点数量)
                --stack-id stack_id_string
                (optional)--region region_name
                --key-name key_name
        说明:
                - 对于 'add':使用工作组 AMI 配置按需实例
                - 对于 'delete':仅删除没有用户 Pod 的节点(命名空间不以
                  'scalebox-' 开头)
                - Spot 实例优先被删除
                - 节点在终止前会被排空(drain)
blocks  查询、购买、扩展用于 ML 的容量块。
                --key-name key_name
                --action (query | purchase | extend | list)
        action: query
                --regions
                --acc-name
                --network-enhanced
                --instance-type
                --instance-count
                --date-start
                --date-end
                --duration-hours
        action: purchase
                --region
                --cb-offering-id
                --os-type
        action: extend
                --cb-id
                --extend-hours
cost	  获取 Spot Saving 的概览和/或详细信息。
		            --stack-id
		            --region
		            --key-name
		            (Optional)--details
		            (Optional)--latest
metadata  获取或更新工作组元数据。
                --action (get | update)
                --stack-id stack_id_string
                --key-name key_name
                (optional)--region region_name
                --groups all or --groups group_a,group_b,...
        action: get
                显示指定工作组的元数据
        action: update
                --patch-body '{"autoscaling": {"threshold": 90}}' (JSON 字符串)
                (或 --patch-body-b64 base64_encoded_json 用于 API)
                (或 --patch-file /path/to/patch.json 用于 CLI)
                使用部分 JSON 合并更新元数据
                不可修改的字段:group_name、instance_type、kata_enabled
        说明:
                - 元数据定义工作组的运行时配置
                - 对 autoscaling/od_to_spot 设置的更改立即生效
                - 使用空字典 {} 禁用可选功能(例如 od_to_spot)
sshell	启动一个交互式 Shell 并连接到远程集群
	      仅可用于命令行工具,API 不支持
		            --stack-id
		            (Optional)--host, --ssh-private-key-path, --user, --port, --master
sbatch	向集群发送远程执行指令
	      仅可用于命令行工具,API 不支持
		            --stack-id
		            (Optional)--host, --ssh-private-key-path, --user, --port, --master
		            --batch-script /your/script/file/path
		            (Optional)--executor (e.g. python3)
		            (Optional)--remote-path /remote/host/path
		            --batch-cmds 'commands to execute'
sftp	  与远程集群之间同步文件/目录
	      仅可用于命令行工具,API 不支持
		            --stack-id
		            (Optional)--host, --ssh-private-key-path, --user, --port, --master
		            --local /local/path
		            --remote /remote/path
		            --action (put|get)
		            --resume
help    Show help information

您的 AI 之旅,从这里启航

作为专为开发者与企业打造的前沿 AI 基础设施,
我们将为您提供完善的 AI 基础设施与专业指导,助力打造最适合您业务的完美解决方案。

联系我们