全部產品
Search
文件中心

Container Compute Service:在ACS叢集中建立Agent Sandbox

更新時間:Jul 16, 2026

本文介紹如何在ACS叢集中建立 Agent Sandbox(沙箱),完成組件安裝、預熱池建立、SDK 接入以及生產環境網域名稱和認證配置。

準備工作

  1. 建立ACS叢集,並開通Agent Sandbox服務

  2. 如已有叢集,開通服務後還需升級以下組件版本。

    1. 升級acs-virtual-node組件至 v2.17.0 及以上版本。

    2. 升級Kube Scheduler組件版本。

      叢集版本

      Kube Scheduler組件版本

      v1.28

      v1.28.12-aliyun-1.4.6及以上

      v1.30

      v1.30.3-aliyun-1.6.2及以上

      v1.31

      v1.31.0-aliyun-1.5.2及以上

      v1.32

      v1.32.0-apsara.6.11.11.3187ac8f及以上

安裝組件

說明

如已安裝組件,請升級ack-agent-sandbox-controller組件版本至v0.5.14-release.1及以上,升級ack-sandbox-manager組件版本至v0.6.0及以上。

  1. 登入容器計算服務控制台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇組件管理

  3. 安裝 Ingress Controller 和 Sandbox 相關組件。

    1. 安裝Ingress Controller組件。

      安裝ACS支援的任一Ingress Controller組件,用於從叢集外部存取sandbox-manager服務。後續步驟以安裝ALB Ingress Controller為例,建立一個公網類型的ALB執行個體。

    2. 安裝ack-agent-sandbox-controller組件。

      首次安裝需要先授權AliyunCSManagedAgentSandboxRole角色訪問您的雲資源,參數可先按照預設設定,如有額外並發需求,可再提升對應資源規格。

      關於該組件功能的詳細說明,請參見ack-agent-sandbox-controller

    3. 安裝ack-sandbox-manager組件。

      1. 準備E2B網域名稱。

        準備網域名稱、網域名稱解析和申請認證的詳細操作,請參見應用於生產環境

      2. 配置組件參數。

        修改classNamealb(即安裝Ingress Controller組件中自動建立的IngressClass),修改domain為實際網域名稱,修改adminApiKey為自訂API Key,其他配置保持預設。組件安裝完成後會在sandbox-system命名空間中建立一個名為sandbox-manager的路由。

        詳細參數說明

        配置項

        參數

        說明

        sandboxManager

        replicaCount

        sandbox-manager 執行個體個數,預設值為 3。

        E2B

        domain

        E2B網域名稱,請參考準備E2B網域名稱

        Enable E2B_API_KEY verification

        是否開啟 API_KEY 鑒權,預設開啟。

        adminApiKey

        開啟鑒權後,首次安裝時通過該配置項來指定最初的 Key。請替換為自訂的API Key。

        Controller

        logLevel

        controller日誌等級,預設為 1。

        resources.requests.cpu

        controller CPU資源請求,預設為 2。

        resources.requests.memory

        controller 記憶體資源請求,預設為 4Gi。

        Proxy

        resources.requests.cpu

        proxy CPU資源請求,預設為 2。

        resources.requests.memory

        proxy 記憶體資源請求,預設為 4Gi。

        Ingress

        className

        叢集中已配置的 IngressClass 名稱,如 albmse

      3. 若使用ALB Ingress Controller,還需同時為ALB執行個體和Ingress新增HTTPS:443監聽配置。

        更新AlbConfig,為ALB執行個體新增HTTPS:443監聽。

        1. 在左側導覽列,選擇工作負載 > 自訂資源。在資來源物件瀏覽器頁簽中,搜尋AlbConfig,然後單擊搜尋結果。

        2. 在AlbConfig資來源物件列表中,找到目標資源alb,單擊其右側操作列下的YAML 編輯

        3. 新增spec.listeners.port: 443spec.listeners.protocol: HTTPS欄位,然後單擊確定

          spec:
            config:
              addressAllocatedMode: Fixed
              addressType: Internet
              zoneMappings:
                - vSwitchId: vsw-xxx
                - vSwitchId: vsw-xxx
            listeners:
              - port: 80
                protocol: HTTP
              - port: 443
                protocol: HTTPS

        更新Ingress,關聯HTTPS:443監聽。

        1. 在左側導覽列,選擇網路 > 路由。在sandbox-manager路由右側操作欄中,單擊更新

        2. 添加以下配置,單擊確定

          • 註解alb.ingress.kubernetes.io/listen-ports: [{"HTTP": 80}, {"HTTPS": 443}]

