如何基于 Kubernetes 實現(xiàn)優(yōu)質(zhì)開發(fā)者平臺體驗?
作者|Andy Suderman
翻譯|Seal軟件
鏈接|https://cloudnativenow.com/features/enable-a-great-kubernetes-developer-platform-experience/
內(nèi)部開發(fā)者平臺(或 IDP)是使開發(fā)團隊能夠更快、更輕松、更一致地交付應(yīng)用程序的基礎(chǔ)設(shè)施。Kubernetes 本身是一個功能強大的平臺,但它引入了太多復(fù)雜性和功能,因此不能簡單地將其作為 IDP 交給開發(fā)團隊。若要期望他們能取得成功,非常重要的一點是要設(shè)置一些防護措施,使他們能夠有效地使用 K8s,而不會增加與可靠性、成本效益和安全性相關(guān)的風險。
雖然 Kubernetes 本身并不適合作為 IDP,但它是構(gòu)建 IDP 的堅實基礎(chǔ)。Kubernetes 為平臺工程師提供了許多工具,例如,它可以為開發(fā)人員構(gòu)建 IDP、提供更簡化的構(gòu)建和運行應(yīng)用程序的方式。因此需要考慮的問題是,如何構(gòu)建一個既能為開發(fā)人員提供良好體驗,又不會妨礙部署到生產(chǎn)環(huán)境的平臺。通過使用策略和治理、基于角色的訪問控制(RBAC)和默認網(wǎng)絡(luò)策略應(yīng)用安全措施,有一些很好的方法可以防止集群中發(fā)生錯誤。
Kubernetes 平臺的構(gòu)成
基于 Kubernetes 的 IDP 不僅包括 Kubernetes,還包括開發(fā)人員所需的工具和流程。作為 Kubernetes 的安全限制,IDP 還需要您希望在 Kubernetes 中建立的策略和治理。這種組合使您能夠為開發(fā)人員提供一條 "黃金路徑",讓他們能夠更快地部署應(yīng)用程序。Kubernetes 平臺由四個主要部分組成:
插件
插件是提供默認“開箱即用”功能所需的工具,可擴展 Kubernetes 的功能,包括 DNS、TLS、Ingress、日志記錄、跟蹤等。這些工具可以是開源項目也可以是來自供應(yīng)商的軟件。
創(chuàng)建治理
Kubernetes 治理是創(chuàng)建策略、程序和一組標準策略的過程,用于定義和實施 Kubernetes 平臺中的最佳實踐,以及資源管理、調(diào)度、升級和基于角色的訪問控制。
啟用部署(CI/CD)
這是應(yīng)用程序從代碼進入平臺的方式。在 IDP 中,您為開發(fā)人員創(chuàng)建了一條 "黃金路徑”,讓他們能更輕松地將新應(yīng)用程序和服務(wù)部署到平臺中,同時保持高效和安全。
提供反饋
IDP 的一個重要組成部分是向開發(fā)團隊提供及時反饋。平臺的這一部分必須包括快速檢測和問題通知,并與他們已經(jīng)使用的工具集成。同時還應(yīng)在代碼審查過程中為開發(fā)人員提供建議的修復(fù)選項。
治理和策略:三個階段
當您考慮如何在 Kubernetes 中應(yīng)用治理和策略時,這確實是一個過程。首先,您需要選擇或創(chuàng)建必要的策略。接下來,您需要一種自動的方式來識別違反政策的行為,然后指導(dǎo)如何修復(fù)這些違反策略的行為。最后,需要能夠自動阻止這些違規(guī)行為進入集群。
團隊在開始部署 Kubernetes 的時候往往沒有遇到什么初始問題,也就是說在這個階段開發(fā)團隊在內(nèi)容、編碼和交付應(yīng)用程序和服務(wù)時沒有什么明顯的問題。但平臺團隊后來發(fā)現(xiàn)開發(fā)團隊忽略了一些重要的安全措施來幫助維護安全并持續(xù)應(yīng)用最佳實踐。因為在開發(fā)者平臺中,開發(fā)人員可以輕松地在需要時部署他們想要的內(nèi)容。除非團隊中有人返回并手動檢查所有設(shè)置,否則在出現(xiàn)問題之前可能不會有任何意識。
可以使用開源策略引擎(如 Polaris 或 Open Policy Agent (OPA))在 Kubernetes 中自動應(yīng)用策略。使用類似的解決方案,您可以確保您的配置與環(huán)境中的策略保持一致,幫助您保持一切順利運行。
選擇策略
在開始使用策略執(zhí)行與成本效益、安全性和可靠性相關(guān)的 Kubernetes 最佳實踐時,開發(fā)人員往往不知道從哪里開始,也不知道應(yīng)該關(guān)注什么。最好的入門方法是確定什么對您來說最重要,這就是創(chuàng)建策略的方法。如果成本對你來說是最重要的,那么就把重點放在影響成本的策略上,如資源請求和限制。如果安全是你的首要關(guān)注點,那就處理以 root 身份運行的容器或生成網(wǎng)絡(luò)策略。我們的建議是從小處著手,挑選一兩個能實現(xiàn)目標的策略,然后全面實施這些策略。
識別、修復(fù)和阻止違規(guī)行為
接下來,需要找出當前集群中違反策略的地方,并開始逐一糾正這些問題。修復(fù)關(guān)鍵類別中的問題后,您就可以開始在訪問時執(zhí)行策略了。當開始執(zhí)行策略并成功阻止違反策略的行為之后就可以放心了,因為這些問題不會再次彈出,你可以對要強制執(zhí)行的下一組策略重復(fù)該過程。隨之也就變得更加高效和安全了。
構(gòu)建強大的 IDP
對于內(nèi)部開發(fā)人員平臺而言,應(yīng)用 Kubernetes 治理和策略使您能夠高效地管理資源,幫助控制成本,確保應(yīng)用程序獲得最佳運行所需的資源。它還能幫助您通過控制訪問和實施最佳實踐來確保安全性和合規(guī)性,并通過建立標準、自動化的應(yīng)用部署和擴展流程來提高可靠性和彈性。穩(wěn)健的 Kubernetes 治理和策略是構(gòu)建安全、高效、可靠的內(nèi)部開發(fā)人員平臺的關(guān)鍵組成部分,可滿足開發(fā)人員和整個組織的需求。