編譯 | 徐杰承
今天,Kube.NETes仍然是開(kāi)發(fā)人員最需要的容器。Kubernets最初由 google 工程師開(kāi)發(fā),作為跨本地、公共云、私有云或混合云托管的首選解決方案享譽(yù)全球。
來(lái)自Statista的報(bào)告顯示,公共云中的Kubernetes市場(chǎng)份額在過(guò)去一年中上升了近30%。并且在擁有超過(guò)1000名員工的大型科技企業(yè)中,Kubernets的采用率也在一年中至少上升了20%。
然而,盡管Kubernets越來(lái)越受歡迎,但其中仍存在一些挑戰(zhàn),使得DevOps團(tuán)隊(duì)很難在使用K8s構(gòu)建云原生應(yīng)用程序的過(guò)程中發(fā)揮它的全部?jī)?yōu)勢(shì)。對(duì)于DevOps團(tuán)隊(duì)而言,應(yīng)用Kubernets時(shí)應(yīng)關(guān)注哪些問(wèn)題呢?
1、可觀測(cè)性是關(guān)鍵
Kubernetes 有很多優(yōu)點(diǎn),因?yàn)槿萜魃鷳B(tài)系統(tǒng)中存在多個(gè)節(jié)點(diǎn)。這使得全面了解整個(gè) K8s 環(huán)境是一項(xiàng)具有挑戰(zhàn)性的任務(wù)。事實(shí)上,想要不依賴(lài)工具直接對(duì)K8s進(jìn)行檢測(cè)是非常困難的。根據(jù)Groundcover首席執(zhí)行官兼聯(lián)合創(chuàng)始人Shahar Azulay的說(shuō)法,這一挑戰(zhàn)的解決方案在于可觀測(cè)性解決方案。
通過(guò)使用可觀測(cè)性工具,DevOps 團(tuán)隊(duì)可以全面了解 Kubernetes 中發(fā)生的一切,從日志到指標(biāo)和跟蹤。這使 DevOps 團(tuán)隊(duì)能夠快速修復(fù)錯(cuò)誤并大規(guī)模構(gòu)建應(yīng)用程序。Azulay表示:“開(kāi)發(fā)人員無(wú)需收集和分析每個(gè)字節(jié)可用數(shù)據(jù)或隨機(jī)采樣,而是可以通過(guò)在源頭識(shí)別最有效的數(shù)據(jù)來(lái)智能地對(duì)其進(jìn)行采樣,然后僅選擇要發(fā)送到其可觀測(cè)性平臺(tái)的數(shù)據(jù)。
借助可觀測(cè)性工具,DevOps 團(tuán)隊(duì)可以減少系統(tǒng)宕機(jī)時(shí)間、降低成本并最終提高性能。當(dāng)今一些最流行的可觀測(cè)性工具包括Grafana、Groundcover和Prometheus。Azulay進(jìn)一步指出,Groundcover代表了可觀測(cè)性的新范式,因?yàn)?ldquo;它打破了傳統(tǒng)的APM模型,提供了最小的資源消耗,全面的可觀測(cè)性和簡(jiǎn)單透明的定價(jià)。
2、將安全性放在首位
僅僅關(guān)注可觀察性是不夠的,這意味著你只能解決一半的問(wèn)題。在紅帽發(fā)布的關(guān)于 2023 年 Kubernetes的 安全狀況的報(bào)告中,94% 的受訪者在過(guò)去 12 個(gè)月內(nèi)經(jīng)歷過(guò)安全事件,而 64% 的受訪者表示由于 K8s 的安全問(wèn)題導(dǎo)致了他們系統(tǒng)的延遲或影響部署。30%的受訪者還認(rèn)為漏洞是他們對(duì)容器和K8s環(huán)境的最大擔(dān)憂。
在 Kubernetes 環(huán)境中運(yùn)行應(yīng)用程序時(shí)保持安全性非常必要。如果不將安全性放在首位,可能會(huì)對(duì)性能產(chǎn)生不利影響,增加補(bǔ)救成本,并產(chǎn)生持久的破壞性影響。使用K8s時(shí),你必須時(shí)刻保持警惕,才能夠從中獲得你想要的性能提升。
ARMO開(kāi)源社區(qū)副總裁Box CrAIg作為當(dāng)今最受歡迎的Kubernetes安全工具Kubescape創(chuàng)建者之一,他指出:“與所有云軟件一樣,當(dāng)你將Kubernetes訪問(wèn)權(quán)限委托給團(tuán)隊(duì)時(shí),你要確保自己有與之契合的的護(hù)欄,這是非常重要的。
Craig進(jìn)一步指出,為確保安全性而采取的一些步驟應(yīng)該包括(但不限于):
- 定期更新安全補(bǔ)丁。
- 配置 K8s 集群時(shí)遵循行業(yè)最佳實(shí)踐。
- 檢查并驗(yàn)證映射是否存在惡意代碼、不正確的配置和其他漏洞。
- 禁止用戶(hù)訪問(wèn)云 API 數(shù)據(jù)。
- 利用基于角色的訪問(wèn)控制 (RBAC),允許用戶(hù)僅根據(jù)其角色和功能訪問(wèn) K8s 資源。
- 使用 Kubecsape 等安全工具保護(hù)您的 IDE、CI/CD 管道和集群。
3、修復(fù)存儲(chǔ)問(wèn)題
使用 Kubernetes 時(shí)的額外存儲(chǔ)是有代價(jià)的,其承擔(dān)了開(kāi)發(fā)人員和組織產(chǎn)生的大部分成本。為了有效地減少開(kāi)發(fā)人員的部署摩擦,大型企業(yè)通常會(huì)遷移到公共云環(huán)境并減少對(duì)本地服務(wù)器的依賴(lài)。
根據(jù)ARMO的首席技術(shù)官Ben Hirschberg的說(shuō)法,解決這個(gè)問(wèn)題的一種方法是“從源頭分析數(shù)據(jù),最大限度減少移動(dòng)大量數(shù)據(jù)進(jìn)行觀察的需要。可以直接分析節(jié)點(diǎn)或應(yīng)用程序內(nèi)部的數(shù)據(jù),并非所有數(shù)據(jù)都需要移動(dòng)到外部存儲(chǔ)或可觀測(cè)性平臺(tái)。通過(guò)在本地存儲(chǔ)數(shù)據(jù),DevOps團(tuán)隊(duì)可以避免不必要的數(shù)據(jù)傳輸成本,同時(shí)確保在需要時(shí)隨時(shí)獲得必要的數(shù)據(jù)。
4、優(yōu)先考慮互操作性
大多數(shù)開(kāi)發(fā)人員面臨的K8s的另一個(gè)問(wèn)題是互操作性,即應(yīng)用程序在K8s中相互通信的能力。K8s上可互操作的云原生應(yīng)用程序之間的通信并不像看起來(lái)那么簡(jiǎn)單。正如本文所指出的,缺乏互操作性可能會(huì)影響群集部署,因?yàn)樗膽?yīng)用程序?qū)嵗赡軙?huì)在群集中的單個(gè)節(jié)點(diǎn)上運(yùn)行時(shí)出現(xiàn)問(wèn)題。
解決這一挑戰(zhàn)的一種方法是利用跨多個(gè)組織(如AWS、Google、IBM、SAP和Red Hat)的協(xié)作項(xiàng)目,為您的云原生應(yīng)用程序提供服務(wù)。
5、結(jié)語(yǔ)
最好的 K8s 實(shí)踐不是一次性修復(fù);它們來(lái)自不斷從錯(cuò)誤中學(xué)習(xí)和重新調(diào)整底線。對(duì)于已經(jīng)陷入技術(shù)工作和以創(chuàng)紀(jì)錄速度部署容器的需求的 DevOps 團(tuán)隊(duì)來(lái)說(shuō),這可能需要花費(fèi)更多時(shí)間。但幸運(yùn)的是,可觀測(cè)性工具可以確定將注意力集中在何處,并幫助針對(duì)安全性、互操作性、存儲(chǔ)等關(guān)鍵問(wèn)題提出有積極影響作用的建議和步驟。
原文鏈接:https://dzone.com/articles/how-devops-teams-can-maintain-kubernetes-more-effe