建立Agent Sandbox

步驟一:通過 SandboxSet 建立預熱池

預熱池是一組預先建立的 Sandbox 副本,由 SandboxSet CR 管理。應用從預熱池中直接擷取已就緒的 Sandbox,可顯著提高交付效率。
  1. 單擊左側導覽列自訂資源,選擇資源定義(CustomResourceDefinition)頁簽,單擊使用YAML建立資源

  2. 使用以下 YAML 建立 SandboxSet 資源。ack-sandbox-manager 會自動監聽並識別該資源,同步初始化名為 code-interpreter 的沙箱模板配置。

    apiVersion: agents.kruise.io/v1alpha1
    kind: SandboxSet
    metadata:
      name: code-interpreter
      namespace: default
    spec:
      runtimes:
      - name: csi           # 支援CSI掛載能力,建立的Sandbox會被注入對應的Sidecar
      - name: agent-runtime # 注入envd等環境管理工具
      replicas: 4
      template:
        metadata:
          labels:
            alibabacloud.com/acs: "true"
            alibabacloud.com/compute-class: agent-sandbox # Agent Sandbox 執行個體類型 
            alibabacloud.com/compute-qos: default # 算力品質 default/best-effort
        spec:
          automountServiceAccountToken: false
          containers:
          - image: registry-cn-zhangjiakou-vpc.ack.aliyuncs.com/acs/code-interpreter:v1.6 # 替換成實際叢集所在的地區
            imagePullPolicy: IfNotPresent
            name: sandbox
            resources:
              limits:
                cpu: "1"
                memory: 1Gi
              requests:
                cpu: "1"
                memory: 1Gi
                ephemeral-storage: 30Gi
          terminationGracePeriodSeconds: 30

    關於 SandboxSet CRD 各欄位的詳細含義及進階配置,請參見Sandbox CRD 欄位說明

    code-interpreter鏡像使用說明

    • 鏡像拉取registry-cn-zhangjiakou-vpc.ack.aliyuncs.com/acs/code-interpreter鏡像是 ACS 基於 e2b-code-interpreter 專案製作的樣本鏡像,相容 E2B 用戶端的run_code介面。為了提高鏡像拉取速度可將鏡像地址中的地區修改為實際的地區名字,或去除-vpc通過公網拉取。

      重要

      該鏡像僅用於示範和測試環境,不建議在生產環境使用。如需在生產環境中部署,請務必進行必要的安全強化、效能最佳化及功能增強,以滿足實際業務的安全性與穩定性要求。

    • 使用自訂鏡像:如需使用 E2B code-interpreter(直接使用或作為 base 鏡像),推薦選擇 ACS 提供的版本化鏡像。ACS 不保證運行時與 E2B 官方 latest 鏡像的相容性。如需要使用自訂鏡像,請確保鏡像滿足以下條件:

      1. 包含 cp、mv、mkdir 等基礎指令。

      2. 包含 bash 且可執行檔位於/bin/bash

      使用自訂鏡像時,E2B 的run_code方法暫時無法使用。

  3. 單擊左側導覽列容器組,選擇對應的命名空間,查看已建立的code-interpreter Sandbox。

    可通過kubectl get sbs命令查看 SandboxSet 資源,其中AVAILABLE表示已就緒的 Sandbox 數量。

當一個 Sandbox 被分配後,SandboxSet 會自動觸發補充流程,以維持預熱池執行個體數量。

步驟二:擷取Agent Sandbox

E2B SDK方式

