Podは、Kubernetes上で実行される最小単位のデプロイメントユニットです。Podは1つ以上のコンテナを含むことができます。通常、関連するコンテナを1つのPodにまとめることで、それらのコンテナが同じホスト上で共有されることを保証します。Pod内のコンテナは、ネットワークとストレージリソースを共有し、同じIPアドレスとポートスペースを使用します。これにより、コンテナ間での通信やデータの共有が容易になります。
Podは一時的な性質を持ち、柔軟なスケーリングをサポートします。Kubernetesは、Podのスケジューリング、自動再起動、障害時の再配置などを管理します。また、Podはデプロイメント、ステートフルセット、デーモンセットなどの上位リソースオブジェクトの基礎となります。
以下に、PodのYAML定義の例を示します。
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: container1
image: nginx:latest
- name: container2
image: redis:latest
この例では、my-pod
という名前のPodが作成されます。このPodには、nginx
イメージを実行するcontainer1
と、redis
イメージを実行するcontainer2
の2つのコンテナが含まれています。
PodはKubernetesの基本的な概念であり、クラウドネイティブなアプリケーションを構築する際に重要な役割を果たします。