0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Kubernetes是如何解決資源拓?fù)涓兄{(diào)度的呢

程序人生 ? 來(lái)源:CSDN云原生 ? 作者:方睿 ? 2022-08-25 12:03 ? 次閱讀

資源競(jìng)爭(zhēng)與資源感知問(wèn)題

CPU的體系結(jié)構(gòu)上來(lái)看,現(xiàn)代CPU多采用NUMA架構(gòu)和方式。

NUMA架構(gòu)是非對(duì)稱(chēng)的,每個(gè)NUMA node上會(huì)有自己的物理CPU內(nèi)核,以及每個(gè)NUMA node之間也共享L3 Cache。同時(shí),內(nèi)存也分布在每個(gè)NUMA node上的。某些開(kāi)啟了超線程的CPU,一個(gè)物理CPU內(nèi)核在操作系統(tǒng)上會(huì)呈現(xiàn)兩個(gè)邏輯的核。

實(shí)際上,CPU內(nèi)核是分布在NUMA node上,NUMA node內(nèi)本身就有一些親和性的元素。

2df9aa10-2429-11ed-ba43-dac502259ad0.png

右圖中,CPU開(kāi)始的訪問(wèn)速度是不一樣的。

如果程序都跑在同一個(gè)NUMA node上,可以更好地去共享一些L3 Cache,L3 Cache的訪問(wèn)速度會(huì)很快。如果L3 Cache沒(méi)有命中,可以到內(nèi)存中讀取數(shù)據(jù),訪存速度會(huì)大大降低。

因此,從CPU體系結(jié)構(gòu)中可以看到,如果采用一些錯(cuò)誤的CPU分配方式,可能會(huì)導(dǎo)致進(jìn)程訪存速度急劇下降,嚴(yán)重影響應(yīng)用程序的性能。

在這樣的體系結(jié)構(gòu)下,存在云計(jì)算中常見(jiàn)的吵鬧的鄰居問(wèn)題。當(dāng)多個(gè)容器在節(jié)點(diǎn)上共同運(yùn)行時(shí),由于資源分配的不合理,會(huì)對(duì)CPU本身的性能造成影響。

2e07ab1a-2429-11ed-ba43-dac502259ad0.png

從理想的使用方式來(lái)看,如果每個(gè)進(jìn)程都使用各自的CPU內(nèi)核,并且不會(huì)跨NUMA node訪問(wèn),相互之間不會(huì)有太多爭(zhēng)搶。

從糟糕的使用方式來(lái)看,如果兩個(gè)進(jìn)程的CPU內(nèi)核在分配時(shí),可能會(huì)沒(méi)有遵循NUMA的親和性,會(huì)帶來(lái)很大的性能問(wèn)題,體現(xiàn)在三個(gè)方面:

CPU爭(zhēng)搶帶來(lái)頻繁的上下文切換時(shí)間;

頻繁的進(jìn)程切換導(dǎo)致CPU高速緩存失??;

跨NUMA訪存會(huì)帶來(lái)更嚴(yán)重的性能瓶頸。

2e13b7c0-2429-11ed-ba43-dac502259ad0.png

Kubernetes中有CPU Manager的功能,CPU Manager可以做一些CPU核心的分配工作。上圖是Kubernetes的一些數(shù)據(jù)呈現(xiàn)。

在Guaranteed和Burstable兩種Pod混部測(cè)試下,將CPU Manager執(zhí)行時(shí)間做基準(zhǔn),如果是原生Kubernetes的方式在不同測(cè)試下,性能有較大波動(dòng),最差可能會(huì)達(dá)到1.8倍左右。

在Stand-Alone Workloads的情況下,做CPU的綁定和完全不做CPU綁定,執(zhí)行時(shí)間差別很大。因?yàn)閯×业腃PU爭(zhēng)搶以及頻繁的上下文切換,會(huì)導(dǎo)致約1倍的性能差距。

2e2397e4-2429-11ed-ba43-dac502259ad0.png

在吵鬧的鄰居問(wèn)題下,Kubernetes是如何解決的呢?