Sandbox 支援通過 E2B SDK 在平台上開發、部署專案並查看效果,包括執行代碼(run_code)、讀寫檔案(files.write/files.read)、運行命令(commands.run)等操作。更多 SDK 使用說明,請參見使用 E2B SDK 接入 Agent Sandbox

  1. 在本地環境中安裝Python

  2. 安裝E2B Python SDK(僅支援小於v2.25.0的版本)。

    pip install "e2b-code-interpreter==2.7.0" "e2b==2.24.0"
  3. 配置環境變數。

    # 使用安裝ack-sandbox-manager組件時預設的網域名稱,不需要帶*,可按實際配置修改
    export E2B_DOMAIN=your.domain.com
    # 使用安裝ack-sandbox-manager組件時預設的API Key,可按實際配置修改
    export E2B_API_KEY=admin-987654321
  4. 將以下代碼儲存為main.py檔案。

    # Import the E2B SDK
    from e2b_code_interpreter import Sandbox
    sbx: Sandbox = Sandbox.create(template="code-interpreter")
    print(f"sandbox id: {sbx.sandbox_id}")
    result = sbx.run_code("print('hello, world')")
    print(f"run code result: {result}")
    text = input("enter some text to be saved to file 'text.txt' inside sandbox:  ")
    sbx.files.write("text.txt", text)
    print(f"read file from sandbox via files api: [{sbx.files.read('text.txt')}]")
    print(f"read file from sandbox via commands api: [{sbx.commands.run('cat text.txt')}]")
    input("press ENTER to kill the sandbox")
    print(sbx.kill())
                                

    create 介面 metadata 參數說明

    create 介面的 metadata 參數的使用方式,請參見使用樣本

    key

    含義

    value

    e2b.agents.kruise.io/never-timeout

    是否為Sandbox配置自動清理時間。配置true則不會使用逾時時間自動清理此Sandbox。

    • false

    • true

    e2b.agents.kruise.io/image

    是否為申請的Sandbox指定運行時鏡像,如果鏡像與預熱池中聲明的鏡像不一致會主動原地升級鏡像。

    特定鏡像名,例如ghcr.io/openclaw/openclaw:****

    e2b.agents.kruise.io/wait-ready-timeout-seconds

    主要用於申請時,鏡像更新情境。最長等待多久讓鏡像更新完成。

    整數,預設為60。

    e2b.agents.kruise.io/csi-volume-config

    支援申請Sandbox時,動態掛載NAS/OSS,格式為JSON字串,支援細粒度配置多掛載點。每個掛載點支援配置:

    1. pvName:上述 OSS/NAS的PersistentVolume名稱。

    2. mountPath:沙箱內的掛載目錄。

    3. subPath:OSS/NAS 的 BucketPath,表示絕對位址。

    volume_config = [

    {"pvName": "oss-pv-sandbox-system", "mountPath": "/home/data-oss1", "subPath": "data-subPath1","readOnly": true}]

    e2b.agents.kruise.io/claim-timeout-seconds

    本次擷取到可用沙箱最長等待多久,超過此時間直接置為申請失敗。

    整數,預設為60。

    e2b.agents.kruise.io/create-on-no-stock

    預設總是會從預熱池中擷取沙箱,如果預熱池中沒有可用沙箱則會等待沙箱補充與就緒。通過配置此項可以直接基於預熱池模板建立沙箱,減少等待時間。

    • false

    • true

    預設:false

    e2b.agents.kruise.io/skip-init-runtime

    申請Sandbox執行個體時,是否對Sandbox執行個體中的Agent-runtime進行初始化。如果沒有runtime進程或需要高度自訂則可以配置為false

    • false

    • true

    預設:true

    e2b.agents.kruise.io/reserve-failed-sandbox

    擷取沙箱時,如果出現錯誤管理組件會直接清理異常沙箱。通過此欄位可以讓管理組件保留髮生錯誤的Sandbox執行個體,用於問題排查。

    • false

    • true

    預設:false

    自訂中繼資料

    在擷取沙箱時,可以通過自訂kv,為Sandbox執行個體添加註解。

    自訂value,例如{"userId": "alice"}

  5. 運行main.py檔案,建立並驗證Sandbox。

    在第一次出現提示後,輸入文字如acs agent sandbox,然後按ENTER鍵,會在名為code-interpreter-29***的Pod的/home/user/text.txt檔案中寫入acs agent sandbox;若再次按ENTER鍵,則會刪除當前 Sandbox。
    python main.py

    預期輸出:

    sandbox id: default--code-interpreter-29***
    run code result: Execution(Results: [], Logs: Logs(stdout: ['hello, world\n'], stderr: []), Error: None)
    enter some text to be saved to file 'text.txt' inside sandbox:  acs agent sandbox
    read file from sandbox via files api: [acs agent sandbox]
    read file from sandbox via commands api: [CommandResult(stderr='', stdout='acs agent sandbox', exit_code=0, error='')]
    press ENTER to kill the sandbox
    True

SandboxClaim方式

