- 【Kubernetes】初心者が最初に覚えておくべき基本概念・用語一覧!
- Kubernetesとは?
- Kubernetesの基本的な概念・用語一覧
- 1. Cluster(クラスター)
- 2. Node(ノード)
- 3. Pod(ポッド)
- 4. Container(コンテナ)
- 5. Deployment(デプロイメント)
- 6. ReplicaSet(レプリカセット)
- 7. Service(サービス)
- 8. Namespace(ネームスペース)
- 9. ConfigMap(コンフィグマップ)
- 10. Secret(シークレット)
- 11. Volume(ボリューム)
- 12. PersistentVolume(PV)
- 13. PersistentVolumeClaim(PVC)
- 14. Ingress(イングレス)
- Kubernetesで覚えておきたいその他の用語
- Kubernetes初心者が最初に覚えるべき用語は?
- まとめ
【Kubernetes】初心者が最初に覚えておくべき基本概念・用語一覧!
Kubernetes(クバネティス)を学び始めると、Pod、Node、Deployment、Service、Namespaceなど、さまざまな専門用語が登場します。
それぞれの用語の意味を理解していないと、Kubernetesの設定ファイルやkubectlコマンドを見ても、何を操作しているのか分かりにくくなってしまいます。
本記事では、Kubernetes初心者が最初に覚えておきたい基本的な概念や用語を一覧で紹介します。
Kubernetesの全体像から、PodやDeploymentなどの重要なリソース、ネットワークやストレージに関する用語まで、初心者にも分かりやすく解説します。

