Kubernetesのデプロイメントの送信からポッドの実行までのプロセス全体

Kubernetesのデプロイメントの送信からポッドの実行までのプロセス全体

ユーザーが Kubernetes にデプロイメントを作成するリクエストを送信すると、Kubernetes がリクエストを受信して​​から、それを実行する対応するポッドを作成するまでのプロセス全体で何が起こるのでしょうか?

Kubernetesアーキテクチャの簡単な紹介

デプロイメントの送信からポッドの実行までのプロセス全体を理解する前に、Kubernetes クラスターのアーキテクチャを見てみましょう。

上記の画像は次の画像と同じです。

図に示すように、k8s クラスターはコントロール プレーンとノード ノードに分かれています。

コントロール プレーン (マスター ノードとも呼ばれます) は、主に次のコンポーネントで構成されます。

  • kube-api-server: 名前が示すように、クライアントからのリクエストやクラスターの内部コンポーネントを含むすべての API を処理する役割を担います。
  • etcd: 分散永続ストレージ、イベントサブスクリプション通知。 kube-api-server のみが etcd を直接操作し、他のすべてのコンポーネントは kube-api-server と対話します。
  • スケジューラ: ポッドのスケジューリングを処理し、ポッドを特定のノードにバインドします。
  • コントローラー マネージャー: コントローラーは、さまざまなリソース オブジェクトを処理します。
  • クラウド コントローラー マネージャー: クラウド サービス プロバイダーに接続するコントローラー。

Node は、ユーザー アプリケーションのデプロイ専用であり (k8s のコア コンポーネントに影響を与えないようにコントロール プレーンから分離されています)、主に次のコンポーネントが含まれます。

  • kubelet: ノード上のポッドを管理し、ステータスのチェックとレポートを実行します。
  • kube-proxy: トラフィックのルーティングと転送を実行します (現在は、オペレーティング ノードの iptables または ipvs を通じて実装されています)。
  • CRI: コンテナ ランタイム インターフェース。

デプロイメントからポッドへ

デプロイメントからポッドまでのプロセス全体を次の図に示します。

1. kube-api-serverにリクエストが送信される

リクエストは kube-api-server に送信され、認証、承認、変更、検証などの一連のプロセスが実行されます。最後に、デプロイメント データは etcd に永続的に保存されます。

このプロセスでは、ミューテーション アドミッション Webhook を使用して、サイドカーの挿入など、リソース オブジェクトに任意の変更を加えることができます。

2. コントローラマネージャの処理

コントローラー マネージャー コンポーネントには、さまざまなリソース オブジェクトごとに異なる処理部分があります。

Deployment の場合、Pod を直接管理しないため、Deployment が ReplicaSet を管理し、ReplicaSet が Pod を管理します。

したがって、コントローラー マネージャーには 2 つの部分が関係します。

  • デプロイメント コントローラー
  • レプリカセット コントローラー

(1)まず、デプロイメントコントローラはデプロイメント作成イベントをリッスンし、関連する処理を実行し、最後にレプリカセットを作成します。

(2)レプリカセットコントローラはレプリカセット作成イベントをリッスンし、関連する処理を実行し、最後にポッドを作成します。

3. スケジューラ

ポッドをスケジュールする必要があるというイベントを受信すると、スケジューラは一連のスケジューリング ロジック処理を実行し、最終的に適切なノードを選択してポッドをこのノードにバインドします (ここでのいわゆるノード スケジューリングは、ポッド データを変更し、nodeName に値を割り当てるだけです)。

具体的なスケジューリング アルゴリズムは比較的複雑で、必須スケジューリング、アフィニティと反アフィニティ、汚染と許容度、ハードウェア リソースの計算、優先順位などが関係しますが、この記事では詳しく説明しません。

4. ノード kubelet 処理

スケジューリングが完了すると、ポッドがバインドされているノード上の kubelet も kube-api-server を介して対応するイベントを受信し、その後 kubelet がポッドを作成します。

