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

ランニング

ランニング

失敗

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

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

推薦する

Java プログラムでよく使用されるメモリ モジュールは何ですか?

序文コードを書くときは通常、コードとオブジェクト間のフローに重点を置きます。しかし実際のところ、Ja...

zji: 香港 CN2 ライン サーバー (防御強化)、最低 450 元、e3-1230/16g メモリ/480gSSD/10M 帯域幅

zji は現在、香港の葵湾データセンターの専用サーバーに対して特別プロモーションを提供しており、月額...

BaiduとGoogleの両方にウェブサイトを最適化する方法

今日はウェブサイト最適化の SEO テクニックについてお話しましょう。中国の検索は主に、Baidu ...

Kになった後、駅が復旧したのにまだランキングがないのはなぜですか?

魔法の百度による何千もの試行錯誤を経て、ウェブサイトはついに実を結び、ランキングは依然として非常に良...

オンラインマーケティングの究極ガイド: レスポンシブ Web デザイン

2 月の時点で、米国のスマートフォン ユーザー数は 50% 近くに達しています。2012 年は世界の...

あなたのウェブサイト名が他人のウェディングドレスにならないようにしましょう

ウェブサイト名はウェブサイトのシンボルです。ブランド名として、しっかりと保護する必要があります。その...

一般的なコンテナイメージ構築ツールとソリューションの紹介

[[420216]] Docker を使用する場合、通常は docker build を使用してイメ...

Kubernetesを素早く導入する方法

Kubernetes とは何ですか? Kubernetes という単語はギリシャ語に由来し、操舵手...

Google PR 価値を高める 8 つのコツ

Google PR 値は、現在多くのウェブマスターの友人にとってそれほど重要ではないようですが、PR...

Kubernetes の Pause コンテナとは何ですか?

導入Kubernetes によって報告されたエラーは次のとおりです。 Failed to creat...

justhostはどうですか?香港 VPS シンプルレビュー

justhostはどうですか? justhost Hong Kongはいかがでしょうか? justh...

全体的な衰退、部分的な死 SNSコミュニティの戦いは単一の原因で終了する可能性

1. SNSのコンセプトSNS の正式名称はソーシャル ネットワーキング サービスで、特に人々がソー...

SpringBoot は Kafka を統合して高いデータスループットを実現します

1. はじめに前回の記事では、Kafka のアーキテクチャモデルについて詳しく紹介しました。クラスタ...

ドメインコマンドに関する考察とウェブサイトが罰せられた理由の分析

この記事を書く前に、SEO コンサルタントは Baidu の公式ドキュメントを検索しましたが、ドメイ...