2026年9月4日

2026年9月4日

Kubernetesの基本概念(Pod/Service/Deployment)を理解する

はじめに

Kubernetesは、大規模な分散システムでのアプリケーション配備、管理を自動化するためのオープンソースプラットフォームです。Pod/Service/Deploymentなどの基本的な概念は、Kubernetes上でコンテナベースのアプリケーションを効果的に運用するために理解し、使用することが重要です。

症状・背景

  • Kubernetesでのアプリケーション配備や管理が複雑で不明瞭な場合
  • 大規模なデプロイメントが必要なときに手間がかかる場合
  • ノードの自動スケーリングやリソースの最適化を実現したい場合

手順・設定方法

ステップ1: Podの作成と管理

# ディレクトリを作成し、Dockerfileを作成します。
mkdir myapp && cd myapp
cat <<EOF > Dockerfile
FROM nginx:latest
COPY index.html /usr/share/nginx/html/
CMD ["nginx", "-g", "daemon off;"]
EOF

# Dockerイメージをビルドします。
docker build -t myapp .

# Podを作成します。
kubectl apply -f pod.yaml

# Podの状態を確認します。
kubectl get pods

ステップ2: Serviceの作成と管理

# Serviceを作成します。
cat <<EOF > service.yaml
apiVersion: v1
kind: Service
metadata:
  name: myapp-service
spec:
  selector:
    app: MyApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
---
EOF

kubectl apply -f service.yaml

# Serviceの状態を確認します。
kubectl get services

ステップ3: Deploymentの作成と管理

# Deploymentを作成します。
cat <<EOF > deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: MyApp
  template:
    metadata:
      labels:
        app: MyApp
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
EOF

kubectl apply -f deployment.yaml

# Deploymentの状態を確認します。
kubectl get deployments

ステップ4: デプロイメントとサービスの連携

# ServiceにDeploymentをリンクさせます。
cat <<EOF > service-deployment.yaml
apiVersion: v1
kind: Service
metadata:
  name: myapp-service
spec:
  selector:
    app: MyApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
---
EOF

kubectl apply -f service-deployment.yaml

# Podの状態を確認します。
kubectl get pods

注意事項

  • Podは一組のコンテナで構成され、その内部では共有ネットワークが利用可能です。
  • ServiceはPodにアクセスするためのエンドポイントを作ります。
  • Deploymentはアプリケーションの自動スケーリングとロールバックを提供します。

まとめ

1. Pod: Kubernetes上の最小単位のコンテナグループです。同じネットワーク空間で動作します。

2. Service: Podのセットにアクセスするためのエンドポイントを作ります。

3. Deployment: 簡単な更新、ロールバック、自動リバランスをサポートします。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