このプロセス中、kubelet はそれぞれ CRI、CNI、CSI を呼び出します。

  • CRI (コンテナ ランタイム インターフェース): コンテナ ランタイム インターフェース。 CRI プラグインは、イメージのプル、コンテナの作成と削除などの操作を実行します。 CRI のよく使われるプラグインをいくつか紹介します。
  • コンテナ
  • クリオー
  • Docker エンジン
  • CNI (コンテナ ネットワーク インターフェイス): コンテナ ネットワーク インターフェイス。 CNI プラグインは、ポッドに IP アドレスを割り当て、ポッドがクラスター内の他のポッドと通信できるようにします。一般的な CNI プラグイン:
  • 繊毛
  • カリコ
  • CSI (コンテナ ストレージ インターフェイス): コンテナ ストレージ インターフェイス。 CSI プラグインは、外部ストレージ プロバイダーと通信して、ボリュームの接続やマウントなどの操作を実行します。

いわゆるインターフェースは、実際には通信の仕様または標準 (grpc プロトコルを使用) のみを定義し、具体的な実装はプラグインに引き渡されます。

ここまでが、デプロイメントの作成からポッドの実行までの Kubernetes のプロセス全体です。

<<:  Kubernetes の導入戦略を 1 つの記事で理解する

>>:  OneMind Technologyは中国のエッジパブリッククラウドサービス市場で3年連続3位にランクイン

推薦する

馬華クラウド:香港CN2クラウドサーバー - 最低8元、香港クラスタークラウドサーバー - 最低693元/年

Mahua Cloud は現在、香港データセンターのクラウド サーバーの特別プロモーションを実施して...

SEO業界の再編、考え方を変えることで灰の中から生まれ変わることができる

検索エンジンのアップデートは、継続的な開発と改善のプロセスです。しかし、検索エンジンのメジャーアップ...

ウェブサイト編集者のための高品質なオリジナル記事の更新方法

企業にとって、質の高いオリジナル記事は非常に重要ですが、それをどのように更新するかは、Webサイトの...

urpad-ヒューストン専用サーバー 50% オフ

urpad買収後の新たな動きです。サーバーレンタル事業に着手しました。多角的な展開も必至です。企業は...

外部リンクを求めてフォーラムにアクセスする SEO 担当者はどれくらいいるでしょうか?

昨日、Xiaoxiao は「現在の SEO 担当者の見解を変える必要がある」というタイトルの記事を公...

仮想マシンの暗号化: ハイパーコンバージドの世界における暗号化戦略

ハイパーコンバージド インフラストラクチャと仮想化が標準となっている世界では、暗号化の必要性がますま...

型破りなSEOでウェブサイトのトラフィックが急増

後で知ったのですが、今夜はとても力強い共有セッションを聞いて、とても価値があったと感じました。これは...

SEO 担当者が知っておくべきウェブサイト最適化に関する 100 の質問と回答 (パート 5)

SEOに取り組む過程で、誰もが何らかの問題に遭遇します。誰もがこれらの一般的なSEOの問題をより明確...

マルチクラウドアーキテクチャを最適化および管理し、効率的にビジネス継続性を確保します。

株式会社銀行の金融技術革新への道現在、モバイルインターネット、デジタル決済、新興銀行の影響を受けて、...

クラウドデータバックアップサービスにより、ダウンタイムとセキュリティリスクが大幅に削減されます

バックアップはあらゆるクラウド戦略において重要ですが、データを保存する場所も同様に重要です。リスクを...

Alibaba Cloud で効率的で安定した安全な Echsop モールの Web サイトを展開する方法

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

Vultr、(新データセンター)シンガポールVPS、簡単なレビュー/月額5ドル/768MBのメモリ

Vultr はシンガポールのデータセンターにあるため、Host Cat が Vultr シンガポール...

ゲーム化された製品運用のためのスーパーインセンティブシステム

この記事は2015年に初公開されました。近年、この製品コンセプトに関して新たな補足意見が多く寄せられ...