学習を容易にする Kubernetes の 5 つの重要な概念

学習を容易にする Kubernetes の 5 つの重要な概念

Kubernetes は、最も人気のあるオープンソースのコンテナ オーケストレーション ソリューションです。

Kubernetes を使い始めるのは簡単ではありません。

この記事は、Kubernetes の最も重要な概念のいくつかを理解するのに役立ちます。

1. コンテナ オーケストレーションが必要な理由は何ですか?

ほとんどの企業はマイクロサービス アーキテクチャを採用しています。

マイクロサービスは革新のための柔軟性を提供します。

ただし、マイクロサービスは無料ではありません。いくつかのアプリケーションをデプロイする代わりに、数百のマイクロサービスをデプロイします。これにより複雑さが増します。

コンテナは、デプロイメントと監視の課題を簡素化するのに役立ちます。ただし、インフラストラクチャと展開の管理には課題が残っています。例: マイクロサービス A のコンテナ インスタンスが 10 個、マイクロサービス B のコンテナ インスタンスが 15 個、... などが必要です。また、マイクロサービスには他の機能も必要です。代表的な機能は次のとおりです。

  • 自動スケーリング- 需要に応じてコンテナをスケーリング
  • サービスディスカバリー- マイクロサービスがお互いを見つけるのを助ける
  • ロードバランサ- マイクロサービスの複数のインスタンス間で負荷を分散します
  • 自己修復- ヘルスチェックを実行し、障害が発生したインスタンスを置き換えます
  • ダウンタイムなしの展開- ダウンタイムなしで新しいバージョンをリリース

2. コンテナ オーケストレーションとは何ですか?

コンテナ オーケストレーション ソリューションは、マイクロサービス アーキテクチャに必要なほとんどの技術的機能を提供します。複数の VM インスタンスのクラスターを作成し、そのクラスターにマイクロサービスをデプロイできるようになります。コンテナ オーケストレーション ソリューションは、クラスターとデプロイメントを管理します。

3. Kubernetes とは何ですか?

コンテナ オーケストレーション プラットフォームは数多くあります。たとえば、Docker Swarm、Mesosphere、Kubernetes などがあります。過去数年間、Kubernetes はコンテナ オーケストレーション分野の勝者として浮上してきました。

4. Kubernetes の最も重要な概念は何ですか?

Kubernetes を使用してマイクロサービス アーキテクチャを構築したいとします。ワークフローは次のようになります。

  • ステップ 1: 複数のノード (または VM) を持つコンテナ オーケストレーション Kubernetes クラスターを作成する
  • ステップ2: 最初のマイクロサービスをデプロイして構成する
  • ステップ3: 2番目のマイクロサービスをデプロイして構成する

それでは、それぞれについて詳しく見ていきましょう。

4.1 クラスターとは何ですか?

クラスターは仮想マシンのグループです。クラスターには 2 種類のノードがあります。

  • マスターノード- クラスターを管理します。すべてのデプロイメント指示をマスターノードに送信します。
  • ワーカー ノード- すべてのマイクロサービスはワーカー ノード上で実行されます。

以下に、マスターノード(コントロール プレーン) の重要なコンポーネントをいくつか示します。

  • API サーバー- K8S クラスターとのすべての通信 (ノードからおよび外部から) を処理します。
  • スケジューラ- ポッドの配置を決定する
  • コントロール マネージャー- デプロイメントとレプリカ セットの管理
  • etcd - クラスターの状態を保存する分散データベース

ワーカーノードの役割は、マイクロサービスを実行することです。さらに、各ポッドでは Kubelet と呼ばれる Kubernetes コンポーネントが実行されます。 Kubelet により、ワーカー ノードはマスター ノードと通信できるようになります。

4.2 マイクロサービスをデプロイしよう

マイクロサービス A の V1 のインスタンスを 5 つデプロイするとします。デプロイメントを作成し、複数のインスタンスを設定するために発行されるコマンドは、以下のようになります。

 ** デプロイメント作成します** hello - world - rest - api --image = in28min / hello - world - rest - api : 0.0 .1リリース
スケールデプロイメントhello - world - rest - api -- replicas = 5

