Kubernetesは問題を解決するため複雑である

Kubernetesは問題を解決するため複雑である

Kubernetes は複雑すぎますか?

Kubernetes は複雑かどうかとよく聞かれます。この記事では、これらの議論を一つずつ説明し、答えていきます。 Kubernetes が必要な場合と不要な場合についても説明します。

仮想マシンよりもコンテナを使用する利点

Kubernetes 自体の複雑さを検討する前に、Docker コンテナについても理解する必要があります。Docker コンテナも複雑さを増すからです。この複雑さは価値があるのでしょうか?

Kubernetes を使用しないことに決めたとしても、Docker は使用すべきであることにほぼ全員が同意するでしょう。 Kubernetes を使用せずに Docker コンテナを AWS やその他のクラウド プロバイダーにデプロイすることも難しくありません。仮想マシン上で実行中の Docker デーモンをセットアップするだけです。

Docker コンテナの主な利点は、自己完結型のパッケージであることです。アプリケーションの環境を、それが実行されるマシンから分離します。 Dockerfile によって依存関係が明示的に示されるため、ホスト上に存在するライブラリや Python のバージョンを気にする必要がなくなりました。自分のマシンで動作する場合は、同じ CPU アーキテクチャを持つどのマシンでも動作します。 Docker は厳密にはコードとしてのインフラストラクチャではありませんが、Dockerfile を使用すると、アプリケーション ランタイムを Git リポジトリ内の単純なファイルとして定義できます。

Docker コンテナのもう 1 つの利点は、不変のインフラストラクチャの世界向けに設計された分散アプリケーション パッケージであることです。言い換えれば、ステートレスになるように設計されています。コンテナは本質的に一時的なものです。死んで再起動しても問題ありません。

Kubernetes を使用しない場合

次の 4 つの条件が満たされる場合、Kubernetes は必要ありません。

  • 非常に少数のコンテナを非常に少数のマシン (ホスト) にデプロイします。つまり、ユーザー数が限られているということです。
  • コンテナとマシンの数は固定されており、頻繁に増減されることはありません。
  • コンテナやマシンの故障がそれほど頻繁に発生しなくなります。
  • 永続ストレージ、負荷分散、構成管理、サービス検出、自動修復、自動スケーリングなどの機能は必要ありません。あるいは、機能は必要だが、要件が非常に限られており、ベンダー ロックインを気にしないという場合もあります。

つまり、要件が単純な場合は、より単純な Kubernetes の代替手段があります。複数の仮想マシン上で実行されている Docker デーモンにコンテナを直接デプロイできます。

複雑なニーズには複雑なソリューションが必要

ビジネスが急速に成長し、ユーザー数が急増している場合は、Kubernetes が本当に必要になる可能性があります。

  • アプリケーションは変化するユーザー負荷を処理する必要がある
  • コンピューティング以外にも、永続ストレージ、ロードバランサー、構成管理などの追加のクラウド サービスを使用する必要があります。
  • ノードが多すぎるとエラーが頻繁に発生し、アプリケーションに自動回復機能が必要になる
  • 複数のアプリケーションとシステムを一貫した方法で管理したい
  • 何百ものチームが同じ環境で作業したり、お互いのマイクロサービスを使用したりしている
  • その他の複雑なシナリオ

上記の要件を満たすには、Docker コンテナの大規模かつ動的な展開と、それらを相互に接続したり、ストレージなどの他のクラウド サービスに接続したりするために最適化されたインフラストラクチャであるコンテナ インフラストラクチャを導入する必要があります。

このインフラストラクチャの最も一般的な形式は Kubernetes です。これらが要件である場合、Kubernetes を実行してみませんか?確かに複雑ですが、これらの要件を満たすすべてのソリューションは同様の複雑さを伴います。

少なくとも Kubernetes の場合、複雑さはオープンソースであり、宣言型 Kubernetes API の形式で標準化されています。これは、他のパブリック クラウドやオンプレミス ソリューションよりも優れています。

