资讯专栏INFORMATION COLUMN

Helm 3 使用 harbor 作为仓库存储 charts

Richard_Gao / 3501人阅读

摘要:简介本文讲述的是调教和的经验,从更新到并且将推送到中进行存储,移除了原先的在讲述怎么操作之前先来看一下和的新特性。按时安装这里为了简化测试操作,我关闭了数据卷的挂载并使用的是方式进行访问。

简介

本文讲述的是调教 Helm 3 和 harbor 1.6+ 的经验,从 helm2 更新到 helm 3 并且将 charts 推送到 harbor 中进行存储,移除了原先的 helm serve,在讲述怎么操作之前先来看一下Helm 3 和 Harbor 1.6+ 的新特性。

Helm 3 新特性

移除了 Tiller

不同的 namespace 可以使用相同的 Release Name

简化模板对象 .Capabilities

使用JSONSchema验证 charts 的 Values

requirements.yaml合并到Chart.yaml

helm install 时需要指定 Release Name,开启自动生成需要 --generate-name 参数

支持 push 到远端 registry (如:harbor)

移除 helm serve

命令行变化(将原先的命令保留为别名Aliases)

helm delete --> helm uninstall

helm inspect -> helm show

helm fetch -> helm pull

go 导入路径改变 k8s.io/helm --> helm.sh/helm

具体新特性可以参考Helm 3 新特性,或者参考Helm 官方文档

Harbor v1.6.0 新特性

支持存储 helm charts

...

这里没什么好说的,想要了解更多关于Harbor的,可以参考官方Github

调教开始

在了解了以上新的特性之后,让我着手来操作吧

环境

kubernetes 1.10+

helm 3

harbor 1.6+

调教步骤

确保kubernetes环境可用

下载并初始化 helm 3

安装 harbor 1.6+

添加 harbor 中的 chartrepo 到 helm 3 中

安装使用 helm-push 插件

1.确保kubernetes环境可用

这里就不多说 kubernetes 环境的具体搭建过程了,搭建步骤随处可见。

2.下载并初始化 helm 3

首先执行一下命令,下载并解压安装包

wget https://get.helm.sh/helm-v2.14.2-linux-amd64.tar.gz
tar zxvf helm-v2.14.2-linux-amd64.tar.gz
cd linux-amd64
cp helm /usr/local/bin

解压之后,你如果使用过helm 2 你会发现里面tiller的二进制文件不见了,前文的新特性中已经说了,helm 3 已经移除了 tiller

接下来初始化 helm

helm init

默认添加官方 repo stable https://kubernetes-charts.storage.googleapis.com

3.安装 harbor 1.6+

这里我使用的是 harbor 官方提供的 charts repo,好奇心驱使我打开了这个网站 https://helm.goharbor.io/

这熟悉的界面让我严重怀疑是使用的 helm serve 启的 repo(滑稽脸)

添加harbor repo

helm repo add goharbor https://helm.goharbor.io

这个 repo 只有一个charts harbor ,对应的 harbor 版本为1.8.1

在安装之前我们需要配置一下 kube config context

查看当前的context

kubectl config current-context

设置 context 指定对应的 namespace ,不指定使用的是 default

kubectl config set-context  --namespace test

这里是因为,helm 3 开始helm 3 的执行权限和kubectl config 的权限是一致的,通过kubectl config的方式来控制helm 3 的执行权限。

按时安装harbor ,这里为了简化测试操作,我关闭了数据卷的挂载并使用的是 NodePort 方式进行访问。

helm -n test install harbor goharbor/harbor --set persistence.enabled=false --set expose.type=nodePort --set expose.tls.enabled=false --set externalURL=http://192.168.10.196:30002

参数说明:

persistence.enabled=false 关闭存储,为了方便操作,真实使用时需要挂在存储

expose.type=nodePort 使用 NodePort 访问

expose.tls.enabled=false 关闭tls

