【2026年最新】Kubernetes(K8s)完全入門!Podからデプロイまで実践ガイド

Kubernetes(K8s)はコンテナオーケストレーションのデファクトスタンダードです。2026年現在、クラウドネイティブな開発では必須のスキルとなっています。本記事では、Kubernetesの基礎概念からハンズオン実践まで解説します。

Kubernetesとは?なぜ必要なのか

KubernetesはGoogleが設計・開発したコンテナオーケストレーションシステムで、現在はCNCF(Cloud Native Computing Foundation)が管理しています。複数のDockerコンテナを自動的に管理・スケーリング・回復する機能を提供します。

  • 🔄 自動スケーリング:トラフィックに応じてコンテナ数を自動調整
  • 🏥 自己修復:クラッシュしたコンテナを自動的に再起動
  • 🔃 ローリングアップデート:ダウンタイムなしでアプリを更新
  • ⚖️ 負荷分散:リクエストを複数コンテナに自動分散

Kubernetesの主要コンポーネント

コンポーネント役割
Podコンテナの最小デプロイ単位(1〜複数コンテナ)
DeploymentPodの宣言的管理・ローリングアップデート
ServicePodへのネットワークアクセスを提供
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サービス比較

サービスクラウド特徴おすすめ度
EKSAWS最多採用・豊富なエコシステム★★★★☆
GKEGCPGoogle製・最も安定・Autopilot機能★★★★★
AKSAzureエンタープライズ向け・Active Directory連携★★★★☆

Kubernetes習得のロードマップ

  1. Docker完全習得(前提)
  2. K8s基礎概念:Pod・Service・Deployment
  3. ローカル実践:minikube・kind
  4. マネージドK8s:EKS・GKE・AKSを試す
  5. GitOps:ArgoCD・Flux
  6. CI/CD統合:GitHub Actions + K8s
  7. CKA/CKAD資格取得

まとめ

KubernetesはDockerの次のステップとして必須のスキルです。まずはminikubeでローカル環境を構築し、基本コンセプトを手を動かして学びましょう。CKA(Certified Kubernetes Administrator)資格はクラウドエンジニアのキャリアアップに非常に有効で、取得者の年収は平均+200〜400万円の効果があります。

投稿者 kasata

IT企業でエンジニアとして勤務後、テクノロジー情報メディア「Tech Athletes(テック・アスリート)」を運営。プログラミング、クラウドインフラ(AWS/GCP/Azure)、AI活用、Webサービス開発を専門とする。エンジニア・ビジネスパーソン向けに、実際に使ってみた経験をもとに信頼できる技術情報を発信中。資格:AWS認定ソリューションアーキテクト、Python 3 エンジニア認定試験合格。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です