自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用Spinnaker克服Kubernetes持續(xù)交付的挑戰(zhàn)

譯文
開發(fā) 前端
Kubernetes具有很大潛力可以幫助組織快速部署和交付代碼更改,但是在為其進(jìn)行持續(xù)交付時(shí)會(huì)遇到一些挑戰(zhàn)。

[[395150]]

【51CTO.com快譯】Kubernetes具有很大潛力可以幫助組織快速部署和交付代碼更改,但是在為其進(jìn)行持續(xù)交付時(shí)會(huì)遇到一些挑戰(zhàn)。

Kubernetes是業(yè)界領(lǐng)先的容器編排系統(tǒng),并且以Kubernetes為中心構(gòu)建了一個(gè)龐大的開源和商業(yè)組件的生態(tài)系統(tǒng)。在冠狀病毒疫情發(fā)生之后,更多的組織正在將Kubernetes視為其IT轉(zhuǎn)型旅程的核心部分。Kubernetes之所以成為一個(gè)出色的容器管理工具,因?yàn)樗峁┮韵鹿δ埽?/p>

  • 自動(dòng)封裝
  • 縮放和自我修復(fù)容器
  • 服務(wù)發(fā)現(xiàn)
  • 負(fù)載均衡

但是,只是使用Kubernetes可能無(wú)法解決敏捷性的目的,因?yàn)樗鼜膩?lái)不是一個(gè)部署系統(tǒng)。以下將介紹使用Kubernetes面臨的一些挑戰(zhàn),以及如何應(yīng)對(duì)這些挑戰(zhàn)以釋放云原生的全部潛力。

采用Kubernetes時(shí)部署的挑戰(zhàn)

1.部署復(fù)雜性和腳本使用

將應(yīng)用程序部署到Kubernetes中并不是一件容易的事,因?yàn)樗婕霸S多人工編寫的腳本。例如,開發(fā)人員必須創(chuàng)建YAML或JSON格式的Kubernetes部署清單文件(如下圖所示),并編寫kubectl命令來(lái)部署應(yīng)用程序:

盡管對(duì)于某些開發(fā)人員來(lái)說(shuō),單一部署可能看起來(lái)很容易,但當(dāng)其目標(biāo)是每天執(zhí)行多個(gè)部署到dev/QA/Prod時(shí),這將成為一項(xiàng)艱巨的任務(wù)。這需要對(duì)Kubernetes有著充分的了解,但并非團(tuán)隊(duì)的所有成員都精通Kubernetes。通常情況下,組織最終會(huì)使用腳本和kubectl命令來(lái)提高部署速度。

云原生計(jì)算基金會(huì)(CNCF)最近對(duì)1500名受訪者進(jìn)行的一項(xiàng)調(diào)查表明,在使用和部署容器方面,復(fù)雜性和文化變化仍然是Kubernetes采用的最大挑戰(zhàn),如下圖所示。

2.過(guò)度依賴專家和開發(fā)人員產(chǎn)生倦怠

由于缺乏Kubernetes的專門知識(shí),開發(fā)人員和應(yīng)用程序團(tuán)隊(duì)嚴(yán)重依賴DevOps團(tuán)隊(duì)(也稱為發(fā)布團(tuán)隊(duì)),以持續(xù)幫助他們創(chuàng)建Kubernetes對(duì)象,如部署、復(fù)制集、狀態(tài)集和守護(hù)進(jìn)程。在其后續(xù)工作的過(guò)程中,與不同的團(tuán)隊(duì)協(xié)作以獲得部署的更改將會(huì)花費(fèi)利益相關(guān)者的大量時(shí)間。此外,由于截止日期較短且實(shí)現(xiàn)業(yè)務(wù)目標(biāo)的壓力很大,開發(fā)團(tuán)隊(duì)必須花費(fèi)大量時(shí)間來(lái)部署其更改。

根據(jù)企業(yè)級(jí)云平臺(tái)提供商D2IQ公司發(fā)布的一份調(diào)查報(bào)告,幾乎所有組織(96%)在容器化應(yīng)用程序的初始部署過(guò)程中都面臨挑戰(zhàn)和復(fù)雜性,并指出Kubernetes是他們痛苦的根源。該報(bào)告還指出,“51%的開發(fā)人員和架構(gòu)師表示,構(gòu)建云原生應(yīng)用程序使他們不堪重負(fù)。這對(duì)于負(fù)責(zé)為其組織部署容器化應(yīng)用程序的高級(jí)IT領(lǐng)導(dǎo)者來(lái)說(shuō)壓力特別大。”

