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















 
 
 







 
 
 
 