Kubernetes コアテクノロジー Pod の詳細な説明と例

Kubernetes コアテクノロジー Pod の詳細な説明と例

1. 概要

Pod は、k8s システムで作成および管理できる最小の単位です。これは、リソース オブジェクト モデル内でユーザーによって作成または展開される最小のリソース オブジェクト モデルです。これは、k8s 上でコンテナ化されたアプリケーションを実行するためのリソース オブジェクトでもあります。その他のリソース オブジェクトは、Pod オブジェクトの機能をサポートまたは拡張するために使用されます。たとえば、コントローラー オブジェクトは Pod オブジェクトを制御するために使用され、サービスまたは Ingress リソース オブジェクトは Pod 参照オブジェクトを公開するために使用され、PersistentVolume リソース オブジェクトは Pod にストレージを提供するために使用されます。k8s はコンテナーを直接処理するのではなく、Pod を処理します。ポッドは 1 つ以上のコンテナーで構成されます。

Pod は Kubernetes で最も重要な概念です。各ポッドには、「ルート コンテナ」と呼ばれる特別な一時停止コンテナがあります。 Pause コンテナに対応するイメージは、Kubernetes プラットフォームの一部です。各ポッドには、一時停止コンテナに加えて、密接に関連する 1 つ以上のユーザー ビジネス コンテナも含まれます。

2. 特徴

(1)資源の共有

Pod 内の複数のコンテナはストレージとネットワークを共有でき、論理ホストと見なすことができます。名前空間、cgroup、その他の分離されたリソースなどの共有。

複数のコンテナが同じネットワーク名前空間を共有するため、Pod 内の複数のコンテナは Pod の IP とポート名前空間を共有し、Pod 内の複数のコンテナは localhost を介して通信できます。注意する必要があるのは、異なるコンテナ間でポートの競合が発生しないように注意する必要があることです。異なるポッドには異なる IP が存在します。異なるポッド内の複数のコンテナは、IPC を使用して通信することはできません (特に指定がない限り)。通常、Pod の IP を使用して通信します。

Pod 内の複数のコンテナはストレージ ボリュームを共有できます。ストレージ ボリュームは Pod の一部として定義され、Pod 内のすべてのコンテナのファイル システムにマウントできます。

(2)ライフサイクルが短い

ポッドはライフサイクルが比較的短いコンポーネントです。たとえば、ポッドが配置されているノードに障害が発生すると、そのノード上のポッドは他のノードにスケジュールされます。ただし、再スケジュールされたポッドはまったく新しいポッドであり、以前のポッドとは何の関係もないことに注意してください。

(3)フラットネットワーク

K8s クラスター内のすべての Pod は同じ共有ネットワーク アドレス空間内にあるため、各 Pod には他の Pod の IP アドレスを通じてアクセスできます。

3. 分類

(1)普通のポッド

通常の Pod が作成されると、etcd に保存され、Kubernetes マスターによって特定のノードにスケジュールされ、バインドされます。次に、Pod に対応するノード上の kubelet プロセスが関連する Docker コンテナのグループにインスタンス化され、起動されます。デフォルトでは、ポッド内のコンテナが停止すると、Kubernetes は自動的にこの問題を検出し、ポッド内のすべてのコンテナを再起動します。ポッドが配置されているノードがダウンした場合、このノード上のすべてのポッドは他のノードに再スケジュールされます。

(2)スタティックポッド

静的ポッドは、kubelet によって管理され、特定のノード上にのみ存在するポッドです。これらは API サーバー経由で管理できず、ReplicationController、Deployment、または DaemonSet に関連付けることはできず、kubelet はヘルスチェックを実行することもできません。

4. ポッドの重要性

Pod は複数のコンテナを保存できます。 Docker を例に挙げてみましょう。 Docker では、コンテナで 1 つのアプリケーションのみを実行することを推奨しています。 Pod は複数のプロセスで設計されています。依存関係の高い 2 つのコンテナを同じ Pod に配置できます (たとえば、マイクロサービス プロジェクトが MySQL データベースを呼び出す場合、マイクロサービス コンテナと MySQL データベース コンテナを同じ Pod に配置します)。ネットワークは Pod 内で共有されるため、マイクロサービスはローカル データに接続するのと同じように MySQL に接続し、ネットワーク IO が削減され、呼び出し効率が向上します。

5. ライフサイクルと再起動戦略

(1)ポッドの状態

説明する

保留中

API サーバーはポッドを作成しましたが、ポッド内の 1 つ以上のコンテナのイメージ (イメージのダウンロード プロセスを含む) はまだ作成されていません。

ランニング

ポッド内のすべてのコンテナが作成され、少なくとも 1 つのコンテナが実行中、開始中、または再起動中の状態になっています。

