Pod:最小単位
Podとは何か、その目的、YAMLマニフェストを使ったPodの定義と作成方法を学びます。
「Pod:最小単位」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
Podへようこそ
Kubernetesでデプロイ可能な最小単位はPodと呼ばれます。アプリケーションの基本的な構成要素と考えてください。
このレッスンでは、Podの概要や目的、YAMLを使った作成方法を紹介します。

Podとは
Podは、アプリケーションの単一インスタンスを表す抽象化です。1つ以上のコンテナと、それらで共有するリソースを含みます。
- コンテナ:通常はDockerコンテナで、アプリケーションコードを実行します。
- ストレージ:データを永続化するための共有ストレージボリュームです。
- ネットワーク:Pod固有のIPアドレスとネットワーク設定です。
コンテナだけでなくPodを使う理由
Kubernetesがコンテナを直接管理するのではなく、なぜPodを使うのか疑問に思うかもしれません。理由は次のとおりです。
- リソースの共有:Pod内のコンテナは同じネットワーク名前空間を共有し、
localhostで通信できます。 - 同一ノードへの配置:アプリとログ収集用サイドカーのように密接に連携するコンテナを、常に同じノードに一緒にスケジュールできます。
- 抽象化:Podはより高レベルの抽象化を提供するため、個々のコンテナではなくアプリケーション全体を管理しやすくなります。
シンプルなPodの構成
ほとんどのPodは1つのコンテナを実行します。これが最も一般的な使い方です。たとえば、Nginx Webサーバーだけを実行するPodや、Node.jsアプリケーションを実行するPodを作成できます。
コンテナが1つだけでも、Podはネットワークとストレージのコンテキストを提供するため、デプロイの完全な単位になります。
YAMLでPodを定義する
Podを含むKubernetesオブジェクトは、通常YAML(YAML Ain't Markup Language)ファイルで定義します。これらのファイルには、リソースの望ましい状態を記述します。
基本的なPod YAMLには次の項目が含まれます。
apiVersion:Kubernetes APIのバージョンです。kind:Kubernetesオブジェクトの種類です(例:Pod)。metadata:Podのnameやlabelsなどの情報です。spec:実行するコンテナなど、望ましい状態を指定します。
例:Nginx PodのYAML
Nginx Webサーバーを実行するPodのシンプルなYAML定義を見てみましょう。
spec.containersセクションでは、Pod内のコンテナ(複数可)と、そのname、image、portsを定義します。
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80最初のPodを作成する
YAMLファイルからPodを作成するには、kubectl applyコマンドを使います。このコマンドは、定義に基づいてリソースを作成または更新するようKubernetesに指示します。
まず、前のYAMLの内容をnginx-pod.yamlという名前のファイルに保存してください。
kubectl apply -f nginx-pod.yamlPodの状態を確認する
YAMLを適用した後、kubectl get podを使ってPodの状態を確認できます。PodがRunning状態になっているはずです。
イベントやコンテナの状態など、より詳しい情報を確認するには、kubectl describe podを使います。
kubectl get pod nginx-pod
kubectl describe pod nginx-pod複数コンテナのPod(サイドカー)
単一コンテナのPodが一般的ですが、Podには複数のコンテナを配置することもできます。これらは通常、密接に連携しながらリソースを共有します。
一般的なパターンに「サイドカー」コンテナがあります。これはメインのアプリケーションコンテナと並行して実行され、ロギング、監視、データ同期などの補助サービスを提供します。
このパターンについては、今後のレッスンで詳しく説明します。
Pod定義チェック
基本的なKubernetes Pod YAML定義で、トップレベルに必須ではないフィールドは次のうちどれですか。
まとめ:Pod――基盤となる要素
PodはKubernetesでデプロイ可能な最小単位であり、コンテナ、ストレージ、ネットワークリソースをカプセル化するものだと学びました。
- Podはコンテナを抽象化し、リソースの共有と同一ノードへの配置を可能にします。
- YAMLファイルでは、
apiVersion、kind、metadata、specを使ってPodを定義します。 kubectl apply -f <filename>でPodを作成し、kubectl get podとkubectl describe podで確認します。
次は、これらの基本構成要素のライフサイクルと状態について詳しく見ていきます。
よくある質問
「Pod:最小単位」レッスンは無料ですか?
はい。「Pod:最小単位」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「Pod:最小単位」で何を学びますか?
Podとは何か、その目的、YAMLマニフェストを使ったPodの定義と作成方法を学びます。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「Pod:最小単位」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。