「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > CKA フルコースデー Kubernetes は使用されますか?

CKA フルコースデー Kubernetes は使用されますか?

2024 年 11 月 8 日に公開
ブラウズ:476

CKA Full Course Day hy Kubernetes Is Used?

ということは、おそらくしばらく Docker コンテナを使って作業しているのではないでしょうか?最初のコンテナを回転させるときの興奮は魔法のように感じられますが、その後現実が襲ってきます。大規模なコンテナの管理が、すぐに物流上の悪夢になる可能性があることに気づき始めます。そのとき、Kubernetes (K8s) が熟練のプロジェクト マネージャーのように部屋に入り、すべてを引き継いで合理化する準備ができています。

この投稿では、スタンドアロン コンテナの課題、Kubernetes がそれらの悩みの解決にどのように役立つか、そして Kubernetes を使用する場合 (および 使用しない 場合) について説明します。さあ、始めましょう!


スタンドアロンコンテナの課題

スタンドアロン コンテナを使用したことがある場合は、次の問題に見覚えがあるかもしれません:

1. 手動スケーリング

スタンドアロン コンテナーのスケーリングは、もぐらたたきのゲームをするようなものです。もっと容量が必要ですか?別のコンテナを手動で起動します。ああ、今すぐリソースを削減する必要がありますか?一部のコンテナを手動でシャットダウンします。特に予測できないトラフィックの急増がある場合、これはすぐに管理できなくなります。

2. サービスディスカバリ

コンテナはどのように相互に通信しますか? Docker を使用すると、IP アドレスをハードコーディングしたり、不自然なカスタム ネットワークを設定したりする必要があります。かさばるし、維持するのも大変です。

3. ヘルスチェックと回復

コンテナの 1 つがダウンするとどうなりますか?スタンドアロンの Docker は、それ自体ではうまく処理できません。すべてを監視し、停止したコンテナを手動で再起動する必要があります。土曜日の午前 3 時にそれがどれほど楽しいことか、私たちは皆知っています。

4. 複雑な展開

マルチコンテナアプリの管理は難しくなります。相互作用の方法を調整し、依存関係を処理し、適切なタイミングですべてが起動していることを確認する必要があります。突然、シンプルなアプリが砂上の楼閣のように感じられます。


誰もが話題にしているコンテナ オーケストレーターである Kubernetes は、これらの問題点の多くを自動化します。これがどのように介入して窮地を救うかです:

1. 自動スケーリング

K8s を使用すると、CPU またはメモリの使用量に基づいてスケーリング ルールを定義できます。トラフィックが増加したときにより多くのコンテナを自動的に起動し、状況が落ち着いたらシャットダウンするように設定できます。もうベビーシッターは必要ありません。

2. サービス発見が簡単に

Kubernetes を使用すると、コンテナはすべてがどこにあるかを心配する必要がなくなります。 K8s はサービスに DNS 名を自動的に割り当てるため、コンテナーはスムーズに通信できます。

3. 自己修復

コンテナが停止した場合、Kubernetes はコンテナを自動的に再起動します。夜明けにコンテナを再起動するためにベッドから慌てて起き上がる必要はもうありません。 K8s は、自己修復能力によりアプリをスムーズに実行し続けます。

4. 簡素化された展開

K8s は、複雑なマルチコンテナ アプリを簡単に処理します。それらをポッドとサービスに整理することで、新しいバージョンのロールアウト、依存関係の処理、すべてが調和して動作していることの確認が容易になります。


Kubernetes を使用する必要があるのはどのような場合ですか?

Kubernetes は素晴らしく聞こえますが、あらゆる問題に対する特効薬ではありません。 Kubernetes が正しい選択となる 5 つのケースを次に示します:

1. 自動的にスケーリングする必要がある場合

アプリでトラフィックの変動が発生した場合、またはその場でリソースを自動的に調整する必要がある場合、Kubernetes の自動スケーリングは状況を一変させます。

2. マイクロサービス アーキテクチャ

アプリがマイクロサービスで構成されている場合、K8s を使用すると、複数のサービスの管理が容易になり、すべてのサービスがスムーズに通信できるようになります。

3. 自己修復要件

アプリの一部に障害が発生しても回復力を維持できるアプリが必要ですか? Kubernetes の自己修復機能により、ダウンタイムは最小限に抑えられます。

4. CI/CD パイプライン

継続的インテグレーション/継続的デプロイメント パイプラインを構築している場合、Kubernetes のローリング アップデートと簡単なロールバック機能が優れた選択肢となります。

5. ハイブリッドおよびマルチクラウド展開

K8s は、複数のクラウド プロバイダーまたは独自のデータ センターにわたるワークロードを管理する必要がある場合に最適です。インフラストラクチャを抽象化するので、アプリに集中できるようになります。


Kubernetes を使用すべきでない場合?

しかし、Kubernetes は必ずしも必要というわけではありません。複雑さを避けたい場合は次のとおりです:

1. 小規模でシンプルなアプリ

アプリが小規模な 1 コンテナーのサービスの場合、Kubernetes は過剰です。シンプルにするために Docker を使用してください。

2. 学習曲線

チームがコンテナーを初めて使用する場合、Kubernetes に直接取り組むのは難しいかもしれません。 K8 に飛び込む前に、まず Docker をマスターしてください。

3. 低トラフィック、シンプルな導入

継続的なスケーリングやフェイルオーバーを必要とせず、予測可能でトラフィックが少ないアプリの場合、Kubernetes のオーバーヘッドは価値がありません。

4. 短命なプロジェクト

ハッカソン プロジェクトや簡単な実証実験など、一時的なものを立ち上げている場合、Kubernetes は価値がある以上に問題になる可能性があります。

5. リソースに制約のある環境

K8 はリソースを大量に消費する可能性があります。 CPU、メモリ、ストレージが限られた環境で作業している場合、効果があるどころか速度が低下する可能性があります。


重要なポイント

Kubernetes は、スケーラビリティ、復元力、スムーズなコンテナ オーケストレーションが必要な場合に最適なツールです。スタンドアロン コンテナーでは手動で管理するのが難しい多くの複雑なタスクを自動化することで、肩の負担を軽減します。ただし、流行っているからといって飛びつかないでください。まずアプリのニーズを評価してください。

小規模で予測可能なアプリを実行している場合は、Docker だけで十分かもしれません。しかし、成長し規模を拡大するにつれて、Kubernetes はあなたの親友になります。


直面した課題と学び

ジュニア開発者として、Kubernetes とそのすべての可動部分 (Pod、Services、Ingress、自動スケーリング) の広範な範囲には圧倒される可能性があることを認めます。その機能を忘れてしまいがちです。しかし、重要な教訓は、いつ物事をシンプルにしておくべきなのか、また複雑にする価値があるのはいつかを知ることです。スタンドアロンのコンテナを使用することで、多くの時間と頭痛の種を節約できる場合があるため、常にメリットとデメリットを慎重に比較検討してください。


タグとメンション

@piyushsachdeva
4 日目のビデオ

リリースステートメント この記事は次の場所に転載されています: https://dev.to/lloydrivers/cka-full-course-2024-day-440-why-kubernetes-is-used-eko?1 侵害がある場合は、study_golang@163 までご連絡ください。 .comを削除してください
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3