安装 SageMaker AI Spaces 附加组件 - 亚马逊 SageMaker AI

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

安装 SageMaker AI Spaces 附加组件

依赖项

Amazon EKS Pod 身份代理附加组件

  • 操作员获取AWS凭证所必需的

  • 通常预先安装在大多数 EKS 集群上

  • 安装:通过 EKS 附加组件

证书管理器

  • TLS 证书管理所必需的

  • 如果使用 HyperPod 快速创建集群,则@@ 预先安装

  • 安装:通过 EKS 附加组件

EBS CSI 驱动程序

  • 空间永久存储(EBS 卷)所必需的

  • 使用 SageMaker控制台@@ 安装时自动安装

  • 需要具有 AmazonEBSCSIDriverPolicy + HyperPod 特定权限的 IAM 角色

  • 安装:通过 EKS 附加组件。但是,请务必按照指南安装所需的其他权限 HyperPod。

  • 参考:在上使用 Amazon EBS CSI 驱动程序 HyperPod

WebUI 访问权限的其他依赖项

AWSLoad Balancer 控制器

外部 DNS

  • 使用自定义域名访问 WebUI 时为必填项

  • 自动管理 Route53 的 DNS 记录

  • 需要具有 Route53 权限的 IAM 角色

  • 安装:通过 EKS 附加组件

安装

在开始之前,请确保您已具备以下条件:

  • 至少有一个工作节点运行 Kubernetes 1.30 或更高版本的活跃 SageMaker HyperPod 集群

  • 至少一个具有最低实例类型(XX vCPU、YY GiB 内存)的工作节点

安装 Amazon SageMaker Spaces 附加组件

你可以使用快速安装来安装 SageMaker Spaces 插件,使用快速安装进行默认设置,也可以使用自定义安装进行高级配置。

快速安装

  1. 打开 Amazon SageMaker 控制台,网址为https://console.aws.amazon.com/sagemaker/

  2. 从集群列表中选择您的集群。

  3. 在 IDE 和笔记本选项卡上,找到 Amazon SageMaker Spaces,然后选择快速安装。

自动快速安装:

  • 为插件创建所需的 IAM 角色

  • 使用 Systems Manager 所需的 IAM 角色启用远程访问模式

  • 安装插件并配置 pod 身份关联

自定义安装

  1. 打开 Amazon SageMaker 控制台,网址为https://console.aws.amazon.com/sagemaker/

  2. 从集群列表中选择您的集群。

  3. 在 IDE 和笔记本选项卡上,找到 Amazon SageMaker Spaces,然后选择 “自定义安装”。

  4. 配置以下选项:

    插件所需的 IAM 角色

    • 选择是使用推荐权限创建新 IAM 角色还是使用具有所需权限的现有角色(请参阅上面的管理员权限设置部分)

    远程访问配置

    • 启用此选项可允许用户使用 S AWS ystems Manager 从本地 Visual Studio 代码连接到空间

    • 对于 SSM 托管实例角色:

      • 创建新角色-该插件使用所需的 Systems Manager 权限创建和管理角色

      • 使用现有角色-选择具有必要 Systems Manager 权限的预配置角色

    • 确保 Spaces 插件执行角色具有 SSM 托管实例角色的 PassRole权限

    注意

    启用远程访问会激活 S AWS ystems Manager 高级实例级别,按实例收取额外的费用。有关定价信息,请参阅 Systems Manager 定价。

    Web 浏览器访问配置

    • 启用后允许用户使用 Route 53 DNS 和 SSL 证书通过网络浏览器访问空间

    • 先决条件:在启用浏览器访问之前安装 AWS Load Balancer 控制器

    • Route 53 托管区域:选择现有区域或选择创建托管区域

    • 子域:输入子域名前缀(仅限字母数字和连字符,最多 63 个字符)

    • SSL 证书:

      • 创建新证书 — 使用 Route 53 的 DNS 记录自动从 AWS Certificate Manager 申请和验证

      • 使用现有证书-从 Certifice Manager 中选择一个 SSL AWS 证书

    • 令牌签名密钥:选择用于 JWT 令牌签名的 AWS KMS 非对称密钥,或者选择创建签名密钥

    注意

    对托管区域和 DNS 查询收取标准 Route 53 费用。有关定价信息,请参阅 Route 53 定价。

