現場実践|Kubernetes StatefulSet設計

Kubernetesでデータベースを運用する|StatefulSet・ヘッドレスサービス・PodDisruptionBudgetの実践

「KubernetesでMySQLやRedisを動かしたい」「StatefulSetとDeploymentの違いは?」——KubernetesでステートフルなワークロードをStatefulSetで管理する方法と、マネージドDBとの使い分けを解説します。

読了目安:約15分更新日:2026年4月

💡 KubernetesでDBを動かすことは技術的には可能ですが、本番環境ではAWSのRDS・ElastiCacheなどマネージドサービスを使うことを強く推奨します。キャッシュ・開発用DBなど一部のユースケースではStatefulSetが有効です。

この記事を書いた人
現役ITエンジニア・IT講師(経験14年)
CCNA・CCNP 取得LPIC-1 保有SES現場を複数経験

Kubernetes本番環境のステートフルワークロード設計を複数案件で担当してきた立場から解説します。

1. StatefulSetとDeploymentの違い

DeploymentStatefulSet
Podの名前ランダムなサフィックス(my-app-a1b2c)連番の固定サフィックス(mysql-0, mysql-1)
ボリューム共有PVCまたはemptyDirPodごとに独立したPVC(volumeClaimTemplates)
起動・削除順序並列(順序なし)順序あり(0→1→2の順に起動、逆順で削除)
ネットワークID毎回変わる固定(mysql-0.mysql-headless)
ユースケースステートレスアプリ(Webサーバー等)DB・Redis・Zookeeper等のステートフルアプリ

2. StatefulSetの基本設定

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: redis
spec:
  serviceName: redis-headless
  replicas: 3
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
    spec:
      containers:
        - name: redis
          image: redis:7-alpine
          ports:
            - containerPort: 6379
          volumeMounts:
            - name: data
              mountPath: /data
  volumeClaimTemplates:
    - metadata:
        name: data
      spec:
        accessModes: ["ReadWriteOnce"]
        storageClassName: ebs-gp3
        resources:
          requests:
            storage: 10Gi

3. PodDisruptionBudgetで可用性を確保

# ノードのドレイン時にも最低1台のRedisを確保
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: redis-pdb
spec:
  minAvailable: 1
  selector:
    matchLabels:
      app: redis

PDBを設定することでKubernetesのノードドレイン(メンテナンス時)にも最低1台のPodが常に稼働している状態を保証できます。

📌 この記事のポイント
  • StatefulSetはPodに固定名・固定PVC・順序付き起動・固定ネットワークIDを提供するDB等向けのWorkloadタイプ
  • 本番のDB(MySQL/PostgreSQL)はRDS等のマネージドサービス推奨。StatefulSetはRedis・Kafka等で活用
  • PodDisruptionBudgetでノードメンテナンス中も最低稼働Pod数を保証して可用性を確保する

キャリアの疑問、一緒に解決しませんか?

Infra Academyでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。

※Kubernetesのバージョンにより設定方法が異なります。

資格取得後のキャリアに、AI活用という選択肢を

資格取得の先に現場でのIT効率化を任される場面が増えます。職場のルーティン業務にAIをどう組み込めるか、無料のセルフ診断(4問・約3分)でヒントが得られます。

AI・IT活用 無料セルフ診断へ →

この記事を読んでいる方へのおすすめ:

編集ポリシー:この記事は、Route Bloom の編集チームが最新情報を元に執筆・監修しています。情報の正確性を保つために定期的な見直しを行っています。

編集ポリシーはこちら

この記事で学んだスキルをさらに深めたい方へ

コンテナ技術をハンズオンで学べる技術書です。Kubernetes・Dockerをさらに深く理解しましょう。

Amazonアソシエイトプログラムを利用しています。

ABOUT ME
たから
フリーランスIT講師/エンジニア。 ◆経験:IT講師/インフラエンジニア/PM/マネジメント/採用/運用・保守・構築・設計 ◆取得資格:CCNA/CCNP/LPIC-1/AZ-900//サーティファイC言語/情報処理技術者 ◆サイドビジネス:アパレル事業/複数のWEBメディアを運営