預熱池分配Sandbox後,將立即啟動自動補足邏輯,快速回填預熱執行個體。

  1. 單擊左側導覽列自訂資源,選擇資源定義(CustomResourceDefinition)頁簽,單擊使用YAML建立資源

  2. 使用以下YAML建立 SandboxClaim 資源擷取Sandbox。

    apiVersion: agents.kruise.io/v1alpha1
    kind: SandboxClaim
    metadata:
      name: code-interpreter              # SandboxSet 的名字
      namespace: default                  # SandboxSet 的命名空間
    spec:  
      templateName: code-interpreter      # 指定 SandboxSet 的名字
      replicas: 1                         # 期望從 SandboxSet 中擷取的沙箱數量
      claimTimeout: 5m                    # 指定 SandboxClaim 的逾時時間 
      ttlAfterCompleted: 15m              # 指定 SandboxClaim 完成後的 TTL 時間。任務完成後,經過 TTL 時間,SandboxClaim 資源會被刪除(擷取到的沙箱不會被刪除)。
  3. 單擊左側導覽列容器組,選擇default命名空間,查看新擷取的名為code-interpreter-xxxxx的 Sandbox。

    可通過kubectl get sbx -l agents.kruise.io/claim-name=code-interpreter命令擷取 Sandbox狀態。
開發人員還可通過Kubernetes SDK方式來操作Sandbox資源。

替換Agent Sandbox容器鏡像

E2B SDK方式

參考以下Python代碼,替換<YOUR_IMAGE>為實際的鏡像地址,從預熱池中取出Sandbox後,通過metadata參數將容器鏡像替換為指定鏡像。

from e2b_code_interpreter import Sandbox
# timeout預設時間長度300秒
sbx = Sandbox.create(template="some-template", timeout=300, metadata={
    # 將沙箱容器的鏡像原地替換為指定鏡像
    "e2b.agents.kruise.io/image": "<YOUR_IMAGE>"
})
說明

沙箱支援通過鏡像緩衝(Image Cache)來加速鏡像拉取。可通過 Annotation ops.alibabacloud.com/update-with-image-cache 控制鏡像緩衝的使用時機,具體取值及適用情境如下:

  • false(預設)在預熱池擴容時使用鏡像緩衝。在此模式下,後續更新鏡像時不啟用鏡像緩衝。適用於更新鏡像與預熱池鏡像層重合度高、可大量複用的情境。

  • true在鏡像更新時使用鏡像緩衝。在此模式下,預熱池擴容時不啟用緩衝。適用於預熱池採用輕量佔位鏡像,或目標更新鏡像較大的情境。

展開查看YAML樣本

apiVersion: agents.kruise.io/v1alpha1
kind: SandboxSet
metadata:
  name: code-interpreter
spec:
  template:
    metadata:
      annotations:
        # 允許在鏡像更新時使用鏡像緩衝,預設值:false
        ops.alibabacloud.com/update-with-image-cache: "true"
...

SandboxClaim方式

替換以下<YOUR_IMAGE>為實際的鏡像地址。

apiVersion: agents.kruise.io/v1alpha1
kind: SandboxClaim
metadata:
  name: my-sandbox-claim
  namespace: default
spec:
  templateName: code-interpreter    # 指定SandboxSet預熱池名稱
  replicas: 1
  claimTimeout: 5m
  ttlAfterCompleted: 15m
  inplaceUpdate:
    # 期望升級的目標鏡像
    image: <YOUR_IMAGE> # 請將 cn-zhangjiakou 替換為實際地區ID 

指定Agent Sandbox資源規格

從預熱池分配 Sandbox 時支援容器原地垂直伸縮(VPA),將已預熱的低規格沙箱執行個體升配至業務所需規格,無需重建 Pod,兼顧預熱池的快速供給與業務側的差異化資源訴求。

說明
  • 當前僅支援調整 CPU,記憶體和其他資源會被忽略,且僅調整主容器。詳細的使用限制及使用說明,請參考基於CPU指標的容器原地垂直伸縮

  • 叢集在1.32以下版本時,需在組件管理Kube API Server配置特性門控InPlacePodVerticalScaling=true,開啟原地變更配置功能。

步驟一:為 SandboxSet 開啟原地變更配置

在 SandboxSet 的 spec.template.metadata.annotations 中添加 scaling.alibabacloud.com/enable-inplace-resource-resize: "true",允許預熱池中的 Sandbox 在被分配時執行原地 VPA。

以下樣本僅建立一個較小規格的預熱池,後續分配時可指定規格動態擴容。
apiVersion: agents.kruise.io/v1alpha1
kind: SandboxSet
metadata:
  name: code-interpreter
spec:
  template:
    metadata:
      annotations:
        # 允許從預熱池分配 Sandbox 時執行原地 VPA
        scaling.alibabacloud.com/enable-inplace-resource-resize: "true"
    spec:
      containers:
        - name: interpreter
          image: xxx
          resources:
            requests:
              cpu: 500m     
              memory: 1Gi 
            limits:
              cpu: 500m 
              memory: 1Gi
  replicas: 5  # 預熱執行個體數量

