Kubernetes(K8s)はコンテナオーケストレーションのデファクトスタンダードです。2026年現在、クラウドネイティブな開発では必須のスキルとなっています。本記事では、Kubernetesの基礎概念からハンズオン実践まで解説します。
Kubernetesとは?なぜ必要なのか
KubernetesはGoogleが設計・開発したコンテナオーケストレーションシステムで、現在はCNCF(Cloud Native Computing Foundation)が管理しています。複数のDockerコンテナを自動的に管理・スケーリング・回復する機能を提供します。
- 🔄 自動スケーリング:トラフィックに応じてコンテナ数を自動調整
- 🏥 自己修復:クラッシュしたコンテナを自動的に再起動
- 🔃 ローリングアップデート:ダウンタイムなしでアプリを更新
- ⚖️ 負荷分散:リクエストを複数コンテナに自動分散
Kubernetesの主要コンポーネント
| コンポーネント | 役割 |
|---|---|
| Pod | コンテナの最小デプロイ単位(1〜複数コンテナ) |
| Deployment | Podの宣言的管理・ローリングアップデート |
| Service | Podへのネットワークアクセスを提供 |
| Ingress | 外部からのHTTPルーティング |
| ConfigMap/Secret | 設定・機密情報の管理 |
| Namespace | リソースの論理的な分離 |
ローカル環境でのセットアップ(minikube)
# minikubeのインストール(macOS)
brew install minikube kubectl
# クラスタ起動
minikube start --driver=docker --cpus=4 --memory=8g
# 状態確認
kubectl cluster-info
kubectl get nodes
最初のDeploymentを作成する
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: tech-athletes-app
labels:
app: tech-athletes
spec:
replicas: 3
selector:
matchLabels:
app: tech-athletes
template:
metadata:
labels:
app: tech-athletes
spec:
containers:
- name: app
image: nginx:1.25-alpine
ports:
- containerPort: 80
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 10
# Deploymentを適用
kubectl apply -f deployment.yaml
# 状態確認
kubectl get deployments
kubectl get pods
kubectl describe deployment tech-athletes-app
ServiceとIngressの設定
# service.yaml
apiVersion: v1
kind: Service
metadata:
name: tech-athletes-service
spec:
selector:
app: tech-athletes
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
---
# ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: tech-athletes-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: tech-athletes.local
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: tech-athletes-service
port:
number: 80
HPA(水平自動スケーリング)の設定
# HPAの設定(CPU使用率70%超でスケールアウト)
kubectl autoscale deployment tech-athletes-app \
--cpu-percent=70 \
--min=2 \
--max=10
# HPA状態確認
kubectl get hpa
マネージドKubernetesサービス比較
| サービス | クラウド | 特徴 | おすすめ度 |
|---|---|---|---|
| EKS | AWS | 最多採用・豊富なエコシステム | ★★★★☆ |
| GKE | GCP | Google製・最も安定・Autopilot機能 | ★★★★★ |
| AKS | Azure | エンタープライズ向け・Active Directory連携 | ★★★★☆ |
Kubernetes習得のロードマップ
- Docker完全習得(前提)
- K8s基礎概念:Pod・Service・Deployment
- ローカル実践:minikube・kind
- マネージドK8s:EKS・GKE・AKSを試す
- GitOps:ArgoCD・Flux
- CI/CD統合:GitHub Actions + K8s
- CKA/CKAD資格取得
まとめ
KubernetesはDockerの次のステップとして必須のスキルです。まずはminikubeでローカル環境を構築し、基本コンセプトを手を動かして学びましょう。CKA(Certified Kubernetes Administrator)資格はクラウドエンジニアのキャリアアップに非常に有効で、取得者の年収は平均+200〜400万円の効果があります。