完了

ポッド内のすべてのコンテナが正常に終了し、再起動しません

失敗した

ポッド内のすべてのコンテナは終了しましたが、少なくとも 1 つのコンテナは終了に失敗しました

未知

ネットワーク障害などの何らかの理由でポッドステータスを取得できない

(2)ポッド再起動戦略

Pod の再起動ポリシーには、Always、OnFailure、Never が含まれます。デフォルト値は「常に」です。

戦略

説明する

いつも

コンテナに障害が発生すると、kubeletは自動的にコンテナを再起動します。

失敗時

コンテナの実行が停止し、実行中のコードが0でない場合、kubeletは自動的にコンテナを再起動します。

一度もない

コンテナの実行状態に関係なく、kubeletはコンテナを再起動しません。

(3)一般的な状態遷移

ポッド内のコンテナの数

ポッドの現在の状態

イベント

ポッド結果ステータス






再起動ポリシー=常に

失敗時

一度もない

コンテナ1個

ランニング

コンテナは正常に終了しました

ランニング

成功しました

成功しました

コンテナ1個

ランニング

コンテナの終了に失敗しました

ランニング

ランニング

失敗

コンテナ2個

ランニング

1 つのコンテナが終了に失敗しました

ランニング

ランニング

ランニング

コンテナ2個

ランニング

コンテナはOOMによって強制終了される

ランニング

ランニング

失敗

<<:  デジタル技術が広東省の製造業のデジタル化を促進

>>:  マルチクラウド環境におけるマイクロサービス アプリケーションのセキュリティ上の課題

推薦する

便利な Kubernetes Helm チャート ツール 16 選

[51CTO.com クイック翻訳] Helm は Kubernetes の非常に実用的なコンポーネ...

企業ウェブサイトのデザインレイアウトでは、TABLE と DIV のどちらが有利でしょうか?

企業のウェブサイト構築においては、ウェブサイトのデザインとレイアウトが比較的重要であり、使用するコー...

360度検索と百度の違いの比較例

みなさんこんにちは。私は梁磊です。最近、クライアントからの相談を通じて、クライアントが 360 Se...

中国初のオンライン短期賃貸サイト「愛日子」が正式に閉鎖

北京時報(廖鋒記者)昨日、中国のオンライン短期賃貸サイトの元祖である愛日族が正式に閉鎖され、愛日族の...

ウェブサイトの SEO: ドメイン名を活用して力と勢いを活かす方法

最近、フォーラムでそのような代替ドメイン名について議論している投稿を偶然見ました。それが Baidu...

詳細説明: Linuxネットワーク仮想化技術

Linux ネットワーク仮想化は、LXC プロジェクトのサブプロジェクトです。 LXC には、ファイ...

Baidu によってウェブサイトが降格された後の 3 つの経験

最近の12月のBaiduのアップデートでは、ある日突然、ウェブサイトのホームページがダウングレードさ...

専門家がクラウドコンピューティングのアーキテクチャとインフラストラクチャの最新トレンドを予測

業界をリードする CTO やアナリストの中には、ハイパースケール アーキテクチャ、ハイブリッド クラ...

8.25 アップデートはアルゴリズムのアップデートですか、それとも単なる目玉ですか?

8月22日には早くも、複数の大物が、百度が23日に新しいアルゴリズムを発表すると発言していた。李氏は...

技術概要: 分散システムにおける一般的な同期メカニズム

高いデータ可用性を確保するには、分散システムでデータの複数のコピーを保存する必要があります。次の疑問...

ランキング会社は嘆いている。App Store は全面的に見直され、iOS ゲームのプレイ方法は間違いなく変わるだろう。

ランキング操作(自己水増し)した企業は泣き、ASOは陰で密かに笑っていた。 2時間に及ぶ2017年の...

クラウドネイティブ ハイブリッド展開シナリオでリソース クォータを使用してクラスター リソースを効率的に割り当てる方法は?

01 はじめにアリババグループでは、オフラインコロケーション技術が2014年に初めて使用されました。...

SEOの基礎を学ぶことは、初心者SEO担当者に特化しています

SEO は魔法のようで習得が非常に難しく、多くのお金、時間、労力が必要だと言う人もいます。また、SE...

テンセントが初めて自社のコアビッグデータ技術体系を公開、「テンセントのビッグデータ構築法」が正式に発表

テンセントは8月31日、新刊書籍「テンセントのビッグデータ構築法」の中で、自社の中核となるビッグデー...

Dapr 入門チュートリアル: 公開と購読

先ほど、Dapr でサービス呼び出しを行う方法と、最も単純な状態管理について学習しました。このセクシ...