PROGスクールナビ

Kubernetes(k8s)入門|コンテナオーケストレーションの基礎

Kubernetes(k8s)はコンテナを大規模に管理・自動化するためのオーケストレーションツールです。クラウドネイティブ開発では必須のスキルです。

Kubernetesとは?

DockerなどのコンテナをGoogleが開発した自動化・スケーリング・管理するシステムです。

  • 自動スケーリング:アクセス増加時にコンテナを自動で増やす
  • 自己回復:コンテナが落ちたら自動で再起動
  • ローリングデプロイ:無停止でアプリを更新
  • ロードバランシング:複数コンテナへのリクエスト分散

基本概念(リソース)

リソース説明
Pod最小デプロイ単位(1つ以上のコンテナ)
NodePodが動くサーバー(VM/物理サーバー)
Cluster複数NodeをまとめたKubernetes環境
DeploymentPodのレプリカ数・更新方法を定義
ServicePodへのネットワークアクセスを提供
Namespaceリソースの論理的な区切り
ConfigMap設定値を外部化するオブジェクト
Secretパスワード等の機密情報を管理

kubectlの基本コマンド

# リソース一覧表示
kubectl get pods
kubectl get deployments
kubectl get services
kubectl get nodes

# 詳細情報
kubectl describe pod my-pod
kubectl logs my-pod

# Podに接続
kubectl exec -it my-pod -- /bin/bash

# Deploymentのスケール変更
kubectl scale deployment my-app --replicas=3

# YAMLファイルを適用
kubectl apply -f deployment.yaml
kubectl delete -f deployment.yaml

Deployment YAMLの例

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3  # 3つのPodを起動
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: my-app:1.0
        ports:
        - containerPort: 3000
        resources:
          limits:
            cpu: "500m"
            memory: "128Mi"

マネージドKubernetesサービス

  • EKS(AWS):AWSのマネージドKubernetes
  • GKE(Google Cloud):Google CloudのKubernetes
  • AKS(Azure):MicrosoftのKubernetes
  • クラスターの管理をクラウドが代行してくれる

Kubernetesをエンジニアキャリアに活かす

CKA(Certified Kubernetes Administrator)やCKAD(Certified Kubernetes Application Developer)の資格がクラウドエンジニア・DevOpsエンジニアとして評価されます。

まとめ

KubernetesはDockerの次に学ぶべきインフラ技術です。EKS・GKEなどのマネージドサービスから始め、CKA資格取得でキャリアアップを目指しましょう。

📚 プログラミング初心者におすすめの本

🛒 楽天で人気のプログラミング入門書