原文發表于kubernetes中文社區,為作者原創翻譯 ,原文地址
更多kubernetes文章,請多關注kubernetes中文社區
目錄
自動化與配置 (Automation and Configuration)
這是什么
解決了什么問題
它如何解決
相應的解決工具
鏡像倉庫 (Container Registry)
這是什么
解決的問題
如何解決
相應的解決工具
安全與合規(Security and Compliance)
這是什么
解決的問題
如何解決
相應的解決工具
密鑰和身份管理(Key and Identity Management)
這是什么
解決的問題
如何解決
相應的解決工具
上篇文章《叮,你收到一份來自CNCF的云原生景觀簡介》,我們對CNCF云原生生態系統做了概述,從這篇文章開始,我們將介紹云原生景觀中,每種類別中的工具是什么,他們解決了什么問題以及如何解決的,
云原生環境中的第一層是供應層(Provisioning),這涵蓋了從自動化基礎結構的創建,管理和配置鏡像掃描,鏡像簽名和存盤鏡像的所有內容,該層還擴展了安全性,其工具可用于設定和實施安全策略,處理應用程式和平臺中身份認證和授權,以及密鑰分發,

查看云原生景觀圖時,你會注意到一些區別:

-
大盒子中的專案是CNCF托管的開源專案,有些仍處于范訓階段(淺藍色/紫色框),而另一些則是已畢業的專案(深藍色框),
-
白色小盒子中的專案是開源專案,
-
灰色的是專有產品,
請注意,即使在撰寫本文時,我們也看到新專案成為CNCF的一部分,因此始終參考實際情況-事情發展很快!
好的,讓我們看一下供應層(Provisioning)的每個類別,它所扮演的角色以及這些技術,如何幫助應用程式適應云原生環境,
自動化與配置 (Automation and Configuration)
這是什么
自動化和配置工具可加快計算資源(虛擬機,網路,防火墻規則,負載均衡器等)的創建和配置,這些工具可能會處理供應層(Provisioning)的不同部分,或者嘗試控制所有端到端的內容,大多數工具,提供與該空間中其他專案和產品集成的能力,
解決了什么問題
傳統上,IT流程依賴冗長且復雜的手動發布周期,甚至需要三到六個月,這些周期伴隨著許多人工流程和控制,從而級訓了生產環境的變更,這些緩慢的發布周期和靜態環境與云原生開發不兼容,為了實作快速的開發周期,必須動態配置基礎架構,并且無需人工干預,
它如何解決
此類工具使工程師無需人工干預即可構建計算環境,環境設定,只需單擊一個按鈕,它就可以實作,手動設定很容易出錯,但是一旦進行了編碼,環境創建就會與所需的確切狀態相匹配,這是巨大的優勢,
盡管這些工具可能采用不同的方法,但它們都旨在通過自動化配置資源減少所需的手工操作,
相應的解決工具
當我們從老式的人為驅動的配置過渡到云環境所要求的按需擴展時,我們發現我們以前使用的模式和工具不再滿足我們的需求,組織也無力維持龐大的24×7員工隊伍,而他們的工只作是創建,配置和管理服務器,
Terraform之類的自動化工具減少了擴展數十個服務器和相關網路以及多達數百個防火墻規則所需的作業量,諸如Puppet,Chef和Ansible之類的工具會在啟動時以編程方式配置這些新服務器和應用程式,并允許開發人員使用它們,
一些工具可以直接與AWS或vSphere等平臺提供的基礎架構API進行互動,而其他工具側重于配置單個計算機以使其成為Kubernetes集群的一部分,
像Chef和Terraform一樣,許多工具可以進行互動操作以配置環境,諸如OpenStack之類的其他工具,運用基礎架構即服務(IaaS)的理念來配置環境,從根本上講,在此空間中,你需要一個或多個工具來為Kubernetes集群搭建計算環境,CPU,記憶體,存盤和網路,你還需要其中一部分來創建和管理Kubernetes集群本身,
在撰寫本文時,該領域中有三個CNCF專案:KubeEdge(一個CNCF沙盒專案)以及Kubespray和Kops(后兩個是Kubernetes子專案,因此雖然尚未列出,但它們屬于CNCF),此類別中的大多數工具都提供開源和付費版本,
| 流行語 | 熱門專案/產品 |
|---|---|
| 基礎架構即代碼(IaC) 自動化 宣告式配置 | Chef Puppet Ansible Terraform |

鏡像倉庫 (Container Registry)
這是什么
在介紹鏡像倉庫之前,讓我們首先討論三個緊密相關的概念:
-
容器是用于執行軟體流程的一組計算約束,使得容器內啟動的行程相信它們正在自己的專用計算機上運行,而不是與其他行程(類似于虛擬機)共享的計算機上運行,簡而言之,容器使你無論身在何處都可以以受控方式運行代碼,
-
鏡像是運行容器及其程序所需的一組存檔檔案,你可以將其視為模板的一種形式,可以在其上創建無限數量的容器,
-
存盤庫是存盤鏡像的地方,
鏡像倉庫是用于分類和存盤鏡像的專用Web應用程式,

