Jump to section

Kubernetes Pod とは

URL をコピー

Kubernetes Pod は、1 つ以上の Linux® コンテナの集合体で、Kubernetes アプリケーションの最小単位です。特定の Pod は、密結合された複数のコンテナ (高度なユースケース)、または単一のコンテナ (より一般的なユースケース) で構成されます。以下で説明する通り、リソース共有のインテリジェンスを向上させるために、コンテナは Kubernetes Pod にグループ化されます。

Kubernetes システム内では、同じ Pod のコンテナが同じコンピューティング・リソースを共有します。これらのコンピューティング・リソースは Kubernetes で一緒にプールされてクラスタを形成します。これにより、アプリケーションを実行するためのより強力でインテリジェントな分散システムを提供できます。コンテナから Pod、ノード、クラスタに至るまで、Kubernetes の構成要素を理解するのは、始めは難しいかもしれませんが、Kubernetes Pod のメリットの理解に最も関連する要素は次のように分類されます。

ハードウェアユニット

ノード:Kubernetes でのコンピューティング・ハードウェアの最小単位で、簡単に考えると、1 つの個別マシンです。

クラスタ:インテリジェントなリソースの共有とバランシングを可能にするためにグループ化されたノードの集合体です。

ソフトウェアユニット

Linux コンテナ:実行に必要なすべてのファイルを含む 1 つ以上のプロセスのセットで、マシン間での可搬性を有します。

Kubernetes Pod:1 つ以上の Linux コンテナの集合体で、パッケージ化されることにより、クラスタ管理によるリソース共有のメリットを最大化します。

基本的に、個々のハードウェアは Kubernetes 内でノードとして表示されます。複数のこれらのノードがクラスタに収集され、必要に応じてコンピューティング能力を分散できます。このクラスタで実行されているのが Pod です。Pod は、クラスタ内の密結合コンテナが同じクラスタで一緒に実行されるようにします。

Kubernetes がコンテナを直接実行せず、代わりに Pod を実行して、Pod 内の各コンテナが同じリソースとローカルネットワークを共有できるようにするのは、Pod とクラスタの関係が理由です。この方法でコンテナをグループ化すると、コンテナはある程度分離されたまま、同じ物理ハードウェアを共有するかのように相互に通信できます。

このようなコンテナを Pod にまとめるやり方は、Kubernetes のよく知られた機能の 1 つであるレプリケーションの基盤です。コンテナが Pod にまとめられている場合、必要に応じて、Kubernetes はレプリケーション・コントローラーを使用してアプリケーションを水平方向にスケーリングできます。事実上これは、単一の Pod が過負荷になった場合、Kubernetes がそれを自動的に複製してクラスタにデプロイできることを意味します。負荷が高いときに正常な機能性をサポートするためだけでなく、システムに障害耐性を持たせるためにも Kubernetes Pod は継続的に複製されます。

Pod などの再利用可能な要素のメリットを最大化することは、Kubernetes システムの中核的なメリットです。本番環境における Kubernetes の最適な使用方法を発見するには、何年もの試行錯誤が必要ですが、 クラウドネイティブ・アプリケーションが急速に普及している時代において、ほとんどの組織はそのような試行錯誤に時間をかけることができません。

しかし、Kubernetes が構築されているオープンスタンダードの基盤のおかげで、成功 (および失敗) のパターンが、早期に導入した組織による試行錯誤を通じてわかってきています。これらのパターンは、複製可能な設計として多くの組織が初期の導入作業を迅速化するために活用できます。

Kubernetes パターン:クラウドネイティブ・アプリケーションを設計するための再利用可能な要素 (Bilgin Ibryam、Roland Huß 共著、O'Reilly 提供) では、Kubernetes でのクラウドネイティブ・アプリケーションの設計および実装において共通した、再利用可能な要素、パターン、原則、およびプラクティスについて詳しく説明しています。

関連資料

記事

コンテナと VM

Linux コンテナと仮想マシン (VM) は、さまざまな IT コンポーネントが組み合わさってシステムの他の部分から分離している、パッケージ化されたコンピューティング環境です。

記事

コンテナ・オーケストレーションとは

コンテナ・オーケストレーションは、コンテナのデプロイメント、管理、スケーリング、ネットワーキングを自動化します。

記事

Linux コンテナとは

Linux コンテナとは、システムから分離された一連のプロセスであり、そのプロセスのサポートに必要なすべてのファイルを提供する個別のイメージから実行されます。

コンテナの詳細はこちら

製品

統合されたテスト済みのサービス一式を備えたエンタープライズ・アプリケーション・プラットフォームであり、ユーザーの選ぶインフラストラクチャを使ってアプリケーションを市場に投入するために活用できます。

リソース

トレーニング

無料のトレーニングコース

Running Containers with Red Hat Technical Overview

無料のトレーニングコース

Containers, Kubernetes and Red Hat OpenShift Technical Overview

無料のトレーニングコース

Developing Cloud-Native Applications with Microservices Architectures