Welcome to Tech Athletes | テック・アスリート   Click to listen highlighted text! Welcome to Tech Athletes | テック・アスリート

Kubernetes(k8s)完全入門ガイド【2026年版】|コンテナオーケストレーションの基礎から本番運用まで

Kubernetes(クバネティス、k8sとも呼ばれる)は、Googleが開発しCNCFに寄贈したコンテナオーケストレーションプラットフォームです。2026年現在、AWSのEKS・Google CloudのGKE・AzureのAKSなど主要クラウドで標準サービスとして提供されており、インフラエンジニア・SREの必須スキルとなっています。

本記事では、Dockerの基礎知識がある方を対象に、Kubernetesの概念から実際のクラスター操作まで体系的に解説します。

Kubernetesとは?コンテナオーケストレーションの必要性

Dockerだけでは複数のコンテナを管理するのが困難です。Kubernetesは以下の課題を解決します。

  • スケーリング:トラフィックに応じてコンテナを自動増減
  • 自己修復:コンテナが落ちたら自動で再起動
  • ローリングアップデート:無停止でアプリをデプロイ
  • サービスディスカバリ:コンテナ間の通信を自動管理
  • 設定管理:ConfigMap/Secretで設定・秘密情報を管理

Kubernetesの主要コンポーネント

Pod(ポッド)

PodはKubernetesの最小デプロイ単位です。1つ以上のコンテナをまとめたもので、同じPod内のコンテナはIPアドレスとボリュームを共有します。

Deployment(デプロイメント)

Podのレプリカ管理とアップデートを担当します。「このコンテナを3つ起動し続けろ」という宣言的な設定が書けます。

Service(サービス)

Podへのネットワークアクセスを提供します。ClusterIP・NodePort・LoadBalancerの3種類があります。

Namespace(ネームスペース)

クラスター内のリソースを論理的に分離します。開発・テスト・本番環境を同一クラスター内で分けることができます。

ローカル環境のセットアップ:minikube

# minikubeのインストール(macOS)
brew install minikube

# クラスターの起動
minikube start

# kubectlのインストール
brew install kubectl

# クラスターの状態確認
kubectl cluster-info
kubectl get nodes

マニフェストファイルの書き方

Deployment マニフェスト例

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
  namespace: production
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: my-app:1.0.0
        ports:
        - containerPort: 3000
        resources:
          requests:
            memory: "64Mi"
            cpu: "250m"
          limits:
            memory: "128Mi"
            cpu: "500m"
        livenessProbe:
          httpGet:
            path: /health
            port: 3000
          initialDelaySeconds: 10
          periodSeconds: 10

Service マニフェスト例

apiVersion: v1
kind: Service
metadata:
  name: my-app-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 3000
  type: LoadBalancer

基本的なkubectlコマンド

# リソースの作成・更新
kubectl apply -f deployment.yaml

# リソースの確認
kubectl get pods
kubectl get deployments
kubectl get services

# ログの確認
kubectl logs pod-name-xxxxx
kubectl logs -f pod-name-xxxxx  # ストリーミング

# Pod内でのコマンド実行
kubectl exec -it pod-name-xxxxx -- /bin/sh

# リソースの削除
kubectl delete -f deployment.yaml

# デプロイのスケーリング
kubectl scale deployment my-app --replicas=5

# ローリングアップデート
kubectl set image deployment/my-app my-app=my-app:2.0.0

# ロールバック
kubectl rollout undo deployment/my-app

Helm:Kubernetesのパッケージマネージャー

HelmはKubernetesのパッケージマネージャーで、複雑なアプリケーションのデプロイを簡単にします。

# Helmのインストール
brew install helm

# リポジトリの追加
helm repo add stable https://charts.helm.sh/stable

# Nginxのインストール例
helm install my-nginx stable/nginx-ingress

# インストール済みチャートの確認
helm list

まとめ:Kubernetesで次世代インフラを構築しよう

Kubernetesは学習曲線が急ですが、習得することでスケーラブル・信頼性の高いシステム構築スキルが身につきます。インフラエンジニア・SRE・バックエンドエンジニアにとって、今やKubernetes経験は必須の市場価値です。

まずはminikubeでローカル環境を構築し、実際にPodをデプロイして動かすことから始めてみてください。

投稿者 kasata

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

コメントを残す

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

Click to listen highlighted text!