externalURL=http://192.168.10.196:30002 设置登录 harbor 的外部链接

出现以下返回,就证明已经开始安装了

NAME: harbor
LAST DEPLOYED: 2019-07-23 11:00:38.525597536 +0800 CST m=+0.690703892
NAMESPACE: test
STATUS: deployed

NOTES:
Please wait for several minutes for Harbor deployment to complete.
Then you should be able to visit the Harbor portal at https://core.harbor.domain. 
For more details, please visit https://github.com/goharbor/harbor.
4.添加 harbor 中的 chartrepo 到 helm 3 中

harbor 装好之后,我们访问 http://192.168.10.196:30002 进行登录 harbor, harbor 的默认账号密码是 admin/Harbor12345

新建一个chart repo

创建一个 test 用户

添加 repo 到 helm 中

helm repo add test http://192.168.10.76:30002/chartrepo/chart_repo
5.安装使用 helm-push 插件
helm plugin install https://github.com/chartmuseum/helm-push

这里最好本地配置一下 github 的 dns 地址,不然可能会出现链接超时的现象

安装好插件之后,就可以push charts 到 harbor 里面了

helm push grafana-0.0.2.tgz test --username test --password xxx

出现以上就说明 push 成功了 ,恭喜!!!

参考

https://github.com/chartmuseu...

https://github.com/goharbor/h...

https://github.com/helm/helm

Github: https://github.com/innerpeacez

个人Blog: https://ipzgo.top

日拱一卒,不期速成

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75593.html

相关文章

  • 基于drone的CI/CD,对接kubernetes,见证灵活与自由,CI/CD对接kubernet

    摘要:所以我们选一个仓库仓库比较多,我这里选用,都行,根据需求自行选择访问端口,然后就没有然后了功能没有那么强大,不过占用资源少,速度快,我们稳定运行了几年了。 kubernetes集群三步安装 CI 概述 用一个可描述的配置定义整个工作流 程序员是很懒的动物,所以想各种办法解决重复劳动的问题,如果你的工作流中还在重复一些事,那么可能就得想想如何优化了 持续集成就是可以帮助我们解决重复的代码...

    iOS122 评论0 收藏0
  • TOP100summit分享实录 | JFrog高欣:Kubernetes is hard!JFro

    摘要:本文内容节选自由主办的第七届,架构师高欣分享的的实践实录。当然,在部署完成后,我们要做一个监测以便掌握它的运行状况。规划配置运行环境在正式部署前,还要考虑如何规划并配置好运行环境。在使用部署时,可以利用这些命令做验证,检验部署是否正常。 showImg(https://segmentfault.com/img/bVblRHj?w=2880&h=1920); 本文内容节选自由msup主办...

    邹强 评论0 收藏0
  • 在Kubernetes集群上部署和管理JFrog Artifactory

    摘要:在本文中我们将介绍如何使用在集群上部署和管理。非常强大,它能够在任何地方管理集群,因此我们将在实例上以独立模式启动,使用它在中部署集群。现在,当你点击,就会把部署到你的集群上。当安装完成后,红色的进度条会变更为绿色。 JFrog Artifactory是一个artifacts仓库管理平台,它支持所有的主流打包格式、构建工具和持续集成(CI)服务器。它将所有二进制内容保存在一个单一位置并...

    dunizb 评论0 收藏0
  • 初试 Helm 3

    摘要:但此功能目前并不直接可用相关也已经创建。根源在于参数的获取实现上。省略输出可以看到,这个名称可以在这个中重复使用了。比如省略输出支持将推送至镜像仓库中简而言之就是使用镜像仓库同时存储镜像和不过这个功能我暂时还没验证。 经过了长时间的开发,Helm 3 终于在今天发布了第一个 alpha 版本。本文将简单介绍 Helm 3 新特性。 移除 Tiller Helm 2 是 C/S 架构,主...

    superPershing 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<