本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon EKS 和 Amazon S3 中的 Helm 圖表儲存庫部署 Kubernetes 資源和套件
由薩加爾·帕尼格拉希 (AWS) 創建
:PoC 或試驗 | 技術:容器與微服務;DevOps | AWS 服務:Amazon EKS |
Summary
這種模式可協助您有效地管理 Kubernetes 應用程式,無論其複雜性如何。此模式將 Helm 整合至您現有的持續整合和持續交付 (CI/CD) 管線,以便將應用程式部署到 Kubernetes 叢集中。頭盔是一個 Kubernetes 軟件包管理器,可以幫助您管理 Kubernetes 應用程序。頭盔圖有助於定義、安裝和升級複雜的 Kubernetes 應用程式。圖表可以版本化並儲存在 Helm 儲存庫中,這可以改善中斷期間恢復 (MTTR) 的平均時間。
此模式針對 Kubernetes 叢集使用 Amazon Elastic Kubernetes Service (Amazon EKS)。它使用 Amazon Simple Storage Service (Amazon S3) 作為 Helm 圖表儲存庫,以便整個組織的開發人員可以集中管理和存取這些圖表。
先決條件和限制
先決條件
具有虛擬私有雲端 (VPC) 的有效 Amazon Web Services (AWS) 帳戶
Amazon EKS 叢集
工作者節點在 Amazon EKS 叢集中設定並準備接受工作負載
庫貝特,用於為用戶端機器中的目標叢集設定 Amazon EKS kubeconfig 檔案
用於建立 S3 儲存貯體的 AWS Identity and Access Management (IAM) 存取
從用戶端機器存取 Amazon S3 的 IAM (程式設計或角色)
源代碼管理和 CI/CD 管道
限制
目前沒有升級、刪除或管理自訂資源定義 (CRD) 的支援。
如果您使用參照 CRD 的資源,則必須分別安裝 CRD (在圖表之外)。
產品版本
頭盔 v3.6.3
Architecture
目標技術堆疊
Amazon EKS
Amazon VPC
Amazon S3
來源碼管理
金屬頭盔
庫貝特
目標架構

