MeWrite Docs

Kubernetes: CrashLoopBackOff

Kubernetes PodのCrashLoopBackOffエラーの解決方法

概要

Podが起動と終了を繰り返し、Kubernetesが再起動間隔を延長している状態です。

エラーメッセージ

NAME                    READY   STATUS             RESTARTS   AGE
myapp-xxx-yyy           0/1     CrashLoopBackOff   5          10m

原因

  1. アプリケーションエラー: 起動時にクラッシュ
  2. 設定ミス: 環境変数やConfigMapの誤り
  3. リソース不足: メモリやCPU制限超過
  4. 依存サービス: 必要なサービスに接続できない

解決策

1. ログ確認

1
2
3
4
5
6
7
8
# 現在のログ
kubectl logs myapp-xxx-yyy

# 前回のログ
kubectl logs myapp-xxx-yyy --previous

# イベント確認
kubectl describe pod myapp-xxx-yyy

2. リソース設定確認

1
2
3
4
5
6
7
resources:
  requests:
    memory: "128Mi"
    cpu: "100m"
  limits:
    memory: "256Mi"
    cpu: "500m"

3. Liveness/Readiness Probe

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
livenessProbe:
  httpGet:
    path: /health
    port: 8080
  initialDelaySeconds: 30
  periodSeconds: 10
readinessProbe:
  httpGet:
    path: /ready
    port: 8080
  initialDelaySeconds: 5
  periodSeconds: 5

4. デバッグ用コマンド変更

1
2
3
# 起動コマンドをsleepに変更してデバッグ
kubectl run debug --image=myimage --command -- sleep infinity
kubectl exec -it debug -- /bin/sh

よくある間違い

  • initialDelaySecondsが短すぎる
  • メモリ制限がアプリケーション要件より低い

Kubernetes の他のエラー

最終更新: 2025-12-09