Kubernetesとは?
Kubernetes(K8s)とは、コンテナ化されたアプリケーションのデプロイや管理、スケーリングなどを自動化するためのコンテナオーケストレーションツールです。
例えば、Dockerで作成したコンテナを複数のサーバーで動かす場合、コンテナの起動や停止、障害発生時の復旧などを管理する必要があります。
Kubernetesを利用すると、これらの作業を自動化できます。
主な機能は以下のとおりです。
- コンテナの自動起動・管理
- コンテナの障害検知と再起動
- アプリケーションのスケーリング
- コンテナへのネットワーク接続
- アプリケーションのローリングアップデート
Kubernetesは、複数のコンテナを効率的に管理したい場合に役立つ仕組みです。
Kubernetesの基本的な概念・用語一覧
まずは、Kubernetesを理解するうえで重要な基本用語を紹介します。
| 用語 | 概要 |
|---|---|
| Cluster | Kubernetesが管理するサーバー群 |
| Node | コンテナを実行するサーバー |
| Pod | コンテナを実行する最小単位 |
| Container | アプリケーションの実行環境 |
| Deployment | Podの数や状態を管理するリソース |
| ReplicaSet | 指定された数のPodを維持するリソース |
| Service | Podへの安定したアクセスを提供するリソース |
| Namespace | Kubernetes内のリソースを論理的に分ける仕組み |
| ConfigMap | アプリケーションの設定情報を管理するリソース |
| Secret | パスワードなどの機密情報を管理するリソース |
| Volume | Podから利用するストレージ |
| PersistentVolume | クラスタ内で利用する永続ストレージ |
| PersistentVolumeClaim | 永続ストレージの利用を要求するリソース |
| Ingress | 外部からHTTP・HTTPSでアクセスするためのルール |
それぞれの意味を詳しく見ていきましょう。
1. Cluster(クラスター)
Cluster(クラスター)とは、Kubernetesによって管理されるサーバー群のことです。
Kubernetesでは、複数のサーバーをまとめて1つのクラスターとして管理できます。
クラスターは、主に以下の2つの要素で構成されます。
- Control Plane(コントロールプレーン)
- Worker Node(ワーカーノード)
Control Planeはクラスター全体を管理し、Worker Nodeは実際にアプリケーションのコンテナを実行します。
Kubernetesを理解するうえで、最初に覚えておきたい基本概念です。
2. Node(ノード)
Node(ノード)とは、Kubernetesのクラスターを構成するサーバーのことです。
物理サーバーや仮想マシンなどがNodeとして利用されます。
Nodeには、アプリケーションを実行するためのPodが配置されます。
Nodeには主に以下の2種類があります。
| 用語 | 役割 |
|---|---|
| Control Plane Node | クラスター全体を管理する |
| Worker Node | Podを実行する |
Nodeの状態やCPU・メモリの使用状況などは、kubectlコマンドで確認できます。
kubectl get nodes
Nodeの詳細情報を確認する場合は、以下のコマンドを実行します。
kubectl describe node
3. Pod(ポッド)
Pod(ポッド)とは、Kubernetesでコンテナを実行するための最小単位です。
Kubernetesでは、コンテナを直接管理するのではなく、Podという単位で管理します。
1つのPodには1つ以上のコンテナを配置できます。
ただし、一般的には1つのPodに1つのメインコンテナを配置する構成がよく使われます。
複数のコンテナを配置する場合は、同じPod内でネットワークやストレージなどのリソースを共有できます。
Podの主な特徴は以下のとおりです。
- コンテナを実行する最小単位
- 1つ以上のコンテナを配置できる
- Pod内のコンテナはネットワークを共有する
- PodにはIPアドレスが割り当てられる
- Podは削除・再作成されることがある
Podの一覧を確認するコマンドは以下のとおりです。
kubectl get pods
Podの詳細情報を確認する場合は、以下を実行します。
kubectl describe pod
4. Container(コンテナ)
Container(コンテナ)とは、アプリケーションと実行に必要なライブラリや設定などをまとめた実行環境です。
Dockerなどを利用してコンテナイメージを作成し、そのイメージをもとにコンテナを起動します。
Kubernetesでは、Podの中でコンテナを実行します。
例えば、Webアプリケーションを動かす場合は、以下のような構成になります。
- Pod:Webアプリケーションを実行する単位
- Container:実際にWebアプリケーションを動かす環境
- Image:コンテナを作成するためのテンプレート
Dockerを学習したことがある場合は、コンテナイメージやコンテナの概念をそのまま活用できます。
5. Deployment(デプロイメント)
Deployment(デプロイメント)とは、Podの作成や更新、数の管理などを行うKubernetesのリソースです。
例えば、Webアプリケーションを3つのPodで実行したい場合、Deploymentにレプリカ数を3と指定します。
Kubernetesは指定された数のPodが実行されるように管理します。
Podに障害が発生した場合も、Deploymentが管理するReplicaSetなどの仕組みによって、必要なPod数を維持します。
Deploymentの主な機能は以下のとおりです。
- Podの作成・管理
- Podのレプリカ数の管理
- ローリングアップデート
- ロールバック
Deploymentを作成する場合は、YAMLファイルを用意して以下のコマンドを実行します。
kubectl apply -f deployment.yaml
Deploymentの一覧を確認するコマンドは以下のとおりです。
kubectl get deployments
6. ReplicaSet(レプリカセット)
ReplicaSet(レプリカセット)とは、指定された数のPodを維持するためのリソースです。
例えば、3つのPodを起動するように設定した場合、ReplicaSetは常に3つのPodが存在する状態を維持しようとします。
Podが削除されたり、障害によって停止したりした場合は、不足したPodを新しく作成します。
DeploymentとReplicaSetの関係は以下のとおりです。
- Deployment:アプリケーションのデプロイや更新を管理する
- ReplicaSet:指定された数のPodを維持する
- Pod:実際にコンテナを実行する
通常はDeploymentを利用してPodを管理するため、ReplicaSetを直接操作する機会はそれほど多くありません。
7. Service(サービス)
Service(サービス)とは、Podに対して安定したネットワーク接続を提供するためのリソースです。
Podは削除・再作成されることがあり、そのたびにIPアドレスが変わる可能性があります。
そのため、PodのIPアドレスを直接指定して通信する方法は管理が難しくなります。
Serviceを利用すると、PodのIPアドレスが変わっても、安定した接続先を利用できます。
Serviceには主に以下の種類があります。
| 種類 | 概要 |
|---|---|
| ClusterIP | クラスター内部からアクセスする |
| NodePort | Nodeのポートを利用して外部からアクセスする |
| LoadBalancer | 外部ロードバランサーを利用してアクセスする |
例えば、クラスター内部でWebアプリケーションに接続したい場合はClusterIPを利用します。
Serviceの一覧を確認するコマンドは以下のとおりです。
kubectl get services
8. Namespace(ネームスペース)
Namespace(ネームスペース)とは、Kubernetesのクラスター内にあるリソースを論理的に分割するための仕組みです。
例えば、開発環境・テスト環境・本番環境のリソースを分けて管理したい場合に利用できます。
Namespaceを利用すると、同じクラスター内でも環境ごとにPodやDeploymentなどを整理できます。
Namespaceの一覧を確認するコマンドは以下のとおりです。
kubectl get namespaces
Namespaceを指定してPodを確認する場合は、以下のコマンドを実行します。
kubectl get pods -n default
なお、NodeやPersistentVolumeなど、Namespaceに属さないクラスタースコープのリソースもあります。
9. ConfigMap(コンフィグマップ)
ConfigMap(コンフィグマップ)とは、アプリケーションの設定情報を管理するためのリソースです。
例えば、アプリケーションの接続先URLや環境ごとに異なる設定値などを管理できます。
コンテナイメージに環境ごとの設定を直接埋め込む必要がなくなるため、開発環境や本番環境などで同じイメージを利用しやすくなります。
ConfigMapの一覧を確認するコマンドは以下のとおりです。
kubectl get configmaps
10. Secret(シークレット)
Secret(シークレット)とは、パスワードやAPIキー、認証情報などの機密情報を管理するためのリソースです。
ConfigMapと似ていますが、Secretは機密情報を扱うために用意されています。
例えば、データベースの接続情報やAPIキーなどを管理する場合に利用します。
Secretの一覧を確認するコマンドは以下のとおりです。
kubectl get secrets
なお、SecretのデータはデフォルトではBase64エンコードされているだけで、暗号化されているわけではありません。
本番環境で利用する場合は、保存時の暗号化やアクセス権限の制御なども重要です。
11. Volume(ボリューム)
Volume(ボリューム)とは、Pod内のコンテナから利用できるストレージのことです。
コンテナのファイルシステムは、コンテナの再作成などによってデータが失われる場合があります。
Volumeを利用すると、コンテナとは別にストレージを管理できます。
また、同じPod内にある複数のコンテナでストレージを共有することもできます。
データを長期間保存したい場合は、PersistentVolumeなどの仕組みを利用します。
12. PersistentVolume(PV)
PersistentVolume(PV)とは、Kubernetesクラスター内で利用できる永続ストレージを表すリソースです。
Podが削除・再作成されても、ストレージ上のデータを保持したい場合に利用します。
例えば、データベースのデータやアップロードされたファイルなどを保存する用途があります。
PVは、クラウドストレージやネットワークストレージなどを利用して構成できます。
13. PersistentVolumeClaim(PVC)
PersistentVolumeClaim(PVC)とは、Podなどで利用する永続ストレージを要求するためのリソースです。
PVが実際に利用できるストレージを表すのに対し、PVCは必要なストレージ容量やアクセスモードなどを指定して利用を要求します。
PVとPVCの関係は以下のとおりです。
- PV:利用可能な永続ストレージ
- PVC:必要なストレージを要求する仕組み
- Pod:PVCを通じてストレージを利用する
Kubernetesでデータを永続化する場合に重要な概念です。
14. Ingress(イングレス)
Ingress(イングレス)とは、クラスター外部からHTTP・HTTPS通信でServiceにアクセスするためのルールを定義するリソースです。
例えば、Webアプリケーションに対して、ドメイン名やURLのパスに応じてアクセス先を振り分けたい場合に利用できます。
Ingressを利用するには、Ingress Controllerの導入・設定も必要です。
なお、Ingress APIは機能追加が進まない状態となっており、新しい仕組みとしてGateway APIも提供されています。
Kubernetesで覚えておきたいその他の用語
ここまで紹介した用語以外にも、Kubernetesには重要な概念があります。
最初からすべて覚える必要はありませんが、以下の用語も少しずつ理解しておくとよいでしょう。
| 用語 | 概要 |
|---|---|
| Control Plane | クラスター全体を管理する仕組み |
| kube-apiserver | Kubernetes APIを提供するコンポーネント |
| etcd | クラスターの状態などを保存するキーバリューストア |
| kube-scheduler | Podを配置するNodeを決定するコンポーネント |
| kube-controller-manager | 各種コントローラーを実行するコンポーネント |
| kubelet | Node上でPodの実行状態を管理するエージェント |
| Container Runtime | コンテナを実行するソフトウェア |
| Label | Kubernetesリソースに付ける識別用の情報 |
| Selector | Labelを条件にリソースを選択する仕組み |
| Probe | コンテナの状態を確認する仕組み |
| Resource Requests | コンテナが必要とするCPU・メモリの要求量 |
| Resource Limits | コンテナが利用できるCPU・メモリの上限 |
| HPA | Podの数を自動的に増減させる仕組み |
| RBAC | ユーザーやサービスアカウントのアクセス権限を管理する仕組み |
Kubernetes初心者が最初に覚えるべき用語は?
Kubernetesには多くの概念がありますが、最初からすべて覚える必要はありません。
まずは、以下の5つを優先して理解するのがおすすめです。
| 優先度 | 用語 | 覚えるポイント |
|---|---|---|
| 1 | Pod | コンテナを実行する最小単位 |
| 2 | Deployment | Podの作成・更新・数を管理する |
| 3 | Service | Podへの安定したアクセスを提供する |
| 4 | Node | Podを実行するサーバー |
| 5 | Namespace | リソースを論理的に分割する |
特に重要なのが、Pod・Deployment・Serviceの3つです。
この3つの関係を理解すると、Kubernetesの基本的なアプリケーション構成がイメージしやすくなります。
その後、ConfigMapやSecret、Volumeなどを学習すると、実際のアプリケーションを動かすための知識が身につきます。
まとめ
Kubernetesには、Cluster・Node・Pod・Deployment・Serviceなど、さまざまな概念や用語があります。
初心者の場合、最初からすべてを覚えようとすると難しく感じてしまいます。
まずは、以下の順番で学習するのがおすすめです。
- ClusterとNodeの関係を理解する
- PodとContainerの違いを理解する
- DeploymentによるPodの管理方法を理解する
- Serviceによるネットワーク接続を理解する
- NamespaceやConfigMapなどの設定管理を学ぶ
基本的な概念を理解したら、実際にkubectlコマンドを実行してPodやDeploymentなどの状態を確認してみましょう。
用語の意味だけでなく、実際に操作しながら学習することで、Kubernetesの仕組みをより深く理解できます。
