暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

纯干货!基于 Amazon S3 或 ECR 搭建高可用的 Helm Chart 仓库

西云数据云计算 2022-04-27
621

随着容器化技术的普及,越来越多的公司选择使用 Kubernetes 管理云平台中多主机上的容器化应用。Helm 是查找、分享和使用软件构建 Kubernetes 的最优方式之一。如何高可用、可伸缩地管理 Helm Chart 成为研发团队必须要考虑的问题之一。

在亚马逊云科技,我们可以使用 S3 或 ECR 快速搭建一个高可用的 Helm Chart 仓库。



一、基于 S3



1、Helm S3 插件配置

# 安装 helm-S3 插件

helm plugin install https://github.com/hypnoglow/helm-s3.git

# 初始化 S3 目录(假设名为 my-helm-charts 的 S3 存储桶已经存在)

helm s3 init s3://my-helm-charts/charts/

helm repo add my-helm-charts s3://my-helm-charts/charts/ 

# 查看 my-helm-charts repo 是否已经添加到本地

helm repo list


2、创建 chart 上传到 S3

# 创建 chart
helm create my-nginx
# 验证 chart 是否有语法错误
helm lint my-nginx/
# 打包 helm chart
helm package my-nginx/
# 推送 my-nginx helm chart 到 S3
helm s3 push my-nginx-0.1.0.tgz my-helm-charts --force

3、安装 chart 到 EKS/Kubernetes

# 从 Helm s3 repo 安装 my-nginx chart 到 EKS/ Kubernetes 集群
helm install my-nginx my-helm-charts/my-nginx


二、基于 ECR



1、须知

(1)下文中的 XXXXXXXXXXXX 代表您的 Amazon Account ID
(2)请确保您的账号下对应区域内名称为 artifact-test 的 ECR repository 已经提前创建好

2、创建 chart 并推送到 ECR

# 在 Helm 客户端中启用 OCI 支持

export HELM_EXPERIMENTAL_OCI=1
# 登录 ECR
aws ecr get-login-password --region cn-northwest-1 | docker login --username AWS --password-stdin XXXXXXXXXXXX.dkr.ecr.cn-northwest-1.amazonaws.com.cn
# 创建 chart
helm create my-nginx-ecr
# 将 chart 保存在本地并使用您的注册表 URI 为chart创建别名
cd my-nginx-ecr/
helm chart save . XXXXXXXXXXXX.dkr.ecr.cn-northwest-1.amazonaws.com.cn/artifact-test:my-nginx-ecr
# 推送 chart 到 ECR
helm chart push XXXXXXXXXXXX.dkr.ecr.cn-northwest-1.amazonaws.com.cn/artifact-test:my-nginx-ecr
# 查询 ECR 中的 Helm chart 推送结果
aws ecr describe-images  --repository-name artifact-test

3、使用 ECR 部署 chart 到 EKS

# 在 Helm 客户端中启用 OCI 支持

export HELM_EXPERIMENTAL_OCI=1
# 登录 ECR
aws ecr get-login-password --region cn-northwest-1 | docker login --username AWS --password-stdin XXXXXXXXXXXX.dkr.ecr.cn-northwest-1.amazonaws.com.cn
# 拉取 chart 到本地
helm chart pull XXXXXXXXXXXX.dkr.ecr.cn-northwest-1.amazonaws.com.cn/artifact-test:my-nginx-ecr
# 将 chart 导出到本地目录
helm chart export XXXXXXXXXXXX.dkr.ecr.cn-northwest-1.amazonaws.com.cn/artifact-test:my-nginx-ecr
# 安装 chart
helm install ecr-chart-demo ./my-nginx-ecr

作者介绍

曹赫洋

亚马逊云科技专业服务团队 DevOps 顾问,主要负责 DevSecOps 咨询和技术实施。在 DevSecOps 加速企业数字化转型方面领域拥有多年经验,对公有云、DevSecOps、基于云原生的微服务架构、敏捷加速研发效能等有深入的研究和热情。



互动


参与分享活动,赢取精选好礼!根据 “分享最多” 排行榜,我们将在每月第一次推送中公布获奖名单,为前 10 名送上精美礼品。







文章转载自西云数据云计算,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论