CPU Manager是其中的一個(gè)解決方法,它被放在Kubelet中,CPUSet將會(huì)被CPU Manager分在Default和Exclusive兩個(gè)池子中。

Default主要在兩種情況下使用。一種是系統(tǒng)守護(hù)進(jìn)程:kube-reserved、system-reserved,另一種是特殊類(lèi)型的Pod:Burstable、BestEffort、請(qǐng)求非整數(shù)CPU的Guaranteed。

Exclusive是完全排他的CPU池,主要在兩種情況下使用。一種是Pod:請(qǐng)求整數(shù)CPU的Guaranteed,另一種是Topology Manager:滿(mǎn)足拓?fù)涔芾砥鞫x的要求。

但原生Kubernetes也存在局限性。

調(diào)度器不感知節(jié)點(diǎn)資源拓?fù)洹?/strong>

Kubernetes中調(diào)度器只負(fù)責(zé)為Pod選擇節(jié)點(diǎn),并不感知節(jié)點(diǎn)NUMA拓?fù)浣Y(jié)構(gòu),Pod的CPU分配交給Kubelet完成。當(dāng)節(jié)點(diǎn)單NUMA node上沒(méi)有足夠的CPU時(shí),Pod啟動(dòng)失敗,控制器重建Pod后會(huì)陷入死循環(huán)。

CPUSet分配策略過(guò)于單一。

Kubernetes中CPU Manager默認(rèn)為請(qǐng)求整數(shù)CPU的Guaranteed Pod分配獨(dú)占的CPUSet,但實(shí)際上Pod想定制自己的CPU分配策略,可能只是想分配到一個(gè)NUMA node內(nèi),或是固定CPU甚至是不做綁核。

2e41e24e-2429-11ed-ba43-dac502259ad0.png

在混部場(chǎng)景下,也存在離線算力感知問(wèn)題。

當(dāng)在線與離線任務(wù)混部在同一臺(tái)主機(jī)上,在線閑時(shí),離線任務(wù)可以充分使用資源,提升主機(jī)利用率;在線忙時(shí),離線任務(wù)會(huì)被在線搶占,等待資源釋放。

當(dāng)離線可用算力受在線干擾動(dòng)態(tài)變化時(shí),調(diào)度器僅感知節(jié)點(diǎn)靜態(tài)資源(Kubelet采集)。

如果忙時(shí)調(diào)度過(guò)多的離線任務(wù),會(huì)導(dǎo)致劇烈的資源爭(zhēng)搶?zhuān)⑶颐總€(gè)離線Pod的性能都會(huì)下降。 因此,調(diào)度器在調(diào)度時(shí),需要?jiǎng)討B(tài)感知離線實(shí)時(shí)算力。驅(qū)逐器也應(yīng)當(dāng)在線嚴(yán)重干擾離線時(shí),驅(qū)逐離線Pod,保證節(jié)點(diǎn)的算力穩(wěn)定。

Kuberbnetes精細(xì)化調(diào)度

在原生Kubernetes不能很好地解決資源競(jìng)爭(zhēng)與資源感知問(wèn)題時(shí),亟需對(duì)資源進(jìn)行更加精細(xì)化的調(diào)度。

2e6189f0-2429-11ed-ba43-dac502259ad0.png

如上圖,是精細(xì)化調(diào)度系統(tǒng)的結(jié)構(gòu)。

Cassini-Worker能從節(jié)點(diǎn)采集資源拓?fù)?a target="_blank">信息并創(chuàng)建NRT對(duì)象。

Cassini-Master能從外部系統(tǒng)采集節(jié)點(diǎn)擴(kuò)展信息(可選)。

Scheduler-Plugins能擴(kuò)展調(diào)度器,為Pod進(jìn)行資源拓?fù)浞峙洹?/p>

2e70e5da-2429-11ed-ba43-dac502259ad0.png

擴(kuò)展調(diào)度器是通過(guò)Scheduler-Plugins來(lái)實(shí)現(xiàn)的,可以在幾個(gè)插入點(diǎn)做一些插件,保證實(shí)現(xiàn)標(biāo)庫(kù)資源頭部感知調(diào)度的功能。

