0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kubernetes における Pod と ノードの違いと役割

Posted at

Kubernetes(K8s)では、Podノード(Node) はコンテナの管理やスケーリングにおいて重要な概念です。それぞれの役割と違いを詳しく解説します。


1. Podとは?

概要

  • Pod は Kubernetes の最小デプロイ単位
  • 1つ以上のコンテナを内包し、ストレージやネットワークを共有する。
  • 同じ Pod 内のコンテナはローカル通信が可能localhost で接続)。
  • Pod は基本的にノード内で動作する

Podの構成

構成要素 説明
コンテナ Pod 内で動作するアプリケーション(通常はDockerコンテナ)
ストレージ (Volume) Pod 内でデータを永続化するためのストレージ
ネットワーク Podごとに1つのIPアドレスを持つ
メタデータ Pod の名前やラベル、アノテーションなど

Podの特徴

  1. 単一コンテナのPod

    • 1つのコンテナのみを持つ → 一般的な構成
    apiVersion: v1
    kind: Pod
    metadata:
      name: single-container-pod
    spec:
      containers:
        - name: my-app
          image: nginx
    
  2. マルチコンテナのPod

    • 複数のコンテナが1つのPod内で連携(例: Webサーバー + サイドカー)。
    apiVersion: v1
    kind: Pod
    metadata:
      name: multi-container-pod
    spec:
      containers:
        - name: web-server
          image: nginx
        - name: sidecar
          image: redis
    

2. ノード(Node)とは?

概要

  • Kubernetes クラスタを構成する物理 or 仮想マシン
  • Pod をスケジュールし、実行する役割を持つ。
  • Master(コントロールプレーン)と Worker(ワーカーノード) に分かれる

ノードの種類

ノードの種類 役割
マスターノード(Control Plane) クラスター全体の管理・スケジューリングを行う
ワーカーノード(Worker Node) Pod を実行するマシン

ノードの構成

コンポーネント 説明
Kubelet ノード上で動作し、Pod の作成・管理を担うエージェント
Kube Proxy ノード間のネットワークを管理
Container Runtime コンテナを実行する環境(Docker, containerd)

ノードの確認コマンド

kubectl get nodes

3. Pod と ノード の関係

  • ノードは Pod をホストする(1つのノードに複数のPodが存在可能)
  • Pod はノード内でスケジューリングされ、ノードのリソースを使用して動作する
  • ノードがダウンすると、そのノード上のPodは別のノードに再スケジュールされる(冗長性確保)。

関係性のイメージ

+------------------- Kubernetes Cluster -------------------+
|  +----------------+      +----------------+      +----------------+  |
|  |   Node 1       |      |   Node 2       |      |   Node 3       |  |
|  | +-----------+  |      | +-----------+  |      | +-----------+  |  |
|  | |  Pod A    |  |      | |  Pod C    |  |      | |  Pod E    |  |  |
|  | +-----------+  |      | +-----------+  |      | +-----------+  |  |
|  | |  Pod B    |  |      | |  Pod D    |  |      | |  Pod F    |  |  |
|  | +-----------+  |      | +-----------+  |      | +-----------+  |  |
|  +----------------+      +----------------+      +----------------+  |
+-----------------------------------------------------------------------+

Pod のノード割り当てを確認

kubectl get pod -o wide

4. Pod と ノード のスケーリング

Pod のスケール(HPA)

kubectl scale deployment my-app --replicas=5

ノードのスケール(Cluster Autoscaler)

gcloud container clusters update my-cluster --enable-autoscaling --min-nodes=1 --max-nodes=10 --node-pool my-node-pool

5. まとめ

要素 役割 スケーリング方法
Pod 最小デプロイ単位、コンテナをホスト HPA(Horizontal Pod Autoscaler)
ノード Podを実行するマシン Cluster Autoscaler

Pod は Kubernetes の基本単位 であり、ノードは Pod を実行するためのリソース を提供します。これらを適切に管理することで、スケーラブルなアプリケーションを構築できます!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?