3.面臨嚴(yán)峻的安全挑戰(zhàn)

Kubernetes并非旨在執(zhí)行策略,例如查找圖像中的漏洞。因此,如果組織使用Kubernetes進(jìn)行部署,則需要找到其他方法,通常是人工執(zhí)行策略或使用一些腳本。

例如基于默認(rèn)的網(wǎng)絡(luò)策略,Kubernetes Pod可以彼此通信,并可以與外部端點(diǎn)無(wú)縫通信。由于應(yīng)用程序或基礎(chǔ)設(shè)施的安全問題,如果一個(gè)容器或Pod被破壞,則其他容器或Pod都可能受到攻擊(也稱為復(fù)雜的攻擊向量)。

由于組織將軟件交付的速度放在首位,因此有時(shí)降彽了安全性和合規(guī)性的優(yōu)先級(jí)。通常情況下,在采用Kubernetes的過(guò)程中,組織必須嘗試在構(gòu)建、測(cè)試、部署和生產(chǎn)階段集成安全性和合規(guī)性。

4.缺乏部署策略和部署后運(yùn)行狀況檢查

使用基于Kubernetes的應(yīng)用程序的一個(gè)常見目的是根據(jù)需求擴(kuò)展到大型用戶。在這樣的生產(chǎn)環(huán)境中,可以觀察到大量節(jié)點(diǎn)、數(shù)百個(gè)Pod和數(shù)千個(gè)運(yùn)行多個(gè)應(yīng)用程序?qū)嵗娜萜鳌?/p>

而向客戶介紹新變化的一種方法是逐步部署,例如采用藍(lán)/綠部署或金絲雀(Canary)部署等策略。這樣可以避免向最終客戶發(fā)布不穩(wěn)定版本的風(fēng)險(xiǎn)。

但是,Kubernetes中并沒有藍(lán)/綠部署或金絲雀(Canary)部署。最重要的是,由于容器化應(yīng)用程序的分布式特性,獲取和發(fā)送新部署的Kubernetes應(yīng)用程序的健康狀況更新,以及估計(jì)其漏洞和對(duì)組織的風(fēng)險(xiǎn)是非常繁瑣和復(fù)雜的。

使用開源Spinnaker進(jìn)行Kubernetes部署

Spinnaker是一個(gè)開放源代碼和多云持續(xù)交付平臺(tái),可用于快速發(fā)布代碼并保持競(jìng)爭(zhēng)優(yōu)勢(shì)。Spinnaker更加注重使用Kubernetes應(yīng)用程序,并幫助IT團(tuán)隊(duì)迅速將應(yīng)用程序部署到任何Kubernetes(K8S、GKE、EKS、AKS)中。以下是Spinnaker的一些重要功能。

1.用于端到端部署自動(dòng)化的Spinnaker管道

Spinnaker提供用于自動(dòng)部署的端到端管道(如下圖所示)。該工作流程可經(jīng)構(gòu)建一致且重復(fù)的部署,可以制作AMI或Docker映像,從集群中找到k8S容器,然后進(jìn)行部署、修改集群組并在K8S中運(yùn)行容器。

在部署之后,Spinnaker會(huì)實(shí)時(shí)檢查并顯示Kubernetes集群的運(yùn)行狀況。可以將管道中的部署階段配置為通過(guò)電子郵件、移動(dòng)消息或Slack消息在所有級(jí)別通知利益相關(guān)者。

2.內(nèi)置的部署策略

開源Spinnaker提供了各種部署策略,例如藍(lán)/綠部署、滾動(dòng)部署、金絲雀部署,以降低部署到生產(chǎn)環(huán)境中的風(fēng)險(xiǎn)。Spinnaker還與K8S Pod自動(dòng)縮放器進(jìn)行交互,以確保在部署期間保持容量大小。

開源Spinnaker提供的自動(dòng)金絲雀分析(ACA)技術(shù)可通過(guò)將原有版本的指標(biāo)和日志與部署新版本的指標(biāo)和日志進(jìn)行比較,從而最大限度地降低將更新部署到K8S生產(chǎn)服務(wù)器中的風(fēng)險(xiǎn)。

除此之外,Spinnaker還提供configmap和secrets的版本控制以及不可變的服務(wù)器部署。這使回滾可以保留先前使用的確切配置,并執(zhí)行二進(jìn)制文件。

3.新工件的持續(xù)驗(yàn)證