解決的問題
云原生應用程式打包并作為容器運行,鏡像倉庫存盤并提供這些容器鏡像,
如何解決
通過將所有容器鏡像集中存盤在一個地方,任何使用該應用程式的開發人員都可以輕松訪問它們,
相應的解決工具
鏡像倉庫工具存盤和分發鏡像,從根本上說,它是一種Web API,允許容器引擎存盤和檢索鏡像,他們有的還提供介面以允許容器掃描或簽名工具來增強存盤的鏡像的安全性,
任何使用容器的環境都將需要使用一個或多個鏡像倉庫,
該空間中的工具可以提供集成功能,以掃描,簽名和檢查它們存盤的鏡像,在撰寫本文時,Dragonfly和Harbor是CNCF專案,而Harbor最近成為了第一個符合OCI的注冊機構,每個主要的云提供商都提供自己托管的鏡像倉庫,許多鏡像倉庫可以獨立部署,也可以通過Helm之類的工具直接部署到Kubernetes集群中,
| 流行語 | 熱門專案/產品 |
|---|---|
| Container OCI Image Registry | Docker Hub Harbor Hosted registries from AWS, Azure, and GCP Artifactory |

安全與合規(Security and Compliance)
這是什么
云原生應用程式旨在快速迭代,就好像你的手機應用程式不斷更新--每天它們都在不斷發展,并且可能會變得越來越好,為了定期發布代碼,我們必須確保我們的代碼和操作環境是安全的,并且只能由授權的工程師訪問,
本節中的工具和專案代表了以安全方式創建和運行現代應用程式所需的一些內容,
解決的問題
這些工具和專案可幫助你加強,監視和實施平臺和應用程式的安全性,從容器到你的Kubernetes環境,它們使你能夠設定策略(用于合規性),深入了解現有漏洞,捕獲錯誤配置以及增強容器和集群的安全性,
如何解決
為了安全地運行容器,必須對進行容器掃描以查找已知漏洞并簽名,以確保它們未被篡改,Kubernetes本身默認的訪問控制設定比較寬松,因此,對于希望攻擊你的系統的任何人來說,Kubernetes集群都是一個有吸引力的目標,該空間中的工具和專案有助于增強群集,并提供工具來檢測系統何時出現例外,
相應的解決工具
為了滿足在動態,快速發展的云環境中安全運行,我們必須將安全性視為平臺和應用程式開發生命周期的一部分,這個領域中的工具種類繁多,旨在解決問題的不同部分,大多數工具屬于以下類別之一:
-
審計與合規(Audit and compliance)
-
生產環境中強化的途徑
-
代碼掃描
-
漏洞掃描
-
鏡像簽名
-
-
政策制定與執行
-
網路層安全
這些工具和專案中的一部分很少會被直接使用,例如鏡像倉庫或其他掃描工具會利用Trivy,Claire和Notary等,其他一些工具,是現代應用程式平臺的關鍵強化組件,例如Falco或Open Policy Agent(OPA),
有許多成熟的供應商在此領域提供解決方案,在撰寫本文時,Falco,Notary / TUF和OPA是該領域中僅有的CNCF專案,
| 流行語 | 熱門專案/產品 |
|---|---|
| 鏡像掃描 鏡像簽名 Policy enforcement(政策執行) Audit審計 | OPA Falco Sonobuoy |

密鑰和身份管理(Key and Identity Management)
這是什么
在進行密鑰管理之前,讓我們首先定義密鑰,密鑰是用于加密或簽名資料的字串,就像物理密鑰一樣,它加密資料,以便只有擁有正確密鑰的人才能解密資料,
隨著應用程式適應新的云原生世界,安全工具也在不斷發展以滿足新的安全需求,此類別中的工具和專案涵蓋了從如何安全地存盤密碼和其他機密資訊(敏感資料,例如API密鑰,密鑰等)到如何從微服務環境中安全洗掉密碼和機密資訊等,
解決的問題
云原生環境是高度動態的,需要按需,完全編程(無人參與)和自動化的秘密分發,應用程式還必須知道給定的請求是否來自有效來源(身份驗證),以及該請求是否有權執行其嘗試執行的任何操作,通常將其稱為AuthN和AuthZ,
如何解決
每個工具或專案都采用不同的方法,但是它們都提供了一種安全分發密鑰的方法,或者它們提供了與身份驗證,授權或兩者相關的服務或規范,
相應的解決工具
此類別中的工具可以分為兩組:一些工具專注于密鑰生成,存盤,管理和輪換,另一組專注于單點登錄和身份管理,例如,Vault是一種相當通用的密鑰管理工具,可讓你管理不同型別的密鑰,另一方面,Keycloak是一種身份代理,可用于管理不同服務的訪問密鑰,
在撰寫本文時,SPIFFE / SPIRE是該領域中唯一的CNCF專案,并且大多數工具都提供開源版本和付費版本,
| 流行語 | 熱門專案 |
|---|---|
| AuthN and AuthZ Identity Access Secrets | Vault SpiffeOAuth2 |

正如我們已經看到的那樣,供應層(Provisioning)側重于構建你的云原生平臺和應用程式的基礎,其工具處理從基礎結構到鏡像倉庫到安全性的所有內容,本文旨在作為詳細介紹云原生環境的系列文章的第一篇,在下一篇文章中,我們將專注于運行時層,并探索云原生存盤,容器運行時和網路,
譯文連接:https://thenewstack.io/the-cloud-native-landscape-the-provisioning-layer-explained/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/23030.html
標籤:AI
