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

推薦する

最近、Baidu スナップショットが理由もなく消えたのはなぜですか。この問題をどのように解決すればよいですか。

最近、主要なフォーラムで、理由もなくウェブサイトのスナップショットが消えてしまうというウェブマスター...

JD.comの最終商品ページのSEOとキーワード密度の合理的な分布の簡単な分析

今日は、JD.com の製品ページを見てみましょう。まずタイトルを見てみましょう。http://ww...

なぜ Baidu は 20 日以上経ってもウェブサイトの 3 ページしかインデックスしなかったのでしょうか?

多くの初心者は、検索エンジンに含まれない問題に悩まされています。誰もが初心者の頃にこの状況を経験した...

サイトのタイトルタグを最適化して検索エンジンに好まれるようにしましょう

1. タイトルの文字数ウェブサイトタイトルの文字数は、一般的に25文字以内、50バイト以内です。25...

商品のネットワーク影響力を素早く向上させる方法(セルフメディア)

今は、商品を作ったり、セルフメディアをやっている人がたくさんいます。どんな新しいものが出てきても、す...

検索エンジンスパイダーのクローリングについて

SEOを理解している人は多いですが、戸惑っている人も多いと思います。 SEO の知識は、太極拳のよう...

Google サイトマップに関する知識

多くの友人は SEO 業界に参入したばかりで、「なぜ私のサイトのランキングはそれほど良くないのか」「...

ウェブマスターネットワークからの毎日のレポート:百度ニュース検索は異常であり、ビデオ業界は再び同盟を結成しました

1. 百度、ニュース検索の失敗に対応:アルゴリズムのアップグレードと修正によるネットユーザーは長年に...

ハイブリッドクラウドに注目すべき理由

[51CTO.com クイック翻訳] 人々は仕事や生活の中でいくつかのことの意味を要約し、目標を明確...

初心者は新しいサイトが検索エンジンに含まれない理由を知っておくべき

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

A5 WeChat公式アカウントをフォローして、ウェブマスターの役立つ情報をタイムリーに入手してください

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

エッジ アプリケーションの設計に関する 6 つの考慮事項

あなたのビジネスはこの新しいデータ環境に対応できる準備ができていますか? エッジ コンピューティング...

Dell Technologies Cloud Platform: 「新インフラ」時代のクラウドネイティブ変革の「エスコート」

今年の疫病の突発的発生は、間違いなく現在の経済運営システムの能力に対する「大きな試金石」であり、企業...

クラウドネイティブ | K8s での VolumeMounts.subPath の賢い使い方

1. 概要場合によっては、単一の Pod 内で複数のパーティがボリュームを共有して使用すると便利なこ...

Vultr クラウド サーバーはどうですか?メキシコデータセンターのクラウドサーバーの簡単なレビュー

Vultr は米国内に多数のデータセンターを持ち、その拠点であるメキシコにも 1 つのデータセンター...