EKS 插件安装——带有 WebUI 的 Jupyter k8s

配置文件

创建addon-config.yaml

jupyter-k8s: workspacePodWatching: enable: true jupyter-k8s-aws-hyperpod: clusterWebUI: enabled: true domain: "<DOMAIN_NAME>" awsCertificateArn: "<ACM_CERTIFICATE_ARN>" kmsEncryptionContext: enabled: true traefik: shouldInstall: true auth: kmsKeyId: "<KMS_KEY_ARN>"

替换以下占位符:

  • <DOMAIN_NAME>: 您的域名(例如,jupyter.example.com

  • <ACM_CERTIFICATE_ARN>: 您的 ACM 证书 ARN(例如 arn:aws:acm:us-west-2:111122223333:certificate/12345678-1234-1234-1234-123456789012

  • <KMS_KEY_ARN>: 您的 KMS 密钥 ARN(例如 arn:aws:kms:us-west-2:111122223333:key/12345678-1234-1234-1234-123456789012

通过以下方式安装 AWS CLI
aws eks create-addon \ --cluster-name <CLUSTER_NAME> \ --addon-name amazon-sagemaker-spaces \ --configuration-values file://addon-config.yaml \ --resolve-conflicts OVERWRITE \ --region <AWS_REGION>

要更新现有插件,请执行以下操作:

aws eks update-addon \ --cluster-name <CLUSTER_NAME> \ --addon-name amazon-sagemaker-spaces \ --configuration-values file://addon-config.yaml \ --resolve-conflicts OVERWRITE \ --region <AWS_REGION>
通过以下方式安装 AWS 管理控制台
  1. 前往 EKS 控制台 → 选择您的集群

  2. 点击附加组件选项卡 → 添加新

  3. 选择 “SageMaker 空间” 插件

  4. 将上面的 YAML 配置粘贴到可选配置设置

  5. 点击广告

验证安装
# Check addon status aws eks describe-addon \ --cluster-name <CLUSTER_NAME> \ --addon-name amazon-sagemaker-spaces \ --region <AWS_REGION>
自定义 ALB 属性

默认情况下,插件会创建一个公共负载均衡器以用于 Web UI。您可以使用 EKS 插件属性自定义负载均衡器属性。

要创建内部 ALB,请将方案设置为:internal

jupyter-k8s-aws-hyperpod: clusterWebUI: enabled: true domain: "<DOMAIN_NAME>" awsCertificateArn: "<ACM_CERTIFICATE_ARN>" alb: scheme: "internal" # Default is "internet-facing"

您也可以使用该alb.annotations字段自定义 ALB 设置:

jupyter-k8s-aws-hyperpod: clusterWebUI: enabled: true domain: "<DOMAIN_NAME>" awsCertificateArn: "<ACM_CERTIFICATE_ARN>" alb: scheme: "internal" annotations: alb.ingress.kubernetes.io/security-groups: "<SECURITY_GROUP_ID>" alb.ingress.kubernetes.io/subnets: "<SUBNET_ID_1>,<SUBNET_ID_2>" alb.ingress.kubernetes.io/load-balancer-attributes: "idle_timeout.timeout_seconds=60"

常见的 ALB 注释:

  • alb.ingress.kubernetes.io/security-groups:为 ALB 指定安全组

  • alb.ingress.kubernetes.io/subnets: 为 ALB 指定子网

  • alb.ingress.kubernetes.io/load-balancer-attributes:设置 ALB 属性(空闲超时、访问日志等)

有关所有可用的注释,请参阅 AWSLoad Balancer 控制器文档

插件的升级/版本控制

aws eks update-addon \ --cluster-name <CLUSTER_NAME> \ --addon-name amazon-sagemaker-spaces \ --configuration-values file://addon-config.yaml \ --resolve-conflicts OVERWRITE \ --region <AWS_REGION>