Helm仓库的重要变更和v2支持将在11月结束
客座文章作者:Dan Garfield,首席技术布道者,Codefresh和Scott Rigby,开发者体验,Weaveworks
在2020年11月13日,稳定(Stable)和孵化器(Incubator)Helm chart仓库将被弃用,所有Helm相关的镜像将不再从GCR中提供。如果用户不将镜像位置切换到他们的新位置,也不更新任何从稳定/孵化器仓库到他们的新位置,那么他们可能会遇到问题。这对Helm 2用户尤其重要,因为Tiller的位置也发生变化,未能更新这将在Tiller重启时导致Helm发布/回滚失败。
这个弃用过程是在一年多前宣布并开始的,但许多人仍然在使用主仓库和镜像。
https://helm.sh/blog/helm-v2-deprecation-timeline/
为什么有这些变化
Helm非常流行,以至于维护一个集中式存储库的成本已经超出了我们的能力范围。谷歌的团队在过去的几年里一直托管chart仓库和镜像,但是时候来找到一个新位置。在过去的一年里,Helm已经转向了一个更加分布式的模型,仓库由社区托管。例如,https://chartcenter.io和https://artifacthub.io/可以找到大多数的包。此外,Github的工作人员很仁慈地为我们开放了他们的容器注册表来存储我们的开源镜像,包括Tiller。
11月13日之前需要做什么,以避免潜在的停机或其他问题
准备检查表
- 从稳定/孵化器更新所有chart的新位置。你可以在这个Github问题中找到迁移后的chart列表 https://github.com/helm/charts/issues/21103
- 对Helm 2的用户来说
- 更新Tiller镜像位置
- 或者升级到Helm 3,不再需要Tiller(推荐)
指令
1. 升级到Helm 3
升级到Helm 3将删除Helm服务器端的Tiller,是一个非常直接和安全的过程。
为了帮助你迁移,我们建议使用以下资源。
- Helm 2到Helm 3的迁移 https://helm.sh/blog/migrate-from-helm-v2-to-helm-v3/
- 深入探索Helm 3和迁移的视频 https://www.cncf.io/webinars/making-the-most-of-helm-3/
- Helm团队也将在10月21日举办Helm 2到Helm 3的虚拟研讨会。 https://events.linuxfoundation.org/helm-v3-workshop/
2. 如果有必要留在Helm 2,从它的新位置得到Tiller镜像
Tiller镜像目前可以在Docker hub找到,并计划添加到其他位置。你可以关注相关的Github问题8343和8346。在写这篇文章的时候,一个新的Helm 2.x客户端版本计划使用一个新的默认位置。请注意,Helm 2不会收到安全补丁,你会想尽快迁移到Helm 3。
https://hub.docker.com/r/helmpack/tiller/tags
https://github.com/helm/helm/issues/8343
https://github.com/helm/helm/issues/8346
3. 更新稳定/孵化器chart
许多维护人员已经将他们的chart迁移到了新的地方。你可以在这里跟踪chart迁移进度。当你确定了,在你的下一次升级时只需使用通常的语法,添加和引用新的仓库:
helm upgrade [发布名称] [掌舵chart]
https://github.com/helm/charts/issues/21103
注意:请确保使用你通常需要的所有参数来升级chart,因为这不会保留安装期间使用的附加标志。
例如,如果我安装了stable/kibana,我需要首先添加新的仓库:
helm repo add elastic https://helm.elastic.co
然后(假设我没有其他参数。)
helm upgrade kibana elastic/kibana
当前开了一个问题,以帮助跟踪在删除稳定/孵化器仓库后的chart历史记录。
https://github.com/helm/charts/issues/23850
总结
重要的是要在11月13日之前完成迁移,以避免现有集群中的任何潜在问题(特别是镜像仓库错误)。与此同时,社区还在不断增长,我们很高兴在那里见到你!
点击【https://www.cncf.io/blog/2020/10/07/important-reminder-for-all-helm-users-stable-incubator-repos-are-deprecated-and-all-images-are-changing-location/】阅读网站原文。
- HDUOJ---1195Open the Lock
- 停止MySQL服务hang的问题简单分析(一)
- HDUOJ----2952Counting Sheep
- Golang语言社区--【基础知识】函数
- HDUOJ1060Leftmost Digit
- 轻量级交互数据json格式初探
- Golang语言社区--【基础知识】语言数组
- HDUOJ1086You can Solve a Geometry Problem too
- Golang语言社区--【基础知识】常量
- HDUOJ------1058 Humble Numbers
- MySQL偏移量的一点分析
- HDUOJ------------1051Wooden Sticks
- HDUOJ-----2068RPG的错排
- MySQL创建表失败的问题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python json.dumps() json.dump()的区别详解
- Win10下用Anaconda安装TensorFlow(图文教程)
- TP5(thinkPHP框架)实现后台清除缓存功能示例
- PHP递归的三种常用方式
- python实现xlwt xlrd 指定条件给excel行添加颜色
- PHP解析url并得到url参数方法总结
- TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
- PHP实现微信小程序用户授权的工具类示例
- thinkphp5.0整合phpsocketio完整攻略(绕坑)
- Yii2框架自定义类统一处理url操作示例
- tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
- PHP htmlspecialchars_decode()函数用法讲解
- ThinkPHP中获取指定日期后工作日的具体日期方法
- php curl操作API接口类完整示例
- PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例