步驟二:分配時聲明目標資源規格

從預熱池中分配Agent Sandbox時,可通過以下兩種方式將 CPU 動態擴容至指定規格:

E2B SDK方式

Sandbox.createmetadata 中通過約定的鍵聲明目標 CPU 規格。

from e2b_code_interpreter import Sandbox
sbx = Sandbox.create(template="code-interpreter", metadata={
    "e2b.agents.kruise.io/cpu-request": "1000m",
    "e2b.agents.kruise.io/cpu-limit": "1000m"
})

SandboxClaim方式

在 SandboxClaim 的 spec.inplaceUpdate.resources 中聲明目標資源規格。

apiVersion: agents.kruise.io/v1alpha1
kind: SandboxClaim
metadata:
  name: code-interpreter-vpa-claim
  namespace: default
spec:
  templateName: code-interpreter
  replicas: 1
  claimTimeout: 5m
  ttlAfterCompleted: 15m
  inplaceUpdate:  # 聲明目標資源規格
    resources:
      requests:
        cpu: 1000m
      limits:
        cpu: 1000m

刪除Agent Sandbox

如需徹底移除執行個體,可通過以下方式刪除沙箱。

E2B SDK方式

通過E2B SDK刪除沙箱執行個體:將以下<YOUR_SANDBOX_ID>替換成實際的沙箱id

from e2b_code_interpreter import Sandbox
sandbox = Sandbox.connect("<YOUR_SANDBOX_ID>")
sandbox.kill()

Sandbox CR方式

# 執行前請將 <NAMESPACE> 替換為資源對應的命名空間,<RESOURCE_NAME>替換為實際的CR名稱
kubectl -n <NAMESPACE> delete sandbox <RESOURCE_NAME>

應用於生產環境

準備網域名稱

可參考添加/刪除內網權威網域名稱 (Zone)佈建網域名your.domain.com*.your.domain.com,並解析到Ingress的地址;如果訪問完全在ACS叢集內部,也可以直接使用叢集內Headless Service地址:sandbox-manager.sandbox-system.svc.cluster.local

申請認證

E2B 用戶端可以通過 HTTPS 協議請求後端。在生產情境下,推薦使用以下方式申請認證。

(推薦)方式一: 使用 cert-manager 管理憑證

以下步驟提供了一種使用 cert-manager 來管理和部署 sandbox-manager 自簽認證的最佳實務。請確保具備 kubectl 命令列工具並有cert-manager API的操作許可權。

步驟一:安裝 cert-manager

請參考 官方文檔 安裝 v1.14 版本的cert-manager。

由於最新版本使用的是社區的鏡像倉庫(quay.io),推薦使用 v1.14 版本。
步驟二:通過 cert-manager 自動管理憑證
  1. cert-manager.yaml 中的*.your.domain.comyour.domain.com替換為你的網域名稱。

    樣本YAML中使用了自簽的CA認證,也可以使用自己的CA認證。
  2. 執行kubectl apply -f cert-manager.yaml命令,將配置添加到 ACS 叢集中。

步驟三:驗證認證狀態
  1. 檢查認證是否正確建立和頒發。

    kubectl get certificates -n sandbox-system
    kubectl describe certificate sandbox-manager-ingress-cert -n sandbox-system
    kubectl describe secret sandbox-manager-tls -n sandbox-system
  2. 檢查 Ingress 狀態。

    kubectl get ingress sandbox-manager -n sandbox-system
    kubectl describe ingress sandbox-manager -n sandbox-system
步驟四:配置用戶端信任

若使用的是自我簽署憑證,用戶端需要根信任 CA 憑證。

  1. 擷取 CA 憑證。

    kubectl get secret sandbox-manager-tls -n sandbox-system -o jsonpath='{.data.tls\.crt}' | base64 -d > ca.crt
  2. 配置用戶端。用戶端需要設定環境變數 SSL_CERT_FILE 為擷取的 CA 憑證路徑或者將 CA 憑證添加到系統的信任儲存中。

    export SSL_CERT_FILE=/path/to/ca.crt

方式二:使用自簽認證

