作者:Veeam全球高級技術專家MichaelCade
當下企業越來越多的采用云原生來開發和拓展應用程序,因此在處理日益增長的復雜性以及支持在多云環境下部署工作負載時,容器和Kubernetes就變得至關重要。
但一項針對DevOps專業人士的調查發現,94%的人在過去一年里至少經歷過一次Kubernetes安全事件,59%的人認為安全問題是他們在使用Kubernetes以及容器時最大的擔憂。雖然越來越多的DevOps團隊轉向Kubernetes,以滿足企業擴展需求,但像安全和數據保護這樣的基本原則絕不能被忽視。
部署Kubernetes
開發人員被要求在更多的動態環境中建立更大、更加可擴展的應用程序。因此,對于運營或基礎設施團隊來說,跟上不斷變化的軟件開發實踐似乎已經成了一項全職工作。Kubernetes只是最新的(也可以說是更復雜的)挑戰,但開發人員的目標沒有變:我們如何才能減少風險,最大限度地降低成本,并提供一個更好的整體業務成果?
開發團隊是"開拓者",他們探索新的領域并建立起全新的東西。另一方面,運營和基礎設施團隊是"定居者",在第二波浪潮中來鞏固新的開發,并確保它能長期生存。這正是Kubernetes的情況。當Kubernetes處于虛擬化或適用階段時,通常是由運營團隊主導,因為關乎真正的業務成果的責任落在他們身上。
但想讓這些團隊理解Kubernetes和容器的錯綜復雜是一個很高的要求。即使是新技術,也需要遵守基本原則,即安全、備份和恢復都是需要的。但獨特的技術要求也會帶來挑戰。
Kubernetes的安全性和零信任
作為一個云原生程序,Kubernetes的許多安全挑戰來自云架構的分散性。不同的工作負載可以在幾個不同的地方運行,包括多個云以及外部和內部的服務器。這不僅大大增加了可能發生攻擊和錯誤的"威脅范圍",而且還增加了可視化方面的挑戰,即監控容器和檢測問題都變的更困難。
雖然Kubernetes的設計是安全的,它只對可以驗證和授權的請求做出響應,但它也為開發者提供了定制的配置選項,這意味著它的安全程度只相當于開發者配置的RBAC(基于角色的訪問控制)策略。Kubernetes還使用了所謂的"扁平網絡",使容器組(或Pod)默認與其他容器進行通信。這引起了安全問題,因為理論上,攻擊者如果破壞了一個Pod,就可以訪問同一集群中的其他資源。
盡管有一定的復雜性,但減輕這種風險的解決方案是非常簡單直觀的,即零信任。由于有如此大的攻擊面、開放的網絡設計和跨越不同環境的工作負載,因此在使用Kubernetes進行構建時,零信任架構極為重要,即從不信任和永遠驗證。
零信任架構的原則是將安全的焦點從應用程序的外圍移開,同時將這些原則貫穿始終。所有的內部請求一律視為可疑的,自上至下都需要身份驗證。這種策略通過假設網絡上一直存在威脅來幫助降低風險,因此圍繞每個用戶、設備和連接持續保持嚴格的安全程序。對于Kubernetes的流動和分散的架構來說,這是必須的。
備份和恢復
為Kubernetes應用程序減輕風險所需的另一個基本原則是備份和恢復。這是一個眾所周知的概念,但在備份Kubernetes和容器時,有很多特殊的考量。這些對數據備份的不同要求是因為Kubernetes與其他架構有根本的不同,例如,它沒有映射到服務器或虛擬機上的應用。
Kubernetes備份系統也需要以應用為中心,而不是以基礎設施為重點。這是出于DevOps理論基礎和"左移"原則,即開發人員對基礎設施和部署有更多的控制。Kubernetes備份的其他特殊需求包括應用程序的規模、保護差距和生態系統的整合。
在恢復Kubernetes環境時,需要一個詳細的執行計劃,確定集群的依賴性,更新應用程序以反映新的存儲組件,并將計劃轉化為相關的Kubernetes應用程序編程接口(API)。雖然備份確實需要更多定制的Kubernetes原生解決方案,但這種恢復過程對企業的長期健康發展仍然至關重要。在今天,高效恢復和災難恢復是必不可少的,據估計,每分鐘的中斷成本為1,459歐元。
此外,備份在測試和開發目的以及實現應用程序移動性方面具有巨大價值。應用程序的移動性是指將應用程序遷移到不同環境的能力——跨企業內部、云、集群以及Kubernetes分布。隨著IT環境變得越來越復雜,企業需要應對新的業務需求,采用新的技術平臺或優化成本,這一點也越來越重要。
迎接改變
盡管Kubernetes帶來了新的技術挑戰,但終究萬變不離其宗。運營和基礎設施團隊已經習慣于將新的工具納入不斷擴展的技術棧,通過現代數據保護降低風險等核心原則仍在發揮作用。
一旦這些能力建立起來,運營團隊就可以看得更遠,并通過測試和優化等手段來挖掘利用其數據的價值。利用支持應用程序移動性的強大備份,團隊還可以通過確保服務能夠更容易地駕馭下一波變化,來為應用程序的未來做好準備。雖然Kubernetes是目前正在改變開發環境的工具,但它肯定不會是最后一個。