開源Spinnaker周圍提供了許多企業(yè)插件,這些插件擴(kuò)展了免費(fèi)工具的用例。例如,開源Spinnaker的發(fā)行伙伴OpsMx公司提供了企業(yè)級(jí)Spinnaker,可以在日志和指標(biāo)上使用人工智能/機(jī)器學(xué)習(xí)來(lái)檢測(cè)新部署的Kubernetes應(yīng)用程序的問題。如果檢測(cè)到異常,則Spinnaker可以回滾到新的應(yīng)用程序。但是在此之前,它可以確保先前的服務(wù)器組具有足夠的大小。

4.在Kubernetes部署中加強(qiáng)安全性和合規(guī)性

確保Kubernetes使用中的安全性需要在整個(gè)軟件開發(fā)生命周期(從編碼到構(gòu)建再到部署)中進(jìn)入安全性和合規(guī)性的安全門。例如,如果構(gòu)建未通過(guò)冒煙測(cè)試(冒煙測(cè)試這一術(shù)語(yǔ)描述的是在將代碼更改嵌入到產(chǎn)品的源樹中之前對(duì)這些更改進(jìn)行驗(yàn)證的過(guò)程),則可以在構(gòu)建階段使用安全門使部署失敗。同樣,可以安裝安全門以檢查容器圖像是否已通過(guò)圖像掃描報(bào)告。開源Spinnaker允許安全管理人員在交付管道中安裝安全門。

Spinnaker被擴(kuò)展為聲明政策,以遵守組織指南和行業(yè)標(biāo)準(zhǔn),例如PCI-DSS、HIPAA和SOC 2。而發(fā)布管理器可以將部署日期和時(shí)間定義為停機(jī)策略的一部分。這可能會(huì)有一定的高峰流量時(shí)間,應(yīng)該避免部署具有停機(jī)風(fēng)險(xiǎn)的代碼。部署窗口允許管道確保在這些高峰流量時(shí)區(qū)之外進(jìn)行K8S部署,并且不會(huì)影響客戶體驗(yàn)。

5.GitOps樣式部署

在Spinnaker的幫助下,組織可以在Kubernetes集群中執(zhí)行GitOps風(fēng)格的部署。熟悉YAML的團(tuán)隊(duì)可以對(duì)文件進(jìn)行更改,并且Spinnaker可以進(jìn)行配置檢測(cè)這些更改,并自動(dòng)將其部署到選定的環(huán)境中。

結(jié)論

毫無(wú)疑問,通過(guò)采用云原生應(yīng)用程序可以實(shí)現(xiàn)業(yè)務(wù)敏捷性,而Kubernetes扮演著核心角色。選擇整合Kubernetes和Spinnaker的組織將會(huì)比單獨(dú)使用Kubernetes的組織更快地看到積極的結(jié)果。

原文標(biāo)題:Overcome Challenges of Continuous Delivery for Kubernetes With Spinnaker,作者:Debasree Panda,Abhinay Byrisetty

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2023-03-14 16:35:52

2022-09-15 18:10:52

混合云開源云計(jì)算

2022-07-11 11:14:37

智能工廠物聯(lián)網(wǎng)

2022-09-14 11:15:33

多云混合云云數(shù)據(jù)庫(kù)

2021-06-10 16:49:15

物聯(lián)網(wǎng)互聯(lián)網(wǎng)IoT

2018-07-26 11:20:27

公共云存儲(chǔ)挑戰(zhàn)

2024-04-11 10:02:31

物聯(lián)網(wǎng)IOT數(shù)據(jù)集成

2020-11-30 15:11:51

大數(shù)據(jù)

2017-02-27 18:28:45

持續(xù)交付部署

2020-02-18 10:50:36

云計(jì)算網(wǎng)絡(luò)安全

2020-10-23 10:18:25

遠(yuǎn)程工作

2020-12-25 10:14:39

物聯(lián)網(wǎng)數(shù)據(jù)集成IOT

2023-10-26 16:21:27

2021-04-16 14:05:32

云計(jì)算

2020-11-26 08:46:52

Spinnaker

2017-08-02 14:31:58

大數(shù)據(jù)集群數(shù)據(jù)存儲(chǔ)

2021-06-28 15:22:22

物聯(lián)網(wǎng)部署IOT

2017-12-24 21:29:18

OpenShift持續(xù)交付集群

2018-09-10 09:00:00

DevOpsIT云自動(dòng)化

2021-06-25 09:37:01

KubernetesDevtrongo
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)