-疲倦的赶时髦的人说实话。我们所有人(也就是我)都喜欢将所有新颖而辉煌的东西都投入生产,以便最终将某些问题替换为其他问题。 这个故事是献给我们的(也就是给我的)。
要理解和原谅本文的其余部分,您将需要有关如何在用户级别使用
Kubernetes的肤浅知识,以及有关
Helm的一些传言。
让我们先进行抽象,然后再让别人来处理。 想象一下,在冰沙,电动踏板车和Kubernetes领域,我们是一种哥伦布。 我们的人民挤在欧洲一个人口稠密的小国中,这个人口稠密的老妇人每天都在与kronjob一起部署部署到直升机的紧缩中。 但是天文学家已经找到了对可疑的地平线弯曲的解释。 正确的感觉是,我们是我们这个时代的特选车型。 (但没有人问。)在那儿,在半圆海洋之外的某个地方,这是通往印度的最短途径! 无休止的开放空间,摆脱日常的负担和许多免费的芬芳香料。 您只需要将我们的人员带到那里,最后释放他们! 即使像我们这样的宏伟壮丽,在我们面前传播海洋也是太多了。 因此,您需要建造船只,将我们的部署,kronjob和其他恶魔包裹在其中,而不是扬帆扬起服务,然后转向那里的灯光。 要转向,您需要一个头盔,即头盔。 他是头盔。 如果我们事先知道等待我们前进的事物,那么头盔绝对是有用的。 但是只有掌舵。 建造船只并不容易,因此我们需要帮助,但我们的员工总是忙于一些非常无用的工作。 因此,有必要,并且一如既往。 我们正在缓慢地开始,建造一艘小船,划向印度,用自己的眼睛看到辽阔的广阔地,以一种香料,向后游泳,向人们展示。 人们喜欢它,他们祝福我们的努力。 然后,我们准备了一个不错的结果,订购了配置,已经建造了许多船。 人们很健康,很感兴趣。 我们展示,讲述,启发,承诺,承诺,承诺……越多的船-越有兴趣。 有人加入,提供帮助。 为了使所有这些都不会闲着,我们在附近的
舞台上游泳,那里还没有香料,不可能住在那里,但是游客喜欢。 而现在,经过数周/数月/最好的年纪/长袖之后,他(最重要的一天)到了! 现在是时候释放船队并征服宝贵的兵马俑了。 满怀恐惧的我们的人民正航行到印度,而在美国,我们疯了。 一切似乎都非常相似,但这是预感……我们的人民当然会立即体会到这一点(实际上,哈哈,他们根本不在乎),他们开始开发领土,在那里修建房屋,部署白菜,并部署各种服务。 但是在这里和那里,某些东西会定期消失,就像穿过地球一样。 那块地板会消失,椰子不会生出。 我们喃喃自语:“
等等,等等,我还没准备好,只给我一天 ……” 因此,我们仔细地quin着眼睛,在前面,在每个灌木丛的后面,印第安人突然出现了战斧,看上去像是……不客气或类似的东西。 人们是:-“那里是什么? 我的地板在哪里?” 我们是:-“我的人民! 并不是我误导了你40年,没有人会把你埋葬,但是,现在,紧急,*****,我们需要建立一个频率!!!!” 它们是:-“嗯,当然,还是一如既往。”
这就是我将生产中的一定数量的服务从纯粹的Kubernetes转移到Helm,然后再
运行时的感受。
好吧,最后,承诺的救命稻草。 首先,是轻量版本,但上面有废话的解释。 这是一个演示方案:
- 可以说我正在为项目扩展图表:1.5。 第一次使用Helm,在那之前只是Kubernetes。
- 然后我发现该发行版中存在一个错误,但是在1.4版中则没有。 我们应该退后一步,但是对于她和赫尔姆也没有图表。 因此,我决定采用老式的方法:
kubectl set image deployment/project project=registry.project.com/project:1.4 --record
。 为此,以及捆绑在一起的其他捆绑服务。 - 事实证明,该错误实际上不在此服务中,而是在邻近的服务中,因此一切正常,您需要返回1.5。 现在,如果您调用
helm upgrade --install
,那么将会有一个很大的惊喜( 更多详细信息 ):图像仍然从1.4开始,标签-从1.5开始。 Helm表示一切都很好,实际上在那里部署了1.5,甚至连Pod也重新启动了(CI-build是绿色的)。
如何避免这种情况? 如果使用已部署的Helm图表顶部的纯kubectl命令对由Helm控制的任何K8s资源进行
任何更改,则还必须使用kubectl命令
取消这些更改。 舵可以部署新图表。 但是他将新图表与之前的图表进行了比较,但没有将其与资源的当前状态进行比较。 而且,如果您编辑了图像,则Chart的未来版本可能会包含另一个图像,并且一切都会很好。 但是,如果您编辑了环境变量,启动参数或其他内容,则Chart的新版本很可能与之前的版本没有区别。 更新后,您的手动更改将保留在原位。
对于初学者来说,对于那些无法接受国家如此不可预测性的人来说,这是
沉重的救命稻草 。
新技术是新悲伤的源头。