摘要:在最新發布的1.5版本中,Karmada 提供了多調度組的能力,利用該能力,用戶可以實作將業務優先調度到成本更低的集群,或者在主集群故障時,優先遷移業務到指定的備份集群,
本文分享自華為云社區《Karmada v1.5發布!多調度組助力成本優化》,作者:華為云云原生團隊,
Karmada 是開放的多云多集群容器編排引擎,旨在幫助用戶在多云環境下部署和運維業務應用,憑借兼容 Kubernetes 原生 API 的能力,Karmada 可以平滑遷移單集群作業負載,并且仍可保持與 Kubernetes 周邊生態工具鏈協同,在最新發布的1.5版本中,Karmada 提供了多調度組的能力,利用該能力,用戶可以實作將業務優先調度到成本更低的集群,或者在主集群故障時,優先遷移業務到指定的備份集群,

本版本其他新增特性:
- 提供了多調度器支持能力,默認調度器可以與第三方自定義調度器協同作業,提供更強的定制能力,
- 集群差異化配置策略(OverridePolicy/ClusterOverridePolicy)將按照隱式的優先級進行應用,
- 內置資源解釋器支持聚合StatefulSet/CronJob 狀態,
新特性概覽
多調度組
根據 Flexera 發布的《2023 年云現狀調查報告》,云成本的管理取代了安全性話題,成為當下云使用者面臨的首要問題,

Karmada 秉承這一趨勢,同樣關注云成本管理,從v1.5版本開始,用戶可以在 PropagationPolicy/ClusterPropagationPolicy 中設定多個集群組,實作將業務優先調度到成本更低的集群組,下面我們給出一個針對成本優化進行調度的例子:
apiVersion: policy.karmada.io/v1alpha1 kind: PropagationPolicy metadata: name: nginx spec: resourceSelectors: - apiVersion: apps/v1 kind: Deployment name: nginx placement: clusterAffinities: - affinityName: local-clusters clusterNames: - local-member1 - local-member2 - affinityName: cloud-clusters clusterNames: - huawei-member1 - huawei-member2
上面的例子配置有本地集群組(local-clusters)和云上集群組(cloud-clusters),Karmada 在選擇集群組進行資源分發時, 將按順序對集群組逐一進行評估,直到找到滿足調度約束的集群組,所以在調度Deployment/nginx時,會優先嘗試調度到本地集群組的local-member1和local-member2,如果失敗(如資源不足),則選擇云上集群組,從而實作在本地集群資源足夠時,優先選擇成本更低的本地集群,基于此,系統管理員也可以定義主集群組和備份集群組,在主集群組故障時,將業務往備份集群組的集群遷移,下面我們給出一個針對容災遷移的例子:
apiVersion: policy.karmada.io/v1alpha1 kind: PropagationPolicy metadata: name: nginx spec: resourceSelectors: - apiVersion: apps/v1 kind: Deployment name: nginx placement: clusterAffinities: - affinityName: primary-cluster clusterNames: - member1 - affinityName: backup-cluster clusterNames: - member2
上面的例子通過配置主群組(primary-cluster)和備份集群組(backup-cluster),在調度 Deployment/nginx 時,如果主集群組滿足要求,會調度到主集群組的member1,在主集群組的集群故障時,調度器按順序匹配新集群組,將業務遷移到備份集群組的member2,
關于多調度組更多資訊,請參考:https://github.com/karmada-io/karmada/tree/master/docs/proposals/scheduling/multi-scheduling-group
自定義調度器
Karmada 默認調度器內置多款可靈活配置的插件,可以滿足大部分使用場景,用戶還可以使用插件擴展機制來實作個性化調度訴求,Karmada 1.5版本提供了多調度器支持能力,Karmada 默認調度器可以與第三方自定義調度器協同作業,以提供更強的定制能力,用戶可以參考默認調度器實作自定義調度器,當多個調度器共存時,需通過命令列啟動引數指定調度器名稱,如 --scheduler-name=my-scheduler ,如果自定義調度器與默認調度器部署在同一namespace中,建議同時配置 --leader-elect-resource-name 引數,以避免副本選主沖突,關鍵命令列啟動引數如下所示:
command: - /bin/karmada-scheduler - --kubeconfig=/etc/kubeconfig - --bind-address=0.0.0.0 - --secure-port=10351 - --enable-scheduler-estimator=true - --leader-elect-resource-name=my-scheduler # 你的自定義調度器名稱 - --scheduler-name=my-scheduler # 你的自定義調度器
通過引數 --scheduler-name 將多個調度器進行區分,每個調度器將只負責調度特定的作業負載,通過 Karmada 分發作業負載時,可以在 PropagationPolicy/ClusterPropagationPolicy 的 schedulerName 欄位指定調度器名字,如下所示:
apiVersion: policy.karmada.io/v1alpha1 kind: PropagationPolicy metadata: name: nginx-propagation spec: schedulerName: my-scheduler resourceSelectors: - apiVersion: apps/v1 kind: Deployment name: nginx placement: clusterAffinity: clusterNames: - member1 - member2
上例通過 schedulerName 指定此Deployment必須由名為 my-scheduler 的調度器進行調度,此時默認調度器將自動忽略該作業負載,schedulerName 如果沒有指定,則默認值為 default-scheduler ,意味著由默認調度器進行調度,前面版本的用戶升級到新版本時無需額外配置,關于如何擴展調度器插件和實作自定義調度器,請查看官方檔案:https://karmada.io/docs/developers/customize-karmada-scheduler/
版本升級
Karmada v1.5版本API兼容v1.4版本API,v1.4版本的用戶仍然可以平滑升級到v1.5版本,可參考升級檔案:https://karmada.io/docs/administrator/upgrading/v1.4-v1.5
致謝貢獻者
Karmada v1.5版本包含了來自25位貢獻者的數百次代碼提交,在此對各位貢獻者表示由衷的感謝:
貢獻者GitHub ID:
@a7i@calvin0327@carlory@chaunceyjiang@fengshunli@Fish-pro@Garrybest@helen-frank@ikaven1024@jwcesign@lonelyCZ@maoyangLiu@my-git9@Poor12@qingwave@RainbowMango@VedRatan@Wang-Kai@whitewindmills@wlp1153468871@wongearl@XiShanYongYe-Chang@yanfeng1992@yanggangtony@Zhuzhenghao
參考鏈接
-
Release Notes:https://github.com/karmada-io/karmada/releases/tag/v1.5.0
-
多調度組:https://github.com/karmada-io/karmada/tree/master/docs/proposals/scheduling/multi-scheduling-group
-
2023 年云現狀調查報告:https://info.flexera.com/CM-REPORT-State-of-the-Cloud
-
擴展調度器插件和實作自定義調度器:https://karmada.io/docs/developers/customize-karmada-scheduler/
附:Karmada社區技術交流地址
- 專案地址:https://github.com/karmada-io/karmada
- Slack地址:https://slack.cncf.io/(#karmada)
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/550561.html
標籤:其他
上一篇:基本的網路產品