Kubernetes盐腌菜就像穿着振袖游泳一样

首先

近年,Kubernetes已成为容器部署的标准平台,但在部署前或部署后,人们经常会听到”Kubernetes的生命周期很短,很辛苦。希望能提供更长时间的支持”的声音。我理解升级Kubernetes版本确实是件麻烦事,但将”提供长期支持”或”彻底放弃”作为解决方案并不适用于Kubernetes。
然而,由于在传统的系统基础设施中,经常使用”彻底放弃”的运维方式,因此不可避免地会产生希望Kubernetes环境能够保证数年稳定运行的心情。然而,这种想法已经不再是当然之事,如果要继续使用Kubernetes,每隔短时间就需要进行版本升级的认识,所有高层管理人员、利益相关者、经理、从业人员和合作伙伴都必须明确。

…而对于像我这样的 Kubernetes 运维人员来说,即使是我们认为理所当然的事情,当被问到类似于“我想要长期使用 Kubernetes 运维,请问应该怎么做?”这样的问题时,该如何回答却意外地很困惑。
(实际问题可能是“我想尽量减少版本升级的次数”或者“有没有提供长期支持(数年级别)的 KaaS 服务?”之类的内容,但传达的意思是一样的。)

我想让你们明白在这里我们如何认识到需要对Kubernetes进行版本升级的重要性。

请理解,因为这是在传单背面写的内容,所以可能会杂乱无章且存在逻辑上的矛盾。

试图用一个类比来解释把Kubernetes“腌制”的危险性

一般来说,升级Kubernetes的原因如下所示。

    • ネガティブ要素からくる理由

Kubernetesのサポート期間が最大1年間であり、それに追従するため
機能バグのFIX、セキュリティ脆弱性対応などマイナス要素を払拭するため

ポジティブ要素からくる理由

新機能をいち早く検証・実装し、より開発・運用を効率化するため

ただしここら辺を伝えて「なるほど、じゃあバージョンアップしなきゃね」って理解してもらえたら苦労はしないわけで、「インフラは塩漬けできるものである」という考えが定着している人にはあまり響かなかったりします。そんな人にKuberentesのバージョンアップをしないヤバさをどう伝えればいいんだろう??と考えていた時にTwitterで以下のようなツイートを見つけました。

 

おそらくこのツイートはKubernetesに載せるアプリの特性に関することかと思いますが、Kubernetes自体にも適用されます。このツイートを見た時に 「それな」 となったので、少しここから掘り下げてKubernetes塩漬けのヤバさを例えてみようと思います。
ここでは、 「Kubernetesを導入する際、長期間塩漬けで運用したいんだけどどうすればいい?」 という発言を 「水に入って泳ぐ際、振袖を着て泳ぎたいんだけどどうすればいい?」 と同等のレベルで考えてみようと思います。
要は振袖で泳ごうとしている人を説得できれば、そのプロセスをKubernetes塩漬け提唱者の説得に応用できるのでは?という理論です。自分で書いてて良くわからなくなってきましたが続けます。

振袖で泳ぐ人を説得するには?

まず大前提として、泳ぐ時は水着を着ましょう。 至極当たり前ですが、これを懇切丁寧に説得することがKubernetesのバージョンアップの必要性につながると信じて考えていきます。

そもそもなぜ泳ぎたいのか?

まずそもそも泳ぐ必要があるのか?というのは説いてもいいかと思います。例えば「暑いから涼しくなりたくて」だったらエアコンつけるとかの選択肢があります。そうすれば振袖着たままでも目的は達成できます。「泳ぐ練習がしたい」とか「泳がざるを得ない状況にある」といった理由でない限りはそのような検討をするべきなので、まずは泳ぐ目的を明確化することは大事です。

为什么游泳时想穿振袖?

如果假设有游泳的理由,那么为什么要穿和服游泳呢?我们会确认一下。以下是可能的理由吗?

    • すでに振袖を着ていて、水着に着替えるのが面倒(コストを懸念)

 

    • 新たに水着を買う必要がある(コストを懸念)

 

    一度脱ぐと、また着るのが大変 or もう着られないから(リスクを懸念)

为什么游泳时应该穿泳衣?

我认为有几个原因应该穿泳衣。

    • 水着の方が泳ぎやすいから(機能性・メリットの享受)

 

    • 振袖は繊細でそのまま泳ぐと破れてしまうから(着替えないリスクを回避)

 

    世の中のルールで、全裸で泳ぐことはNGだから(外部要因からなる必要性)

试着说一下

根据以上考虑,对于想要穿着振袖游泳的人的说服可能如下所示。

    • 泳ぎたい理由はわかりました。あなたは泳げるようになりたいのですね。

 

    • 振袖で泳ぎたいと考える理由もわかりました。たしかに着替える手間や、着替えることによるリスクがあることは事実です。

 

    • しかし、それでも振袖のまま泳ぐのではなく水着を着ましょう。

 

    • 水着を着ることでより効率的に泳ぐことができます。また振袖は水に浸かると破れたり汚れたりして、復旧できなくなります。その結果、本来着るべきタイミングで着用できなくなります。

 

    • 水着に着替える行為を無視することで得られるメリットと比べて、上記のデメリットが致命的と考えます。

 

    • 反面、水着を着ることのメリットは大きいです。なにより、当初の「泳げるようになる」という目的を達成するためには水着が最適な選択です。

 

    なお一番手間がないのは何も着ないことですが、それは法律上禁止されています。

