0Pricing
Kubernetes Basics · レッスン

Pod:最小単位

Podとは何か、その目的、YAMLマニフェストを使ったPodの定義と作成方法を学びます。

「Pod:最小単位」はCoddyKit上の無料Kubernetes Basicsレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはKubernetes Basics学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Kubernetes Basicsコースには全4レッスンが含まれています。

Podへようこそ

Kubernetesでデプロイ可能な最小単位はPodと呼ばれます。アプリケーションの基本的な構成要素と考えてください。

このレッスンでは、Podの概要や目的、YAMLを使った作成方法を紹介します。

Pod:最小単位 — イラスト1

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.yaml

Podの状態を確認する

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チューター)、Kubernetes Basicsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Kubernetes Basicsコースには全4レッスンが含まれています。

「Pod:最小単位」で何を学びますか?

Podとは何か、その目的、YAMLマニフェストを使ったPodの定義と作成方法を学びます。 ブラウザで直接実行するハンズオンコードでKubernetes Basicsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Kubernetes Basicsを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのKubernetes Basicsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「Pod:最小単位」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このKubernetes Basicsレッスンでコードを書いて実行できますか?

はい。すべてのKubernetes Basicsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Pod:最小単位
  2. Podのライフサイクルと状態
  3. マルチコンテナPod(サイドカー)
  4. Initコンテナと起動順序
← Kubernetes Basicsに戻る