Kubernetes と Docker を使用しないエンタープライズ インフラストラクチャ

これはヘイターたちの典型的な主張です:

Kubernetes と Docker は不要です。自動スケーリングが簡単、systemd は自己修復機能、クラウド プロバイダーには永続ボリューム用の API があり、バックアップはホスト上の cronjobs で実行され、シークレットは MyFavoriteSecretVault で実行され、Consul は構成管理を行い、サービス検出は DNS で実行され、ヘルス チェックは不要、Reddit のユーザーが前職でローリング アップデート用に 3000 行の Perl スクリプトを作成したため、明らかに Kubernetes は不要です。

これらの人々に対して私が言えることは、幸運を祈るということだけです。さらに、Kubernetes を再発明しました。

Kubernetesを初心者にとって使いやすくする

Kubernetes の最大の欠点は、非常に複雑な機能があらかじめ組み込まれていることですが、その複雑さは妥当なものであり、事前に学ぶべきことがたくさんあることを意味します。

<<:  サーバーレスが本当にわかりません!

>>:  Kubernetes がネットワーク セキュリティと管理機能を強化する新しいバージョン 1.26 をリリース

推薦する

クラウド コンピューティング コンサルタント: 企業戦略について尋ねるべき 4 つの質問

アメリカの風刺コメディ『ザ・オフィス』では、架空のソフトウェア会社 Initech に雇われた 2 ...

自社開発とセキュリティ:Alibaba Cloud の理念

[51CTO.com からのオリジナル記事] クラウド コンピューティングをどのように分類しますか?...

gcorelabs: 月額 4.99 ユーロの韓国 VPS の簡単なレビュー。China Unicom に適していますが、China Telecom は OK ですが、China Mobile はダメです。

韓国は私たちにとって近すぎます。外国の VPS を選択する場合、韓国の VPS を優先する場合があり...

SEO の回答: URL のランキングが常に間違っているのはなぜですか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますSEO 作...

クラウドネイティブアプリケーション開発を始める方法

翻訳者 |陸新王校正 |孫淑娟、梁策1200億ドル。 Forrester のレポートによると、これが...

ウェブサイトKは成功への道であり、ウェブサイトを磨くのに最適な時期です

ウェブサイトが K-ed されると行き止まりになるのでしょうか? ウェブサイトが K-ed されると...

ロシアの商人: Nic.ru、ドメイン名ビジネス + 仮想ホスティング + VPS など。

ロシアの企業 Nic.ru をご紹介します。正式に事業を開始した年はわかりませんが、ドメイン名は 1...

HTML5 は WAP ウェブページに破壊的な変化をもたらす: NetEase Weibo の実用的開発

HTML5 は、国内外のインターネット開発チームからますます支持されています。海外では、Google...

未知のクラウド内の未知の資産を発見

クラウド資産の検出は、ほとんどの組織のクラウド戦略の中で最も見落とされ、最も理解されていないコンポー...

ウェブサイトの外部リンク構築プロセスの詳細の概要

いつであっても、外部リンクはウェブサイトの最適化に常に必要な部分であるため、SEO をうまく学びたい...

TDesign は、Tencent Design Cloud の機能の重要な部分であるオープンソースとして正式にリリースされました。

インターネットの急速な発展に伴い、製品の規模と機能は増大し、開発シナリオはより複雑になり、従来の設計...

ウェブサイトをインデックスに登録して SEO を改善する方法

SEO がどれだけ優れていても、すべての前提は、Web サイトが Baidu に含まれる必要があると...

ユーザー、トラフィック、詳細が合わさってフォーラムの人気が高まります

フォーラムの運営についてはウェブマスターによって理解が異なる場合がありますが、まとめると、現在フォー...

Smarthost: 米国専用サーバーが 30% オフ、月額 48 ドルから、複数のモデル、10 のデータセンターから選択可能

Smarthost は現在、バレンタインデーに向けて米国サーバーのプロモーションを実施しています。す...