在Fitter的插件內(nèi),可以過(guò)濾節(jié)點(diǎn)拓?fù)滟Y源和選擇Zone并分配資源。

在Score的插件內(nèi),可以根據(jù)Zone個(gè)數(shù)降序打分。

在Reserver的插件內(nèi),可以為待綁定節(jié)點(diǎn)預(yù)留拓?fù)滟Y源避免數(shù)據(jù)不一致。

在PreBind的插件內(nèi),可以將拓?fù)湔{(diào)度結(jié)果附加到Pod Annotations中。

在調(diào)度算法上,可以從性能和負(fù)載均衡兩個(gè)方面做出考慮,以便更好地選擇節(jié)點(diǎn)和拓?fù)洹?/strong>

在性能方面,優(yōu)先選擇Pod能綁定在單NUMA node內(nèi)的節(jié)點(diǎn)。如果找不到該節(jié)點(diǎn),可以?xún)?yōu)先選擇在同一個(gè)NUMA Socket內(nèi)的NUMA node

在負(fù)載均衡方面,優(yōu)先選擇空閑資源更多的NUMA node。

容器CPUSet管理

Kubernetes的精細(xì)化調(diào)度做出一些拓?fù)涓兄鴮?shí)際落到節(jié)點(diǎn)上,為了更好地實(shí)現(xiàn)資源分配,我們?cè)O(shè)計(jì)了一個(gè)資源分配系統(tǒng)。

2e972db2-2429-11ed-ba43-dac502259ad0.png

首先,節(jié)點(diǎn)Kubelet會(huì)監(jiān)聽(tīng)到Pod并準(zhǔn)備啟動(dòng)Pod。

隨后,節(jié)點(diǎn)Kubelet調(diào)用容器運(yùn)行時(shí)接口啟動(dòng)容器。

與此同時(shí),節(jié)點(diǎn)Cassini-Worker通過(guò)List Kubelet的10250端口獲得節(jié)點(diǎn)上的所有Pod,再?gòu)腜od Annotations中獲取調(diào)度器的拓?fù)湔{(diào)度結(jié)果。

節(jié)點(diǎn)Cassini-Worker調(diào)用容器運(yùn)行時(shí)接口來(lái)更改容器的綁核結(jié)果。

2ea85420-2429-11ed-ba43-dac502259ad0.png

關(guān)于容器多級(jí)資源QoS分配策略,在CPUSet的策略上,可以劃分為四種:

Exclusive:它可以獨(dú)占CPU內(nèi)核心,其他Pod不可使用,一般是高利用率的容器會(huì)采取該策略;

None:不做CPU綁核的策略,可以使用節(jié)點(diǎn)的Default CPU共享池;

NUMA:讓CPUSet固定到NUMA node上的共享池內(nèi);

Immovable:將CPU內(nèi)核心固定,讓其他Pod也可共享。

在CPU內(nèi)核心選擇策略上:

首先,按照調(diào)度結(jié)果獲取NUMA node上需分配的核心數(shù);

隨后,從共享池中選擇可分配的CPU內(nèi)核心;

同時(shí),還希望一個(gè)Pod盡量不使用在同一個(gè)物理核上的邏輯核。

在離線混部場(chǎng)景下的實(shí)踐

由于離線混部場(chǎng)景中,離線會(huì)受到在線的影響,算力是波動(dòng)的。因此,在離線混部場(chǎng)景下,還會(huì)做一些差異化重調(diào)度:

當(dāng)在線負(fù)載上升時(shí),離線的算力會(huì)被壓制。因此,離線的Pod需要及時(shí)驅(qū)逐,以便剛好滿(mǎn)足節(jié)點(diǎn)離線算力的要求;

通過(guò)改造Descheduler組件,建立通用的可配置的平臺(tái)通用驅(qū)逐框架,支持Metrics驅(qū)逐,以及支持動(dòng)態(tài)調(diào)整/配置驅(qū)逐策略;

建立算力平臺(tái)通用Metrics;

支持業(yè)務(wù)自定義Metrics驅(qū)逐。

在不同混部場(chǎng)景下,容器CPUSet策略也是不同的。

2ec76f86-2429-11ed-ba43-dac502259ad0.png

離線CVM混部的場(chǎng)景中,一臺(tái)物理機(jī)的各個(gè)NUMA node上都生產(chǎn)了許多在線的CVM,當(dāng)在線利用率很低時(shí),需要更好地利用資源。

此時(shí)需要采取Exclusive策略:

離線CVM通過(guò)內(nèi)核VMF調(diào)度器獲取低優(yōu)的CPU時(shí)間片;

離線Pod通過(guò)獨(dú)占CPU內(nèi)核心的方式,保證互不干擾;

內(nèi)核VMF調(diào)度器保證離線Pod在忙時(shí),可實(shí)現(xiàn)核心漂移,充分利用CPU資源。

在容器混部的場(chǎng)景中,在線Pod和離線Pod同時(shí)部署在同一臺(tái)物理機(jī)上。

此時(shí)需要采取NUMA策略:

離線Pod通過(guò)限制Cgroups,獲取低優(yōu)的CPU時(shí)間片;

離線Pod綁定整個(gè)NUMA node,防止某幾個(gè)CPU內(nèi)核心被壓制;

離線Pod共享整個(gè)NUMA node,充分利用CPU資源。

總結(jié)

本文圍繞Kubernetes的資源拓?fù)涓兄{(diào)度的主題展開(kāi)。從CPU體系結(jié)構(gòu)和吵鬧的鄰居問(wèn)題切人,隨后闡述了原生Kubernetes的不足和混部場(chǎng)景下的算力感知的局限,最后從采集節(jié)點(diǎn)拓?fù)滟Y源、擴(kuò)展Kubernetes調(diào)度器、多級(jí)資源QoS分配策略幾個(gè)方面給出了相應(yīng)的解決方案。在策略的優(yōu)化后,資源得到更合理地利用。

