地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【k8s】プロダクションで使うためのマニフェストの書き方

概要

kubernetesをプロダクションで使うならネットに転がっているマニフェストをコピペだけで運用していくのは設定が足りなくなるケースがある。そのために何が必要かをまとめたTIPS的な記事

Pod

  • リソースの割り当てを行う。(requestsはサーバのスケジューリングに使われるため)

ライフサイクルの設定

  • Entorypointで事前処理を行う
  • init Containersを利用する
  • Sidecarパターンを使う
  • postStartを使う
  • preStopを使う
  • リスタートのポリシーを書く
  • terminationGracePeriodsSecondsを設定する
  • ローリングアップデートなりでダウンタイムがない設定を行う
  • [Node|Pod]のアフィニティを使う(Nodeセレクターなども)

イメージ

  • タグを必ず設定する
  • latestタグは使わない
  • イメージの元は信頼できるサイトを使っているか

死活監視

  • livenessProbeを使う
  • readinessProbeを使う
  • startupProbeを使う

セキュリティ

  • allowPrivilegeEscationsがfalseになっているか
  • runAsUserでrootを設定しない
  • capabilitiesが不用意に設定されていないか

その他

  • ローカルdirとか使ってないか
  • HPAが設定されているかどうか

参考