本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon S3 中设置 Helm v3 图表存储库
由 Abhishek Sharma 创作 () AWS
环境:PoC 或试点 | 技术: DevOps;容器和微服务;现代化 | 工作负载:所有其他工作负载 |
AWS服务:亚马逊 S3 |
Summary
这种模式通过将 Helm v3 存储库集成到亚马逊网络服务 () 云上的亚马逊简单存储服务 (Amazon S3) 中,帮助您高效地管理 Helm v3 图表。AWS要使用此模式,您必须熟悉 Kubernetes 和 Helm(Kubernetes 包管理器)。使用 Helm 存储库存储图表和控制图版本可以缩短中断期间的平均恢复 (MTTR) 时间。
这种模式AWS CodeCommit 用于创建 Helm 存储库,它使用 S3 存储桶作为 Helm 图表存储库,这样整个组织的开发人员就可以集中管理和访问图表。
先决条件和限制
先决条件
一个活跃的AWS账户
Python 版本 2.7.12 或更高版本
pip
带有子网和亚马逊弹性计算云 (AmazonVPC) 实例的虚拟私有云 (EC2)
Git 安装在EC2实例上
AWS创建 S3 存储桶的 Identity and Access Management (IAM) 访问权限
IAM(以编程方式或角色)从客户端计算机访问 Amazon S3
AWS CodeCommit 存储库
AWS命令行界面 (AWSCLI)
产品版本
Helm v3
Python 版本 2.7.12 或更高版本
架构
目标技术堆栈
Amazon S3
AWS CodeCommit
Helm
Kubectl
Python 和 pip
Git
helm-3 插件
目标架构
![EC2例如 CodeCommit,Helm 存储库中有 Helm、Git 和 helm-s3,亚马逊 S3 中的 Helm 图表。](images/pattern-img/1dbd3db8-5819-4f30-bebd-a144a2075fcd/images/55652eb2-2e11-4b14-9ed4-0cdcf55cc3e6.png)
自动化和扩缩
您可将 Helm 整合到现有的持续集成/持续交付 (CI/CD) 自动化工具中,以自动执行 Helm 图表的打包和版本控制(超出此模式的范围)。
GitVersion 或者 Jenkins 内部版本号可用于自动控制图表的版本。
工具
Helm
– Helm 是 Kubernetes 的软件包管理器,可帮助您在 Kubernetes 集群上安装和管理应用程序。 Amazon S3 – Amazon Simple Storage Service (Amazon S3) 是一项面向互联网的存储服务。您可以通过 Amazon S3 随时在 Web 上的任何位置存储和检索的任意大小的数据。
helm-s3 插件
– helm-s3 插件支持与 Amazon S3 的交互。它可与 Helm v2 或 Helm v3 一起使用。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
安装 Helm v3 客户端。 | 要在本地系统上下载并安装 Helm 客户端,请运行以下命令: | 云管理员、 DevOps 工程师 |
验证 Helm 安装。 | 要验证 Helm 客户端,请运行以下命令: | 云管理员、 DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
为 Helm 图表创建 S3 存储桶。 | 创建唯一 S3 存储桶。在存储桶中,创建一个名为 | 云管理员、 DevOps 工程师 |
安装适用于 Amazon S3 的 helm-s3 插件。 | 要在客户端计算机上安装 helm-s3 插件,请运行以下命令: | 云管理员、 DevOps 工程师 |
初始化 Amazon S3 Helm 存储库。 | 要将目标文件夹初始化为 Helm 存储库,请使用以下命令: 该命令在目标系统中创建 | 云管理员、 DevOps 工程师 |
验证新创建的 Helm 存储库。 | 要验证 | 云管理员、 DevOps 工程师 |
将 Amazon S3 存储库添加至客户端计算机的 Helm 中。 | 要向 Helm 客户端计算机中添加目标存储库别名,请使用以下命令: | 云管理员、 DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
克隆您的 Helm 图表。 | 如果您的 CodeCommit 存储库中没有本地 Helm 图表,请运行以下命令从存储 GitHub 库中克隆它们: | 云管理员、 DevOps 工程师 |
打包本地 Helm 图表。 | 要打包您创建或克隆的图表,请使用以下命令: 例如,此模式使用 | 云管理员、 DevOps 工程师 |
将本地数据包存储在 Amazon S3 Helm 存储库中。 | 要将本地数据包上传至 Amazon S3 中的 Helm 存储库,请运行以下命令: 在该命令中, | 云管理员、 DevOps 工程师 |
搜索 Helm 图表。 | 要确认图表同时出现在本地和 Amazon S3 Helm 存储库中,请运行以下命令: | 云管理员、 DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
修改和打包图表。 | 在 | 云管理员、 DevOps 工程师 |
将新版本推送至 Amazon S3 中的 Helm 存储库。 | 要将新软件包(0.1.1 版)推送到 Amazon S3 中的 my-helm-chartsHelm 存储库,请运行以下命令: | 云管理员、 DevOps 工程师 |
验证更新的 Helm 图表。 | 要确认更新后的图表同时出现在本地和 Amazon S3 Helm 存储库中,请运行以下命令。
| 云管理员、 DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
搜索 my-app 图表的所有版本。 | 要查看图表的所有可用版本,请使用 如果没有标志,Helm 默认会显示图表的最新上传版本。 | DevOps 工程师 |
从 Amazon S3 Helm 存储库安装图表。 | 自动安装超出了此模式的范围,但您可手动安装。上一个任务的搜索结果显示了 | DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
查看特定修订版的详细信息。 | 自动回滚超出了此模式的范围,但您可手动回滚到较早的版本。在切换或回滚至工作版本前,以及要在安装修订版之前进行额外验证,请使用以下命令查看已传递至每个修订版的值: | DevOps 工程师 |
回滚至以前的版本。 | 自动回滚超出了此模式范围。要手动回滚至以前的修订版,请使用以下命令: 此示例正在回滚至修订版号 1。 | DevOps 工程师 |