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によって強制終了される

ランニング

ランニング

失敗

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

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

推薦する

エッジ コンピューティングはクラウド コンピューティングよりも優れている点は何ですか?ついに誰かが明らかにした

1. すべてに力を与えるユビキタス環境における IoT 技術の急速な発展により、杭州 IoT タウ...

Docker (IV): Docker 三銃士の Docker Compose

前回の 2 つの記事では、Dockerfile の使用方法を紹介しました。 Dockerfile テ...

モバイルエッジコンピューティングのセキュリティリスク分析とソリューション

ラボガイドモバイル エッジ コンピューティングは、エッジ ノードにクラウド コンピューティング機能を...

失敗したウェブマスターの苦い幸せ:冷肉販売者であり、小さなウェブサイトを持っている

私は失業中の浮浪者で、小さな冷肉店を経営しています。実は今朝まで、私は非常に機嫌が悪く、この気分は1...

Kubernetes と Docker の分離があなたにとって何を意味するか

この瞬間が来るまで長い時間がかかりました。 Kubernetes はバージョン 1.20 以降、コン...

ウェブサイトマーケティングのための鋭い剣を作る:ブログマーケティング

ウェブサイトマーケティングのための鋭い剣を作る:ブログマーケティング今日では、ブログ マーケティング...

Terraform を使用してクラウド構築を高速化します。学びましたか?

この記事では、Terraform と AWS を使用する利点について説明し、理解を深めるためにこのコ...

エッジコンピューティングは業界のデジタル変革に貢献します

1. エッジコンピューティングが業界のデジタル変革をリード現在、デジタルトランスフォーメーションは、...

SNSモデルによるスターバックスのマーケティング

3.0インターネット時代は世界全体を変え、同時に伝統的なマーケティングモデルにも質的な変化をもたらし...

過去5年間のクラウドストレージの発展のレビューと展望

業界の専門家が、過去 5 年間の主要なクラウド ストレージの発展を評価し、今後 5 年間のストレージ...

友好的なリンクを交換する方法と注意が必要な問題

みなさんこんにちは。Xiaobaoは引き続きSEOについてお話します。フレンドリーリンクについては、...

後半の交通の毒と解毒剤

インターネットが後半戦に突入するとともに、トラフィックも後半戦に突入しました。前半戦のキーワードを振...

aulerion: VPS 競争、好きなだけ預けて好きなだけ受け取る、9 つのデータ センター

以前 aulerion について一度触れましたが、ここでもう一度それについて話す必要があります。au...

Douban: ユーザーと深く関わり、より多くの価値を生み出すデザイン

[要点] この記事では、Douban ユーザーの視点から、Douban がユーザーにとってどのように...