未來(lái),Kubernetes精細(xì)化調(diào)度將會(huì)覆蓋更多的場(chǎng)景,例如碎片GPU、網(wǎng)絡(luò)拓?fù)浼軜?gòu)、電力調(diào)度。



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10863

    瀏覽量

    211781
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6825

    瀏覽量

    123333
  • 調(diào)度算法
    +關(guān)注

    關(guān)注

    1

    文章

    68

    瀏覽量

    11980

原文標(biāo)題:騰訊方睿:詳解Kubernetes資源拓?fù)涓兄{(diào)度

文章出處:【微信號(hào):coder_life,微信公眾號(hào):程序人生】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Kubernetes集群搭建容器云需要幾臺(tái)服務(wù)器?

    Kubernetes集群搭建容器云需要幾臺(tái)服務(wù)器?至少需要4臺(tái)服務(wù)器。搭建容器云所需的服務(wù)器數(shù)量以及具體的搭建步驟,會(huì)根據(jù)所選用的技術(shù)棧、業(yè)務(wù)規(guī)模、架構(gòu)設(shè)計(jì)以及安全需求等因素而有所不同。以下是一個(gè)基于Kubernetes集群的容器云搭建的概述:
    的頭像 發(fā)表于 10-21 10:06 ?160次閱讀

    MES系統(tǒng)如何實(shí)現(xiàn)生產(chǎn)車(chē)間的實(shí)時(shí)監(jiān)控、精準(zhǔn)調(diào)度

    MES系統(tǒng)通過(guò)數(shù)據(jù)采集、傳輸、處理和展示等技術(shù)手段,實(shí)現(xiàn)了生產(chǎn)過(guò)程的實(shí)時(shí)監(jiān)控;同時(shí),通過(guò)生產(chǎn)計(jì)劃優(yōu)化、生產(chǎn)任務(wù)分配、動(dòng)態(tài)調(diào)度資源優(yōu)化和協(xié)同管理等功能模塊,實(shí)現(xiàn)了生產(chǎn)過(guò)程的精準(zhǔn)調(diào)度
    的頭像 發(fā)表于 10-07 12:51 ?399次閱讀
    MES系統(tǒng)如何實(shí)現(xiàn)生產(chǎn)車(chē)間的實(shí)時(shí)監(jiān)控、精準(zhǔn)<b class='flag-5'>調(diào)度</b>

    使用Velero備份Kubernetes集群

    Velero 是 heptio 團(tuán)隊(duì)(被 VMWare 收購(gòu))開(kāi)源的 Kubernetes 集群備份、遷移工具。
    的頭像 發(fā)表于 08-05 15:43 ?362次閱讀
    使用Velero備份<b class='flag-5'>Kubernetes</b>集群

    如何使用Kubeadm命令在PetaExpress Ubuntu系統(tǒng)上安裝Kubernetes集群

    Kubernetes,通常縮寫(xiě)為K8s,是一個(gè)開(kāi)源的容器編排平臺(tái),旨在自動(dòng)化容器化應(yīng)用的部署、擴(kuò)展和管理。有了Kubernetes,您可以輕松地部署、更新和擴(kuò)展應(yīng)用,而無(wú)需擔(dān)心底層基礎(chǔ)設(shè)施。
    的頭像 發(fā)表于 07-15 13:31 ?873次閱讀
    如何使用Kubeadm命令在PetaExpress Ubuntu系統(tǒng)上安裝<b class='flag-5'>Kubernetes</b>集群

    鴻蒙開(kāi)發(fā)接口資源調(diào)度:【@ohos.workScheduler (延遲任務(wù)調(diào)度)】

    開(kāi)發(fā)者在開(kāi)發(fā)應(yīng)用時(shí),通過(guò)調(diào)用延遲任務(wù)注冊(cè)接口,注冊(cè)對(duì)實(shí)時(shí)性要求不高的延遲任務(wù),該任務(wù)默認(rèn)由系統(tǒng)安排,在系統(tǒng)空閑時(shí)根據(jù)性能、功耗、熱等情況進(jìn)行調(diào)度執(zhí)行。
    的頭像 發(fā)表于 06-04 10:01 ?920次閱讀
    鴻蒙開(kāi)發(fā)接口<b class='flag-5'>資源</b><b class='flag-5'>調(diào)度</b>:【@ohos.workScheduler (延遲任務(wù)<b class='flag-5'>調(diào)度</b>)】

    智慧園區(qū)安全調(diào)度管理都有哪些

    園區(qū)當(dāng)中極為重要的一點(diǎn),安全調(diào)度也格外的受大家重視。 今天,古河云科技小編就來(lái)給大家說(shuō)一說(shuō)智慧園區(qū)安全調(diào)度管理都有哪些: 指揮調(diào)度平臺(tái)涵蓋了設(shè)備告警、快速定位、人員調(diào)度、工單指派、物資
    的頭像 發(fā)表于 04-28 15:13 ?314次閱讀
    智慧園區(qū)安全<b class='flag-5'>調(diào)度</b>管理都有哪些

    何解決貼片電容漏電流的問(wèn)題?

    何解決貼片電容漏電流的問(wèn)題? 貼片電容漏電流是電容器在正常工作條件下發(fā)生的一種特殊現(xiàn)象,會(huì)導(dǎo)致電路工作不穩(wěn)定甚至損壞。要解決貼片電容漏電流問(wèn)題,需要找出漏電流的原因,并采取相應(yīng)的措施進(jìn)行修復(fù)或
    的頭像 發(fā)表于 02-03 14:37 ?1880次閱讀

    網(wǎng)絡(luò)拓?fù)?/b>結(jié)構(gòu)的隱患和網(wǎng)絡(luò)硬件的安全缺陷屬于

    ,并探討如何解決這些問(wèn)題和提高網(wǎng)絡(luò)安全性。 一、網(wǎng)絡(luò)拓?fù)?/b>結(jié)構(gòu)的隱患 網(wǎng)絡(luò)拓?fù)?/b>結(jié)構(gòu)是指網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)之間的連接關(guān)系。不同類(lèi)型的網(wǎng)絡(luò)拓?fù)?/b>結(jié)構(gòu)存在不同的隱患,包括星型
    的頭像 發(fā)表于 01-31 14:54 ?1714次閱讀

    何解決開(kāi)關(guān)電源調(diào)試中遇到的問(wèn)題?

    一般在使用電氣設(shè)備之前都會(huì)調(diào)試,以便及時(shí)發(fā)現(xiàn)問(wèn)題并采取措施解決。開(kāi)關(guān)電源也一樣會(huì)進(jìn)行調(diào)試,那么在調(diào)試開(kāi)關(guān)電源的過(guò)程中會(huì)遇到哪些問(wèn)題?又該如何解
    的頭像 發(fā)表于 01-29 16:39 ?637次閱讀

    影響晶振頻率穩(wěn)定性的有哪些因素?如何解

    影響晶振頻率穩(wěn)定性的有哪些因素?如何解? 晶振頻率穩(wěn)定性是指晶振器在工作過(guò)程中頻率的變化程度。晶振器是一種電子元件,廣泛應(yīng)用于各種電子電路中,特別是時(shí)鐘電路和振蕩電路。晶振頻率穩(wěn)定性的好壞
    的頭像 發(fā)表于 01-23 16:43 ?1493次閱讀

    Kubernetes Gateway API攻略教程

    Kubernetes Gateway API 剛剛 GA,旨在改進(jìn)將集群服務(wù)暴露給外部的過(guò)程。這其中包括一套更標(biāo)準(zhǔn)、更強(qiáng)大的 API資源,用于管理已暴露的服務(wù)。在這篇文章中,我將介紹 Gateway
    的頭像 發(fā)表于 01-12 11:32 ?894次閱讀
    <b class='flag-5'>Kubernetes</b> Gateway API攻略教程

    請(qǐng)問(wèn)如何使用Helm在K8s上集成Prometheus

    ArtifactHub 為 Helm Chart 提供了公共和私有資源庫(kù)。我們將使用這些 Helm Chart 來(lái)設(shè)置 Kubernetes 集群中的 pod 和服務(wù)。
    的頭像 發(fā)表于 01-10 17:24 ?681次閱讀
    請(qǐng)問(wèn)如何使用Helm在K8s上集成Prometheus<b class='flag-5'>呢</b>?

    為什么電流探頭會(huì)出現(xiàn)無(wú)法消磁的情況?該如何解?

    為什么電流探頭會(huì)出現(xiàn)無(wú)法消磁的情況?該如何解? 電流探頭無(wú)法消磁的情況可能是由于多種因素造成的,包括材料的性質(zhì)、使用條件以及操作不當(dāng)?shù)?。解決這個(gè)問(wèn)題的方法也可以根據(jù)具體情況而定,包括改變
    的頭像 發(fā)表于 01-08 17:21 ?713次閱讀

    配置Kubernetes中Pod使用代理的兩種常見(jiàn)方式

    在企業(yè)網(wǎng)絡(luò)環(huán)境中進(jìn)行Kubernetes集群的管理時(shí),經(jīng)常會(huì)遇到需要配置Pods通過(guò)HTTP代理服務(wù)器訪問(wèn)Internet的情況。這可能是由于各種原因,如安全策略限制、網(wǎng)絡(luò)架構(gòu)要求或者訪問(wèn)特定資源
    的頭像 發(fā)表于 01-05 11:22 ?1147次閱讀
    配置<b class='flag-5'>Kubernetes</b>中Pod使用代理的兩種常見(jiàn)方式

    使用Jenkins和單個(gè)模板部署多個(gè)Kubernetes組件

    在持續(xù)集成和部署中,我們通常需要部署多個(gè)實(shí)例或組件到Kubernetes集群中。通過(guò)Jenkins的管道腳本,我們可以自動(dòng)化這個(gè)過(guò)程。在本文中,我將演示如何使用Jenkins Pipeline及單個(gè)
    的頭像 發(fā)表于 01-02 11:40 ?773次閱讀
    使用Jenkins和單個(gè)模板部署多個(gè)<b class='flag-5'>Kubernetes</b>組件