自動化和擴充
AWS CloudFormation 可用來自動建立基礎設施。一種選擇是使用模組化和可擴展的 Amazon EKS 架構快速入門
。 Helm 將被納入您現有的 CI/CD 自動化工具中,以自動化 Helm 圖表的打包和版本控制(超出此模式的範圍)。
GitVersion 或詹金斯構建號可以用來自動化圖表的版本。
Tools
工具
Amazon EKS— Amazon Elastic Kubernetes Service (Amazon Elastic Kubernetes) 是一項受管服務,用於在 AWS 執行 Kubernetes,而無需自行設置或維護您的 Kubernetes 控制平面。Kubernetes 是一套開放原始碼系統,用於容器化應用程式的自動化部署、擴展與管理。
金屬頭盔
— Helm 是 Kubernetes 的套件管理工具,可協助您在 Kubernetes 叢集上安裝和管理應用程式。 Amazon S3— Amazon Simple Storage Service (Amazon S3) 是網際網路儲存服務。您可以使用 Amazon S3 隨時從 Web 任何地方存放和擷取任意資料量。
庫貝特
— Kubectl 是一項命令列公用程式,用於對 Kubernetes 叢集執行命令。
Code
附加範例程式碼。
Epics
任務 | 描述 | 所需技能 |
---|---|---|
安裝 Helm 用戶端。 | 若要在本機系統上下載並安裝 Helm 用戶端,請使用下列指令。
| 裝置工程師 |
驗證頭盔安裝。 | 若要驗證 Helm 是否能夠與 Amazon EKS 叢集內的 Kubernetes API 伺服器進行通訊,請執行 | 裝置工程師 |
任務 | 描述 | 所需技能 |
---|---|---|
為 NGINX 創建一個頭盔圖表。 | 若要建立名為 | 裝置工程師 |
檢閱圖表的結構。 | 若要檢閱圖表的結構,請執行樹狀結構 | 裝置工程師 |
停用圖表中的服務帳戶建立。 | In | 裝置工程師 |
驗證(lint)修改後的圖表是否有語法錯誤。 | 若要在目標叢集中安裝之前驗證圖表是否有任何語法錯誤,請執行 | 裝置工程師 |
安裝圖表以部署 Kubernetes 資源。 | 若要執行 Helm 圖表安裝,請使用下列命令。
選擇性 | 裝置工程師 |
檢閱 Amazon EKS 叢集中的資源。 | 若要檢閱在 Helm 圖表中所建立的資源,請參閱
| 裝置工程師 |
任務 | 描述 | 所需技能 |
---|---|---|
修改並升級版本。 | 若要修改圖表,請在
| 裝置工程師 |
查看頭盔版本的歷史記錄。 | 若要列出已使用 Helm 安裝之特定版本的所有修訂,請執行下列命令。
| 裝置工程師 |
檢閱特定修訂版本的詳細資訊。 | 在切換或復原至工作版本之前,以及在安裝修訂版本之前進行額外的驗證層,請使用下列指令檢視傳遞給每個修訂的值。
| 裝置工程師 |
轉返到先前的版本。 | 若要轉返到先前的修訂,請使用下列命令。
這個例子是回滾到修訂號碼 1。 | 裝置工程師 |
任務 | 描述 | 所需技能 |
---|---|---|
為 Helm 圖表中的 S3 儲存貯體。 | 創建一個獨特的 S3 存儲桶。在儲存貯體中,建立名為 | 雲端管理員 |
安裝 Amazon S3 的頭盔插件。 | 要在您的客戶端機器上安裝 helm-s3 插件,請使用以下命令。
請注意:頭盔 V3 支持與外掛程式版本 0.9.0 及以上版本可用。 | 裝置工程師 |
初始化 Amazon S3 頭盔存儲庫。 | 若要初始化目標資料夾為 Helm 儲存庫,請使用下列命令。
命令會建立 | 裝置工程師 |
將 Amazon S3 儲存庫新增到 Helm。 | 若要在用戶端機器中新增儲存庫,請使用下列命令。
此命令會將別名新增至 Helm 用戶端機器中的目標儲存庫。 | 裝置工程師 |
檢閱儲存庫清單。 | 若要檢視 Helm 用戶端機器中的儲存庫清單,請執行 | 裝置工程師 |
任務 | 描述 | 所需技能 |
---|---|---|
封裝圖表。 | 若要封裝 | 裝置工程師 |
將軟件包存儲在 Amazon S3 頭盔存儲庫中。 | 若要將套件上傳到 Amazon S3 中的 Helm 存放庫,請使用
| 裝置工程師 |
搜尋頭盔圖表。 | 若要確認圖表同時顯示在 Amazon S3 的本機和 Helm 存放庫中,請執行下列命令。
| 裝置工程師 |
任務 | 描述 | 所需技能 |
---|---|---|
修改並封裝圖表。 | In 版本控制是通過使用 GITVersion 或 Jenkins 在 CI/CD 管道中的工具自動化進行理想的更新。自動化版本號碼已超出此樣式的範圍。 | 裝置工程師 |
將新版本推送到 Amazon S3 中的頭盔存儲庫。 | 要將版本為 0.1.1 的新軟件包推送到
| 裝置工程師 |
任務 | 描述 | 所需技能 |
---|---|---|
搜索我的 nginx 圖表的所有版本。 | 若要檢視圖表的所有可用版本,請使用
如果沒有旗標,Helm 預設會顯示圖表的最新上傳版本。 | 裝置工程師 |
從 Amazon S3 頭盔存儲庫安裝圖表。 | 上一個工作的搜尋結果會顯示多個版本的
| 裝置工程師 |