Kubernetes(クバネティス)は、たくさんのコンテナを、たくさんのサーバーの上でまとめて管理するための仕組みです。クラウドのサービスや、AIの基盤など、規模の大きなシステムの多くで使われています。
ここでは、Kubernetesとは何かを、Dockerとの違いとできることから解説します。クラスタの構成や基本の用語に加えて、インフラエンジニアから見た現場での使われ方と学び方もまとめました。
この記事で分かること
- Kubernetesとは何か、Dockerとの違いとできること
- クラスタの構成と、Pod・Deployment・Serviceなどの基本の用語
- クラウドでの使われ方と、インフラエンジニアの学び方
Kubernetesとは?
コンテナをまとめて管理する仕組み
Kubernetesは、コンテナを動かすサーバーを束ねて、どのサーバーでどのコンテナを動かすか、止まったらどう立ち上げ直すかを自動で管理するオープンソースのソフトウェアです。こうした管理のことを、オーケストレーションといいます。
もとはGoogleが社内で使っていた仕組みをもとに開発され、今はCNCF(Cloud Native Computing Foundation)という団体のもとで開発が続いています。名前が長いため、「K8s(ケーエイツ)」と略されることもあります。
Dockerとの違い
| 項目 | Docker | Kubernetes |
|---|---|---|
| 役割 | コンテナを作って動かす | たくさんのコンテナをまとめて管理する |
| 主な範囲 | 1台のサーバー | 複数のサーバー(クラスタ) |
| 向いている場面 | 開発の環境、小さなシステム | 本番の大きなシステム |
| 障害のとき | 止まったコンテナは、自分で立ち上げ直す | 止まったコンテナを、自動で立ち上げ直す |
Dockerがコンテナを動かす道具なら、Kubernetesはたくさんのコンテナを動かし続けるための管理の仕組みです。2つは競合するものではなく、組み合わせて使われます。
Dockerについては、[Dockerとは]で解説しています。
Kubernetesでできること
| できること | 内容 |
|---|---|
| 自動で復旧する | コンテナやサーバーが止まると、別の場所でコンテナを自動で立ち上げ直す |
| 数を自動で増減する | アクセスが増えるとコンテナを増やし、減ると減らす |
| 止めずに更新する | 新しい版のコンテナに少しずつ入れ替え、問題があれば元に戻す |
| 負荷を分散する | 複数のコンテナに、アクセスを振り分ける |
| 設定や秘密の情報を管理する | 設定やパスワードを、コンテナとは別に管理して渡す |
インフラエンジニアがこれまで手順書と監視で守ってきた「止まらない」「増やせる」仕組みを、Kubernetesが自動で回してくれるイメージです。
Kubernetesの仕組みと基本の用語
クラスタの構成
Kubernetesでは、複数のサーバーをまとめた全体をクラスタと呼びます。クラスタは、主に次の2種類のサーバー(ノード)でできています。
| 種類 | 役割 |
|---|---|
| コントロールプレーン | クラスタ全体の状態を管理し、どのノードで何を動かすかを決める司令塔 |
| ワーカーノード | 実際にコンテナを動かすサーバー |
コントロールプレーンが止まるとクラスタの管理ができなくなるため、本番では複数台で冗長化するのが一般的です。止まりにくい仕組みの考え方は、オンプレミスのサーバーの冗長化と同じです。
基本の用語
| 用語 | 意味 |
|---|---|
| Pod | Kubernetesで動かす最小の単位。1つ以上のコンテナをまとめたもの |
| Deployment | Podをいくつ動かすか、どの版で動かすかを決めて管理する |
| Service | 複数のPodに、決まった入り口(名前やIPアドレス)を用意して、通信を振り分ける |
| Ingress | クラスタの外からのWebのアクセスを、URLに応じて中のServiceに届ける |
| Namespace | 1つのクラスタの中を、チームや用途ごとに区切る |
| ConfigMap・Secret | 設定と、パスワードなどの秘密の情報を、コンテナとは別に管理する |
最初は、Pod・Deployment・Serviceの3つを押さえれば、Kubernetesの基本の動きを理解できます。
「あるべき姿」を書いて管理する
Kubernetesでは、「このコンテナを3つ動かしておく」といったあるべき姿を、マニフェストというYAMLのファイルに書いて登録します。Kubernetesは今の状態を見張り続け、あるべき姿とずれていれば、自動で直します。
これは、インフラの構成をコードで書いて管理するIaCと同じ考え方です。IaCについては、[IaCとは]で解説しています。
よく使うコマンド
Kubernetesは、kubectl(キューブコントロール)というコマンドで操作します。
| コマンド | できること |
|---|---|
| kubectl apply -f ファイル名 | マニフェストの内容を、クラスタに反映する |
| kubectl get pods | 動いているPodの一覧を表示する |
| kubectl describe pod Pod名 | Podの詳しい状態や、起きたことの記録を表示する |
| kubectl logs Pod名 | Podのログを表示する |
| kubectl delete -f ファイル名 | マニフェストで作ったものを削除する |
トラブルのときは、kubectl get でどこが止まっているかを見て、describe と logs で原因を探るのが基本の流れです。
現場での使われ方と学び方
クラウドのマネージドサービスで使うのが主流
Kubernetesのクラスタを自分で作って運用するのは、手間がかかります。そのため、今はクラウドのマネージドサービスで使うのが主流です。
| サービス | 提供するクラウド |
|---|---|
| Amazon EKS | AWS |
| Azure Kubernetes Service(AKS) | Microsoft Azure |
| Google Kubernetes Engine(GKE) | Google Cloud |
マネージドサービスでは、コントロールプレーンの運用をクラウドの事業者に任せられます。利用者は、ワーカーノードとアプリの運用に集中できます。
クラウドの仕事については、[クラウドエンジニアとは]で紹介しています。
Kubernetesが向いている場面、向いていない場面
| 向いている場面 | 向いていない場面 |
|---|---|
| たくさんのコンテナを、本番で動かし続ける | コンテナが数個だけの、小さなシステム |
| アクセスの増減が大きいWebサービス | 運用するメンバーが少なく、学ぶ時間が取れない |
| 頻繁に更新するサービス | ほとんど変更しない、安定したシステム |
| AIの学習や推論の基盤 | 仮想マシン1台で足りるシステム |
Kubernetesは便利ですが、仕組みが複雑なぶん、運用の負担もあります。規模や体制に合っているかを見て導入を決めることが大切です。
AIの基盤での使われ方は[AIインフラとは]で、開発者が使いやすい基盤づくりは[プラットフォームエンジニアリングとは]で紹介しています。
インフラエンジニアの経験が活きる部分
| 分野 | Kubernetesでの仕事 |
|---|---|
| ネットワーク | Pod間の通信、Serviceによる振り分け、外からのアクセスの設計 |
| ストレージ | コンテナが止まっても消えないデータの置き場所(永続ボリューム)の設計 |
| 監視 | クラスタやPodの状態、資源の使い方の見張り |
| セキュリティ | 権限の管理(RBAC)、通信の制限、コンテナのイメージの確認 |
Kubernetesの裏側は、Linux、ネットワーク、ストレージの仕組みそのものです。サーバーやネットワークの経験がある人ほど、トラブルの原因を深く探れます。
Kubernetesの学び方
| ステップ | やること |
|---|---|
| 1. Dockerに慣れる | コンテナを作って動かす基本を、先に身につける |
| 2. 手元にクラスタを作る | minikubeやkindなどの学習用のツールで、自分のパソコンに小さなクラスタを作る |
| 3. マニフェストを書く | Deployment と Service を書いて、Webサーバーを動かしてみる |
| 4. 障害を起こしてみる | Podをわざと消して、自動で立ち上がる様子を確かめる |
| 5. マネージドサービスを触る | クラウドの無料枠などで、EKSやGKEを試す |
自分でPodを消して、自動で元に戻る様子を見ると、Kubernetesの考え方が一気に分かります。
Kubernetesでよくある疑問
KubernetesにはDockerが必要?
Kubernetesは、コンテナを動かすためのソフト(コンテナランタイム)があれば動きます。今のKubernetesは、Docker Engineではなく、containerdなどのランタイムを直接使うのが一般的です。ただし、Dockerで作ったコンテナのイメージは、そのままKubernetesで動かせます。
小さなシステムでも、Kubernetesを使うべき?
使わなくても大丈夫です。コンテナが数個だけなら、DockerやDocker Composeで十分なことが多くあります。運用の手間に見合う規模かどうかで判断しましょう。
Kubernetesは難しい?
覚える用語や仕組みが多く、最初はつまずきやすい技術です。ただし、Linuxやネットワークの基礎があれば、1つずつ理解していけます。まずはPod・Deployment・Serviceの3つから始めましょう。
Kubernetesの資格はある?
あります。CNCFが運営するCKA(Certified Kubernetes Administrator)は、クラスタの構築や運用の力を、実際に操作して解く形式で問う資格です。アプリの開発者向けのCKADや、セキュリティのCKSもあります。
仮想化やコンテナを扱うLinuxの資格としては、[LinuCレベル3とは]で紹介しているプラットフォームスペシャリストもあります。
AIの基盤でも使われている?
使われています。GPUを積んだサーバーをKubernetesで束ね、AIの学習や推論のコンテナにGPUを割り振って動かす使い方が広がっています。
学習から運用までを回す仕組みは、[MLOpsとは]で紹介しています。
まとめ
Kubernetesは、たくさんのコンテナを、たくさんのサーバーの上でまとめて管理するための仕組みです。
この記事のポイントは次のとおりです。
- Kubernetesとは
コンテナの配置や復旧、増減を自動で管理するオーケストレーションのソフトウェア。 - Dockerとの違い
Dockerはコンテナを動かす道具、Kubernetesはたくさんのコンテナを動かし続ける管理の仕組み。 - 基本の用語
クラスタはコントロールプレーンとワーカーノードでできていて、まずはPod・Deployment・Serviceを押さえる。 - 現場での使われ方
EKS・AKS・GKEなどのマネージドサービスで使うのが主流。規模や体制に合うかで導入を決める。 - 学び方
Dockerに慣れてから、手元の小さなクラスタでマニフェストを書き、障害を起こして動きを確かめ。る
Kubernetesは、インフラの経験を、コンテナやAIの基盤の仕事に広げるための技術です。まずは自分のパソコンに小さなクラスタを作り、Podを動かして消してみるところから始めてみましょう。