これにより、5 つのインスタンスを持つ Microservice A の v1 が Kubernetes クラスターにデプロイされます。

Kubernetesは内部的に

  • 展開する
  • レプリカセットと
  • 5ポッド

Kubernetes はなぜこれを実行するのでしょうか?

もっと深く掘り下げてみましょう。

4.3 ポッドとは何ですか?

Pod は Kubernetes でデプロイ可能な最小単位です。ポッドはマイクロサービスのインスタンスを表します。各ポッドには一時的な IP アドレスが割り当てられます。

Kubernetes クラスターでマイクロサービス A のインスタンスを 10 個、マイクロサービス B のインスタンスを 12 個実行すると、合計 10 + 12 = 22 個のポッドが実行されることになります。

4.4 レプリカセットとは何ですか?

5 つのインスタンスを持つマイクロサービス A を Kubernetes クラスターにデプロイします。つまり、5 つのポッドが実行されていることになります。ポッドを殺したとします。 Kubernetes はこれを自動的に認識し、代替ポッドを作成します。 Kubernetes はポッドの状態を監視し、異常なポッドを置き換えます。 Kubernetes はこれをどのように実現するのでしょうか?

これは ReplicaSet の仕事です。

ReplicaSet は、指定された数のポッドが常に実行されることを保証します。上記の例では、ReplicaSet により、マイクロサービス A の 5 つのインスタンスが常に実行されるようになります。

4.5 デプロイメントとは何ですか?

ReplicaSet が特定の数のポッドを保証する場合、Deployment の役割は何ですか?

デプロイメントにより、マイクロサービスの新しいバージョンをリリースする際の柔軟性が確保されます。

デプロイメントはマイクロサービスのすべてのバージョンを表します。

現在、マイクロサービスのバージョンは 1 つだけです。ただし、新しいバージョンを展開することは可能です。ダウンタイムなしでマイクロサービス V2 をデプロイしたいとします。

それがデプロイメントの機能です。

既存のマイクロサービスの新しいバージョンをデプロイすると、そのデプロイによってマイクロサービス A の V2 用の新しい ReplicaSet が作成されます。

以下のものが含まれます:

  • デプロイメントはマイクロサービスAを表す
  • マイクロサービス A V1 のレプリカセット
  • マイクロサービス A V2 のレプリカセット

英国への派遣

4.6 クイックレビュー - デプロイメントとレプリカ セット

 kubectl デプロイメントmicroservice1 を作成します-- イメージ= microservice1 : v1 

各マイクロサービスのデプロイメントを作成します。デプロイメントはマイクロサービス (およびそのすべてのバージョン) を表します。ダウンタイムなしで新しいバージョンを展開します。

レプリカ セットは、特定のマイクロサービス バージョンに対して特定の数のポッドが実行されていることを確認します。ポッドの 1 つが強制終了された場合でも、レプリカ セットは新しいポッドを開始します。

 kubectl イメージデプロイメントmicroservice1 を設定しますmicroservice1 = microservice1 : v2 

V2 マイクロサービスをデプロイすると、新しい ReplicaSet (V2 ReplicaSet) が作成されます。

デプロイメントでは、構成されたリリース戦略に従って、V1 レプリ​​カ セットと V2 レプリカ セットが更新されます。

4.7 サービスとは何ですか?

Kubernetes では、各 Pod に独自の IP アドレスがあります。次のような状況で外部ユーザーに影響が及ばないようにするにはどうすればよいでしょうか。

  • ポッドが故障して交換されるか
  • マイクロサービスの新しいバージョンがデプロイされ、古いバージョンの既存のポッドがすべて新しいバージョンのポッドに置き換えられます。

解決策: サービスを作成します。

 デプロイメントを公開-- タイプ= LoadBalancer -- ポート= 80 

サービスは、安定した IP アドレスを使用してデプロイメントを外部に公開します。これにより、ポッドが上下に移動されてもユーザーに影響が及ばなくなります。

