新聞中心
Kubernetes具有很大潛力可以幫助組織快速部署和交付代碼更改,但是在為其進(jìn)行持續(xù)交付時會遇到一些挑戰(zhàn)。

成都地區(qū)優(yōu)秀IDC服務(wù)器托管提供商(創(chuàng)新互聯(lián)公司).為客戶提供專業(yè)的服務(wù)器托管,四川各地服務(wù)器托管,服務(wù)器托管、多線服務(wù)器托管.托管咨詢專線:18980820575
Kubernetes是業(yè)界領(lǐng)先的容器編排系統(tǒng),并且以Kubernetes為中心構(gòu)建了一個龐大的開源和商業(yè)組件的生態(tài)系統(tǒng)。在冠狀病毒疫情發(fā)生之后,更多的組織正在將Kubernetes視為其IT轉(zhuǎn)型旅程的核心部分。Kubernetes之所以成為一個出色的容器管理工具,因為它提供以下功能:
- 自動封裝
- 縮放和自我修復(fù)容器
- 服務(wù)發(fā)現(xiàn)
- 負(fù)載均衡
但是,只是使用Kubernetes可能無法解決敏捷性的目的,因為它從來不是一個部署系統(tǒng)。以下將介紹使用Kubernetes面臨的一些挑戰(zhàn),以及如何應(yīng)對這些挑戰(zhàn)以釋放云原生的全部潛力。
采用Kubernetes時部署的挑戰(zhàn)
1.部署復(fù)雜性和腳本使用
將應(yīng)用程序部署到Kubernetes中并不是一件容易的事,因為它涉及許多人工編寫的腳本。例如,開發(fā)人員必須創(chuàng)建YAML或JSON格式的Kubernetes部署清單文件(如下圖所示),并編寫kubectl命令來部署應(yīng)用程序:
盡管對于某些開發(fā)人員來說,單一部署可能看起來很容易,但當(dāng)其目標(biāo)是每天執(zhí)行多個部署到dev/QA/Prod時,這將成為一項艱巨的任務(wù)。這需要對Kubernetes有著充分的了解,但并非團隊的所有成員都精通Kubernetes。通常情況下,組織最終會使用腳本和kubectl命令來提高部署速度。
云原生計算基金會(CNCF)最近對1500名受訪者進(jìn)行的一項調(diào)查表明,在使用和部署容器方面,復(fù)雜性和文化變化仍然是Kubernetes采用的最大挑戰(zhàn),如下圖所示。
2.過度依賴專家和開發(fā)人員產(chǎn)生倦怠
由于缺乏Kubernetes的專門知識,開發(fā)人員和應(yīng)用程序團隊嚴(yán)重依賴DevOps團隊(也稱為發(fā)布團隊),以持續(xù)幫助他們創(chuàng)建Kubernetes對象,如部署、復(fù)制集、狀態(tài)集和守護(hù)進(jìn)程。在其后續(xù)工作的過程中,與不同的團隊協(xié)作以獲得部署的更改將會花費利益相關(guān)者的大量時間。此外,由于截止日期較短且實現(xiàn)業(yè)務(wù)目標(biāo)的壓力很大,開發(fā)團隊必須花費大量時間來部署其更改。
根據(jù)企業(yè)級云平臺提供商D2IQ公司發(fā)布的一份調(diào)查報告,幾乎所有組織(96%)在容器化應(yīng)用程序的初始部署過程中都面臨挑戰(zhàn)和復(fù)雜性,并指出Kubernetes是他們痛苦的根源。該報告還指出,“51%的開發(fā)人員和架構(gòu)師表示,構(gòu)建云原生應(yīng)用程序使他們不堪重負(fù)。這對于負(fù)責(zé)為其組織部署容器化應(yīng)用程序的高級IT領(lǐng)導(dǎo)者來說壓力特別大?!?/p>
3.面臨嚴(yán)峻的安全挑戰(zhàn)
Kubernetes并非旨在執(zhí)行策略,例如查找圖像中的漏洞。因此,如果組織使用Kubernetes進(jìn)行部署,則需要找到其他方法,通常是人工執(zhí)行策略或使用一些腳本。
例如基于默認(rèn)的網(wǎng)絡(luò)策略,Kubernetes Pod可以彼此通信,并可以與外部端點無縫通信。由于應(yīng)用程序或基礎(chǔ)設(shè)施的安全問題,如果一個容器或Pod被破壞,則其他容器或Pod都可能受到攻擊(也稱為復(fù)雜的攻擊向量)。
由于組織將軟件交付的速度放在首位,因此有時降彽了安全性和合規(guī)性的優(yōu)先級。通常情況下,在采用Kubernetes的過程中,組織必須嘗試在構(gòu)建、測試、部署和生產(chǎn)階段集成安全性和合規(guī)性。
4.缺乏部署策略和部署后運行狀況檢查
使用基于Kubernetes的應(yīng)用程序的一個常見目的是根據(jù)需求擴展到大型用戶。在這樣的生產(chǎn)環(huán)境中,可以觀察到大量節(jié)點、數(shù)百個Pod和數(shù)千個運行多個應(yīng)用程序?qū)嵗娜萜鳌?/p>
而向客戶介紹新變化的一種方法是逐步部署,例如采用藍(lán)/綠部署或金絲雀(Canary)部署等策略。這樣可以避免向最終客戶發(fā)布不穩(wěn)定版本的風(fēng)險。
但是,Kubernetes中并沒有藍(lán)/綠部署或金絲雀(Canary)部署。最重要的是,由于容器化應(yīng)用程序的分布式特性,獲取和發(fā)送新部署的Kubernetes應(yīng)用程序的健康狀況更新,以及估計其漏洞和對組織的風(fēng)險是非常繁瑣和復(fù)雜的。
使用開源Spinnaker進(jìn)行Kubernetes部署
Spinnaker是一個開放源代碼和多云持續(xù)交付平臺,可用于快速發(fā)布代碼并保持競爭優(yōu)勢。Spinnaker更加注重使用Kubernetes應(yīng)用程序,并幫助IT團隊迅速將應(yīng)用程序部署到任何Kubernetes(K8S、GKE、EKS、AKS)中。以下是Spinnaker的一些重要功能。
1.用于端到端部署自動化的Spinnaker管道
Spinnaker提供用于自動部署的端到端管道(如下圖所示)。該工作流程可經(jīng)構(gòu)建一致且重復(fù)的部署,可以制作AMI或Docker映像,從集群中找到k8S容器,然后進(jìn)行部署、修改集群組并在K8S中運行容器。
在部署之后,Spinnaker會實時檢查并顯示Kubernetes集群的運行狀況??梢詫⒐艿乐械牟渴痣A段配置為通過電子郵件、移動消息或Slack消息在所有級別通知利益相關(guān)者。
2.內(nèi)置的部署策略
開源Spinnaker提供了各種部署策略,例如藍(lán)/綠部署、滾動部署、金絲雀部署,以降低部署到生產(chǎn)環(huán)境中的風(fēng)險。Spinnaker還與K8S Pod自動縮放器進(jìn)行交互,以確保在部署期間保持容量大小。
開源Spinnaker提供的自動金絲雀分析(ACA)技術(shù)可通過將原有版本的指標(biāo)和日志與部署新版本的指標(biāo)和日志進(jìn)行比較,從而最大限度地降低將更新部署到K8S生產(chǎn)服務(wù)器中的風(fēng)險。
除此之外,Spinnaker還提供configmap和secrets的版本控制以及不可變的服務(wù)器部署。這使回滾可以保留先前使用的確切配置,并執(zhí)行二進(jìn)制文件。
3.新工件的持續(xù)驗證
開源Spinnaker周圍提供了許多企業(yè)插件,這些插件擴展了免費工具的用例。例如,開源Spinnaker的發(fā)行伙伴OpsMx公司提供了企業(yè)級Spinnaker,可以在日志和指標(biāo)上使用人工智能/機器學(xué)習(xí)來檢測新部署的Kubernetes應(yīng)用程序的問題。如果檢測到異常,則Spinnaker可以回滾到新的應(yīng)用程序。但是在此之前,它可以確保先前的服務(wù)器組具有足夠的大小。
4.在Kubernetes部署中加強安全性和合規(guī)性
確保Kubernetes使用中的安全性需要在整個軟件開發(fā)生命周期(從編碼到構(gòu)建再到部署)中進(jìn)入安全性和合規(guī)性的安全門。例如,如果構(gòu)建未通過冒煙測試(冒煙測試這一術(shù)語描述的是在將代碼更改嵌入到產(chǎn)品的源樹中之前對這些更改進(jìn)行驗證的過程),則可以在構(gòu)建階段使用安全門使部署失敗。同樣,可以安裝安全門以檢查容器圖像是否已通過圖像掃描報告。開源Spinnaker允許安全管理人員在交付管道中安裝安全門。
Spinnaker被擴展為聲明政策,以遵守組織指南和行業(yè)標(biāo)準(zhǔn),例如PCI-DSS、HIPAA和SOC 2。而發(fā)布管理器可以將部署日期和時間定義為停機策略的一部分。這可能會有一定的高峰流量時間,應(yīng)該避免部署具有停機風(fēng)險的代碼。部署窗口允許管道確保在這些高峰流量時區(qū)之外進(jìn)行K8S部署,并且不會影響客戶體驗。
5.GitOps樣式部署
在Spinnaker的幫助下,組織可以在Kubernetes集群中執(zhí)行GitOps風(fēng)格的部署。熟悉YAML的團隊可以對文件進(jìn)行更改,并且Spinnaker可以進(jìn)行配置檢測這些更改,并自動將其部署到選定的環(huán)境中。
結(jié)論
毫無疑問,通過采用云原生應(yīng)用程序可以實現(xiàn)業(yè)務(wù)敏捷性,而Kubernetes扮演著核心角色。選擇整合Kubernetes和Spinnaker的組織將會比單獨使用Kubernetes的組織更快地看到積極的結(jié)果。
新聞標(biāo)題:如何使用Spinnaker克服Kubernetes持續(xù)交付的挑戰(zhàn)
標(biāo)題路徑:http://m.fisionsoft.com.cn/article/cdiocgh.html


咨詢
建站咨詢
