全部產品
Search
文件中心

Container Service for Kubernetes:應用分發概述

更新時間:Mar 19, 2025

您可以通過ACK One艦隊的應用分發功能將艦隊執行個體中的應用分發至多個關聯集群中。通過在艦隊執行個體中定義分發策略,精準選擇出合格Kubernetes資源,並將其分發至策略指定的多個目的地組群中。您還可以定義差異化策略來選擇需要差異化部署的叢集以及應用。相比於GitOps方式,它無需依賴Git倉庫。

工作原理

您可以在艦隊執行個體中建立應用資源,通過定義PropagationPolicyClusterPropagationPolicy分發策略,選擇將哪些資源分發至關聯集群中。也可以定義OverridePolicyClusterOverridePolicy差異化策略,對需要分發的資源根據關聯集群的需求進行差異化修改。

說明

PropagationPolicyOverridepolicy只有在初始化時需要建立。建立之後,二者會持續生效,您可以通過PropagationPolicy選中需要發布部署的應用,通過Overridepolicy進行應用資源的差異化配置。後續您對艦隊中應用資源的升級或修改會直接持續發布部署到您的子叢集中。您可以通過AMC外掛程式查看子叢集的應用分髮狀態。

進階功能

支援對於Workload的靜態權重和動態調度

在多叢集應用分發情境中,艦隊執行個體提供基於分發策略驅動的副本調度機制。支援兩種維度工作負載副本分配策略:

  • 靜態權重分配策略:叢集管理員可以通過配置分發策略賦予目的地組群不同的權重係數,調度器按照歸一化權重值按比例分配副本。詳細配置方式,請參見replicaScheduling參數說明

  • 動態資源比例分配策略:調度器會根據各個叢集的可用資源來計算最多容納Pod的數量,並以此數量作為叢集的權重來確定最終的副本分配數。詳細配置方式,請參見動態分發和重調度

支援重調度

在多叢集應用分發情境中,由於叢集可用資源的動態變化,工作負載可能會因優先順序不足或資源不足等原因導致調度失敗。當目的地組群的工作負載處於調度失敗狀態時,重調度器會將調度失敗的副本進行重新調度,並執行跨叢集的副本遷移操作,從而確保工作負載的正常運行。重調度能力預設啟用,若您需要驗證重調度能力,請參見驗證重調度能力

支援應用層級的故障遷移

在多叢集任務作業情境中,通過線上業務和離線作業混部可以提升資源使用率。為避免離線作業對線上業務造成影響,任務作業通常以低優先順序運行,或使用Spot搶佔執行個體。在這種情況下,任務可能會因為節點異常、高優先順序Pod搶佔、Spot執行個體釋放等原因運行失敗。

針對以上問題,艦隊執行個體提供應用層級的容錯移轉。當作業任務運行失敗時,故障遷移會自動將該目的地組群的作業任務遷移到其他叢集繼續運行,無需手動幹預。詳細步驟請參見如何在艦隊執行個體中使用KubeQueue並通過Gang調度PyTorchJob

支援多叢集Gang調度

Gang調度主要用於確保一組關聯的Pod能夠同時調度到叢集中的節點上,若無法滿足該條件,則這些Pod都不會被調度。這一機制解決了原生調度器無法支援All-or-Nothing作業調度的問題。多叢集Gang調度則是從多叢集角度出發,採用預占或動態資源檢測的方式,將作業的一組關聯Pod都運行在同一叢集內。

在使用PyTorchJob、TFJob等實現多機多卡分布式訓練,或者使用SparkApplication運行Spark任務時,由於其Master-Worker或Driver-Executor的架構,組件間需要相互連信,所以需要使用多叢集Gang調度來將這些作業調度到同一叢集內運行。

ACK One艦隊通過支援多叢集Gang調度,並與重調度和故障遷移能力相結合,保障AI作業可在資源充足的叢集中正常運行。更多詳情請參見作業分發

分發資源說明

ACK One艦隊執行個體支援多叢集應用分發和差異化部署的資源分發說明如下表所示。

說明

如果您擁有在艦隊執行個體中建立資源的許可權,預設擁有該資源分發的許可權。

資源層級

資源類型

APIVersion

分發策略

差異化策略

叢集層級

Namespace

v1

支援

支援

PersistentVolume

v1

支援

支援

StorageClass

storage.k8s.io/v1

支援

支援

CutomResourceDefinition

apiextensions.k8s.io/v1

支援

支援

命名空間層級

Deployment

apps/v1

支援

支援

StatefulSet

apps/v1

支援

支援

DaemonSet

apps/v1

支援

支援

Job

batch/v1

支援

支援

CronJob

batch/v1

支援

支援

Ingress

networking.k8s.io/v1

支援

支援

Service

v1

支援

支援

PersistentVolumeClaim

v1

支援

支援

ConfigMap

v1

支援

支援

Secret

v1

支援

支援

Pod

v1

支援

支援

LimitRange

v1

支援

支援

ResourceQuota

v1

支援

支援

HorizontalPodAutoscaler

autoscaling/v2

支援

支援

相關文檔

功能

說明

相關文檔

使用分發策略部署應用

詳細介紹如何使用kubectl通過分發策略PropagationPolicy、OverridePolicy將某些資源分發到關聯集群,幫您快速上手應用分發功能。

應用分發快速入門

策略詳細說明

詳細介紹如何定義一個分發策略和差異化策略,以及各個參數的含義,幫您深層理解應用分發策略的配置。

分發策略與差異化策略

使用AMC查看子叢集應用狀態

詳細介紹如何通過kubectl amc命令查看艦隊管理的子叢集中應用的分髮狀態。

AMC命令列協助