步驟一:建立認證
  1. 通過指令碼 generate-certificates.sh 建立自我簽署憑證。可通過以下命令查看指令碼的使用方法。

    bash generate-certificates.sh --help

    預期輸出:

    Usage: generate-certificates.sh [OPTIONS]
    Options:
      -d, --domain DOMAIN     Specify certificate domain (default: example.com)
      -o, --output DIR        Specify output directory (default: .)
      -D, --days DAYS         Specify certificate validity days (default: 365)
      -h, --help              Show this help message
    Examples:
      generate-certificates.sh -d myapp.example.com
      generate-certificates.sh --domain api.example.com --days 730
  2. 執行generate-certificates.sh -d your.domain.com命令,產生認證。完成認證產生後,會建立以下檔案:

    • fullchain.pem:伺服器憑證公開金鑰

    • privkey.pem:伺服器憑證私密金鑰

    • ca-fullchain.pem:CA 憑證公開金鑰

    • ca-privkey.pem:CA 憑證私密金鑰

    該指令碼會同時產生單網域名稱(your.domain.com)與泛網域名稱(*.your.domain.com)認證,相容原生 E2B 協議與 OpenKruise 定製 E2B 協議。

步驟二:安裝認證

通過以下命令將伺服器憑證掛載到叢集的 Ingress 上:

kubectl create secret tls sandbox-manager-tls \
        --cert=fullchain.pem \
        --key=privkey.pem -n sandbox-system
認證的生效可能會有一些延遲,具體生效時間由所用的 Ingress 控制器決定。
步驟三:配置用戶端信任

用戶端需要設定環境變數 SSL_CERT_FILE 為步驟一中產生的 CA 公開金鑰(ca-fullchain.pem)檔案路徑:

export SSL_CERT_FILE=/path/to/ca-fullchain.pem
python main.py # 通過 python 調用 E2B SDK

方式三:採用正式認證(以 Let's Encrypt 為例)

步驟一:準備認證

E2B 用戶端必須通過 HTTPS 協議請求後端。在生產情境下,推薦申請一個正式的網域名稱認證。

以下樣本通過 Let's Encrypt 申請一個免費的測試認證(Let's Encrypt認證需要強依賴公網網域名稱)。

  1. 通過系統的包管理器(brew、snap 等)安裝 certbot,更多安裝資訊請查看 官方文檔

  2. 修改-d--email的參數為泛網域名稱your.domain.com 申請認證。請根據命令的提示進行驗證操作。

由於簽發的認證同時包括泛網域名稱和單網域名稱,通過 TXT 解析鑒權的流程需要連續操作兩次。
sudo certbot certonly \
  --manual \
  --preferred-challenges=dns \
  --email your-email@example.com \
  --server https://acme-v02.api.letsencrypt.org/directory \
  --agree-tos \
  -d "your.domain.com" \
  -d "*.your.domain.com"
步驟二:匯出認證
sudo cp /etc/letsencrypt/live/your.domain.com/fullchain.pem ./fullchain.pem
sudo cp /etc/letsencrypt/live/your.domain.com/privkey.pem ./privkey.pem
步驟三:安裝認證
kubectl create secret tls sandbox-manager-tls \
  --cert=fullchain.pem \
  --key=privkey.pem \
  --namespace=sandbox-system

網域名稱解析

通過以下命令查看存取點資訊:

kubectl get ingress sandbox-manager -o jsonpath='{range .status.loadBalancer.ingress[*]}{.hostname}{.ip}{"\n"}{end}' -n sandbox-system

根據輸出的存取點資訊,佈建網域名 your.domain.com 或者 *.your.domain.com 的解析。更多網域名稱解析相關的操作,請參見快捷入口

  • 如果輸出的是一個 IP 位址(如47.114.***.***),請將主機記錄 *.your.domain.com 以 A 記錄類型解析到該 IP。

  • 如果輸出的是一個網域名稱(如alb-*****62roo70i*****.cn-hangzhou.alb.aliyuncsslb.com),請將主機記錄 *.your.domain.com 以 CNAME 記錄類型解析到對應網域名稱。

  • 如果輸出多個存取點,將記錄解析到其中任意一個存取點,或為所有存取點配置輪詢均可。

常見問題

ack-agent-sandbox-controller組件安裝失敗,錯誤資訊:[RAM Role AliyunCSManagedAgentSandboxRole is not granted]

  1. 進入RAM存取控制-角色頁面,搜尋AliyunCSManagedAgentSandboxRole,然後單擊角色名稱進入角色詳情頁。

  2. 在角色詳情頁,勾選AliyunCSManagedAgentSandboxRolePolicy,然後單擊解除授權

  3. 重新進行授權,單擊授權連結