PONCOTSU

インフラ領域を主にあれしてます

インフラ

CloudSQLのメンテナンスに対する運用を考える

CloudSQLを使っていると逃げきれない仕様の一つに定期メンテナンスがあります。 数ヶ月に一度、最大で90秒ほどDBインスタンスが落ちる仕様なため、プロダクション環境などでCloudSQLを利用していると、必然と90秒のメンテナンスによるサービスダウンが発生し…

複数コンテナを有するPodのHPA設定の挙動を深ぼる

HPAの設定ではDeployment単位で閾値を指定しているのに、扱うリソースはPodなので少しわかりづらいとおもったので、複数コンテナを有するPodに対してHPA設定をかけた場合の計算ロジック(詳細版)をまとめました。 HPAのreplicaset数算出方法を整理 公式を眺…

Pod内で複数コンテナを運用している場合のHPAの設定方法

要約すると「複数コンテナを有するPodに対してHPA設定をかけるなら、コンテナすべてにlimits設定をかけておきましょう。でなければ正常に機能しません」という些末な話になります。 課題 HPA設定を付与したリソースを確認しようと思いGKEのコンソール画面を…

kubevalでmanifestのフォーマットをチェック

YAMLベースのドキュメントのコードレビューって、フォーマットのズレや期待していない値かどうかの確認で不備を見逃してしまい、あとあとリリース時の kubectl apply -f manifest.yaml などでうまく実行できずに焦ることが経験上、多いです。 今回はコードレ…

ServiceとPodだけでほぼダウンタイムゼロのリリースを実現する

ラベルを使ってPodを世代管理しておくと、Serviceを更新するだけでリリース(トラフィックルーティングを切り替える)を行なうことができて便利です。 要約 実装 Podにラベルを付与し、バージョン管理を行なう(dockerimageのタグと一致させておくとミスリー…