在这里重要的是,如何在不表现出“这明显不合常识吧”这种立场的情况下进行说服。就像我们成功地仔细地说服了穿着振袖游泳这种本应被普遍视为不合理的事情一样。这让我们有了说服Kubernetes盲目采用的可能性,不是吗?

那在Kubernetes中呢?

ここまで一気に書いてきてまじで何書いてるの状態でしたが、走り切ります。

为什么要使用Kubernetes?

振袖着て泳ぐ人に「そもそもなんで泳ぐの?」って聞いたのと同様に、Kubernetesを塩漬けしたい人がいたら「そもそもなんでKubernetes?」と聞いてみてください。意外とここに目的がない、もしくはKubernetesを導入しなくても別の方法で満たせる目的である可能性があります。ここでコンテナ化の本来のメリットである「開発スピードの向上」や「自律化機能による運用コスト削減」などの回答が得られるのであれば、もう少し踏み込んでいきます。

为什么想要容器编排系统Kubernetes进行腌制?

让我们考虑为什么想要腌制食品。如果我们深入挖掘原因,可以大致分为”避免风险”和”避免成本增加”两类。

    • リスク

バージョンアップ後の仕様変更によるサービス影響
バージョンアップ失敗によるクラスター故障
新しいソフトウェアバグの混入による動作不良

コスト

リスク排除のための検証コスト
バージョンアップ作業のためのメンテナンスウィンドウ確保の調整コスト
バージョンアップの作業コスト

为什么应该升级Kubernetes版本。

我们之前已经简单提到过开头,但为了说服这一点,我们需要详细列出依据。

增加新功能

Kubernetes每天都在进行开发,并不断添加新的功能以提高开发和运维的效率。为了持续实现引入Kubernetes的目标,需要善用这些新功能。

安全措施

Kubernetes经常会提供安全补丁。用户可以通过定期应用安全补丁来防御利用漏洞的攻击。

解决bug

Kuberntesはソフトウェアのため、バグが混入している可能性があります。バグの対応は基本的にパッチリリースを適用(アップグレード)する形になります。なお性能向上や安定化もパッチリリースに含まれます。

支持或帮助

在Kubernetes中,上述操作将在发布后的一年内进行。然而,一旦超过一年,即使发现了安全漏洞或错误,也不会进行回溯端口。

根据以上内容,为了最大化容器的效益,需要对Kubernetes进行持续升级。

试着说一下

既然有这个机会,就借用振袖时的表达来创建吧。

    • Kubernetesを使う理由はわかりました。あなたは開発スピードを向上させたいのですね。

 

    • Kubernetesを塩漬けしたい理由もわかりました。たしかにバージョンアップという変更リスクがあることは事実です。すなわち、あなたは開発スピードだけでなく、システムの信頼性も担保したいのですね。

 

    • しかし、それでもKubernetesは継続的にバージョンアップしましょう。

 

    • Kubernetesをバージョンアップすることでより開発の効率化が図れます。またバージョン固定するとサポート切れでセキュリティ対策やバグFIXが行われなくなります。その結果、システム障害やセキュリティ事故につながります。

 

    • Kubernetesを塩漬けすることで得られるメリットと比べて、上記のデメリットが致命的と考えます。

 

    • 反面、Kubernteseを継続的にバージョンアップするメリットは大きいです。なにより、当初の「開発スピードの向上」と「信頼性の担保」という目的を達成するためには継続的なバージョンアップが最適な選択です。

 

    なお理想はバージョンアップしなくても信頼性が担保されることですが、Kubernetesのサポートライフサイクルの関係上、それは実現されません。

嗯,感觉整体上勉强成了一样。

消除悬念的因素

在Kubernetes的情况下,与振袖的情况不同,有一些方法可以消除对方的担忧,并且在网络上或书籍中有整理的知识。我认为将这些要素与上述的说服一起提供给对方,会很有帮助。

リスク

    • バーションアップの仕様変更によるサービス影響→開発環境や検証環境で事前に確認する

 

    • バージョンアップ失敗によるクラスター故障→B/Gデプロイメントで故障時の切り戻しを実現する

 

    新しいソフトウェアバグの混入による動作不良→塩漬けでも多少なりのリスクはある。そもそもそういったものに対応できるためにバージョンアップの手法を確立しておくことが重要

成本

    • リスク排除のための検証コスト→テストの自動化やチェックポイントの明確化で検証を効率化する

 

    • バージョンアップ作業のためのメンテナンスウィンドウ確保の調整コスト→B/Gデプロイメントでアプリ無停止を実現する

 

    バージョンアップの作業コスト→作業の自動化

最后

我总算是跑完了。虽然刚开始的振袖部分好像不太需要吧?但我相信它一定是有意义的。
我觉得刚才的推文是想表达”从常识角度来看是不行的”。我2000%同意,但是提倡Kubernetes精神的人,他们是按照”穿振袖游泳即可”这一被认为是好的文化生活的人,所以我们需要按照正确的顺序来说服他们。也就是说,理解对方的想法是说服的第一步。
让我们一起坚持不懈地提出Kubernetes版本升级的必要性吧。

广告
将在 10 秒后关闭
bannerAds