Kubernetes 本番運用は「動かす」より「壊れない・コストが暴れない」
Kubernetes(以下 k8s) は本番運用フェーズに入ると、Pod 設計・モニタリング・コスト最適化が重要になります。本記事では編集部の視点で、初めて k8s を本番運用する際に押さえるべきポイントを公開情報をもとに整理します。マイクロサービス設計ロードマップ もご参考に。
Pod 設計の鉄則
(1) requests/limits は必ず設定:未設定はノイジーネイバー問題の温床。(2) 1Pod1責務:複数役割を詰めない。(3) ヘルスチェックを2種類:liveness(再起動判定) と readiness(トラフィック投入可否)。(4) graceful shutdown:SIGTERM 対応で接続中の処理を完了。(5) 環境変数より ConfigMap/Secret:再デプロイなしで更新可能に。
モニタリングの三本柱
(1) メトリクス:Prometheus + Grafana が定番。CPU/メモリ/RPS/エラー率。(2) ログ:Loki or ELK で集約。Pod 名・コンテナ名を必ずラベル化。(3) トレース:OpenTelemetry でサービス間の依存とレイテンシ可視化。(4) SLO/SLI:可用性目標を数値化して定例で議論。Observability 実践 も合わせて。
コスト最適化の打ち手
(1) HPA (水平オートスケール):CPU/メモリ/カスタムメトリクスで自動増減。(2) VPA (垂直オートスケール):requests/limits の自動調整。(3) スポットインスタンス:ステートレスなワークロード向けに大幅コスト削減。(4) Cluster Autoscaler:ノード数も自動増減。(5) ノードプールの分離:高負荷バッチを別プールに隔離。Datadog 活用ガイド でコスト可視化のヒント。
セキュリティ運用
(1) RBAC:最小権限でServiceAccountを分離。(2) NetworkPolicy:Pod 間通信を許可リストで制御。(3) イメージスキャン:CI で脆弱性を検出。(4) Secrets 管理:Vault/SOPS/外部 KMS で暗号化。(5) 監査ログ:kube-apiserver の audit を保管。セキュリティエンジニア転身 もご参考に。
マネージドかセルフホストか
(1) GKE/EKS/AKS:コントロールプレーン管理を任せられる。(2) セルフホスト:自由度は高いが運用負荷大。(3) 判断軸:チーム規模 < 50 名なら原則マネージド。(4) マルチクラスタ:障害分離を目的に検討。(5) Fargate/Cloud Run on GKE:ノード管理不要のサーバーレス選択肢。
失敗しがちなパターン
(1) limits 未設定で OOMKill 連発。(2) ノードが常時 80% 超でスケジューリング失敗。(3) ログ集約がなく障害解析が困難。(4) 過剰な HPA 設定で振動。(5) RBAC が cluster-admin だらけ。対策は、(1)必ず requests/limits、(2)ノード稼働率の閾値監視、(3)集約ログ整備、(4)HPA の cooldown 調整、(5)RBAC 棚卸し、です。