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 をリリース

推薦する

AWS クラウドへの移行: 考慮すべき事項

ある日、AWS/GCP/Azure/その他のクラウドプロバイダーに移行するように言われたらどうします...

「水は船を運ぶこともできるが、転覆させることもできる。」外部リンクはウェブサイトの存続を左右する

フォーラムやブログの外部リンクを増やすためのチャネルとメソッドは、少なくとも1日の外部リンクがありま...

2020 年の SD-WAN: 注目すべき 6 つのトレンド

[51CTO.com クイック翻訳] 多くのベンダーは、クラウド エントリ チャネル、主要な Saa...

ipage-1.99 USD/月 無制限のスペース/無制限のウェブサイト構築/無料ドメイン名

ipage ではプロモーションを実施しており、月額 1.99 ドルのサブスクリプションを提供していま...

gestiondbi - $18/年/768MB メモリ/30GB ハードドライブ/1TB トラフィック/7 コンピュータ ルーム

gestiondbi.com には、OpenVZ 仮想化に基づく特別価格の VPS が 2 つあり、...

#VPSpanel# 宝塔パネル、グループ購入11.11、現在開催中、最大2700元割引

Baota Panel は、おそらく中国で最も便利で、シンプルで、完全に機能する VPS パネルです...

クラウドネイティブのビッグデータ知識マップを1つの記事で学ぶ

1. 一般的な傾向: クラウドネイティブのビッグデータ業界の急速な発展とビジネスの高速反復により、デ...

ストレージ仮想化ソフトウェアのオプションに関する知識

ストレージ仮想化により、管理者は移行速度を向上させ、複数のアレイ タイプをホストし、コストをより予測...

lisahost: クリスマス 10% オフ、米国 cn2 gia VPS、3 つのネットワーク必須、ネイティブ IP、1 日間の「トライアル」

Lisahostは、クリスマスに向けて、事前に米国cn2 gia vpsの10%割引を用意しました。...

#BlackWeek5#: A2Hosting - ホスティングが 40% オフ、VPS が 50% オフ、ドメイン名無料/シンガポール データ センター付き

A2hosting のブラックフライデーセールが始まりました。11 月 25 日から 11 月 30...

適切なパブリッククラウドプロバイダーを選択する方法

組織がパブリック クラウド プロバイダーを選択するための最善のアプローチは、ケースごとにワークロード...

2020年第4四半期のクラウドインフラ支出は400億ドルに迫る

Canalys の新しいデータによると、クラウド インフラストラクチャへの支出は 2020 年第 4...

Google の新しいアルゴリズム アップデートに対処するための 8 つの原則

検索エンジン業界における Google の地位は明らかです。中国のような特殊な環境でも、ウェブマスタ...

最も基本的な SEO についてどれくらい知っていますか?

最近、多くの人が私に奇妙な質問をします。たとえば、「キーワードは一般的に記事に何回出現できますか、キ...

errantweb-10$ VPS/カリフォルニア州サンディエゴ

errantweb は 1 月に設立された VPS 販売業者です。低価格と豊富なリソースで、低コスト...