サービスは次の 3 つのカテゴリに分かれています。

  • ClusterIP : クラスター内部 IP でサービスを公開します。ユースケース: マイクロサービスをクラスター内でのみ利用できるようにします (クラスター内通信)。
  • LoadBalancer : クラウド プロバイダーのロード バランサーを使用してサービスを外部に公開します。使用例: マイクロサービスごとに個別のロードバランサーを作成します。
  • NodePort : 各ノードの IP 上の静的ポート (NodePort) でサービスを公開します。使用例: マイクロサービスごとに外部ロード バランサーを作成したくない場合 (複数のマイクロサービスの負荷を分散する Ingress コンポーネントを作成できます)。

5. 次のステップ

  • Kubernetes Playground を試す
  • いずれかのクラウド プラットフォームで Kubernetes クラスターを作成し、それを使用します (GKE には無料利用枠があります。AKS と EKS を試すことはできますが、まだ無料利用枠には含まれていません)。

<<:  Dockerの4つのネットワークモードを解説した記事

>>:  モノのインターネットはエッジコンピューティングの最も強力なアプリケーションです

推薦する

ユーザーエクスペリエンスに影響を与える要因は何ですか?

検索エンジンの継続的な調整により、ユーザーエクスペリエンスは徐々にウェブサイト最適化の第一目標になっ...

SEOを成功させるには個人の英雄的行為ではなくチームワークが必要

ウェブサイトの最初から、開発プロセスと参加プロセス全体を決定する必要があります。 SEO プロジェク...

インターネットの女王:BATとSohuが世界のトップ10ウェブサイトにランクイン

インターネットの女王:BATとSohuが世界のトップ10ウェブサイトにランクイン中国新聞社、5月30...

頼林鋒:115クラウドディスクは閉鎖されず、関連するソーシャルプラットフォームが立ち上げられる

南都ニュース記者李星星:東莞のインターネットの「兄貴分」115クラウドディスクが最近、最前線に躍り出...

ウェブマスターの経験の共有:知っていることはできることを意味するわけではない

多くの人が私と同じだと思います。彼らは、金持ちになるための成功の秘訣、トラフィックの多くの方法、マス...

中央銀行がビットコインを冷やす:サードパーティアプリケーションのプロモーションが停滞する可能性

王 麗寧中国が「全国的な暗号通貨投機」を歓迎する中、「ビットコインリスク防止に関する通知」(以下、「...

Baidu は新サイトの詳細な最適化手順を、公開後 5 分以内に公開する予定です。

当社は広告ギフトのカスタマイズなどを手掛けています。夏が近づいてきたので、広告ファン向けの新しいコー...

Pinduoduoは崩壊するのか?

第2四半期の財務報告が発表された日、ピンドゥオドゥオの株価は13%以上下落し、疑念やパニックさえも高...

ジャック・マーが約束を破る:タオバオのトラフィック収益化を加速するためにウェブゲームに注力

資金ギャップを維持し、複数の事業を運営するために、タオバオはトラフィックと仮想取引の支払い条件を活用...

Amazon Web Services は Microsoft のクラウド ソフトウェアの優位性に挑戦するか?お金では問題は解決できません!

Amazon Web Services (AWS) は、クラウド コンピューティング インフラストラ...

Google、3月1日からプライバシーポリシーと利用規約を統合する新ポリシーを発表

2012 年 1 月 25 日、Google はホームページで新しいポリシーを発表しました。 Goo...

ヒープ メモリ: Java プログラムの「宝物」、そこに何が隠されているかご存知ですか?

みなさんこんにちは。私はテクノロジーの共有が大好きなプログラマーの Xiaomi です。今日は、Ja...

SEO最適化キーワードに関する議論

SEO 最適化に関して言及しなければならないことの 1 つは、キーワードの最適化です。SEO 最適化...

無人小売業をめぐる戦い:サプライチェーン、管理、店舗レイアウトが成功と失敗の鍵

最近、RT-MartとFeiniu.comが戦略的に投資した新しい小売プロジェクトFaDaoJiaス...

Tencent Cloud: クラウド開発の呼び出し回数が 1 日あたり 7 億回を超え、中国最大のサーバーレス開発プラットフォームに

11月29日、テンセントクラウドとWeChatが共催する第2回「ミニプログラムクラウド開発」テクノロ...