Kubernetesとは
Kubernetes(K8s)はコンテナ化されたアプリケーションの自動デプロイ・スケーリング・管理を行うオープンソースシステムです。Googleが開発しCNCFに寄贈しました。
Dockerとの関係
DockerがコンテナのビルドとローカルRunを担当するのに対し、Kubernetesは本番環境での大量コンテナの「指揮者(オーケストレーター)」の役割を果たします。
Kubernetesの主要コンポーネント
| コンポーネント | 役割 |
|---|---|
| Pod | 最小デプロイ単位(1〜複数コンテナ) |
| Node | Podが動作するマシン(VM・物理サーバー) |
| Cluster | 複数NodeをまとめたK8sの基本単位 |
| Deployment | Podの数・更新方法を管理 |
| Service | PodへのL4ロードバランサ |
| Ingress | HTTP/HTTPSルーティング |
| ConfigMap/Secret | 設定・機密情報の注入 |
基本的なDeploymentのYAML
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app:latest
ports:
- containerPort: 8080
Kubernetesが解決する課題
- 自動スケーリング:負荷に応じてPod数を自動調整(HPA)
- セルフヒーリング:クラッシュしたPodを自動再起動
- ローリングアップデート:ダウンタイムなしで新バージョンをデプロイ
- リソース管理:CPU・メモリの制限と保証を設定
マネージドK8s(GKE・EKS・AKS)を使うことで、コントロールプレーンの管理が不要になり、本番運用のハードルが大きく下がります。





