Upgrade to Pro — share decks privately, control downloads, hide ads and more …

引いては引き直す Kubernetes運用における境界設計とその見直し

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for j-maki j-maki
June 16, 2026
230

引いては引き直す Kubernetes運用における境界設計とその見直し

Kubernetes運用では、最初に引いた「境界」が実態とずれていくことがあります。本セッションでは、ALB / Ingress、Helm chart、Secret管理の3事例をもとに、責務・認知負荷・変更頻度・ライフサイクルの観点から、どこでつらみが出て、どう見直しているのかを紹介します。完成形ではなく、Platform Engineeringの現場での試行錯誤のアレコレを共有します。 2:19 P

Avatar for j-maki

j-maki

June 16, 2026

More Decks by j-maki

Transcript

  1. 今回見る3つのケース ALB / Ingress 入口とルーティング変更をどこで扱うか Kubernetes manifest 生成・所有の責務とアプリごとの自由度をどう分けるか Secret 箱・値・同期の責務をどう分けるか

    ※ いずれも、いわゆる「キラキラ事例」ではなく、現場での試行錯誤を共有するものです。どうぞ気軽にお聞きください。 8
  2. 前提: 今回話すプラットフォームと責務境界 EKS 上に構築 AWSリソースはTerraformで管理しつつ、Atlantisによるapply KubernetesリソースはArgoCDで管理・デプロイ ## イメージ Terraform (Atlantis

    / PE) └─ PE 管理: AWSリソース Kubernetes manifest (ArgoCD) ├─ PE 管理(ArgoCD application/ 各種Controller / 監視設定など ) └─ アプリチーム管理(各アプリの Helm chart / values) 9
  3. ALB / ルーティングの管理責務をどこに置くか問題 前提: ALB 自体は Terraform でも Ingress Controller

    経由でも作成できる。 そのうえで、ルーティング変更をどちらの変更フロー・責務に置くかが議論のポイント 観点 Ingress Terraform 変更の置き場所 比較的アプリのデプロイ単位に近い インフラ構成の一部 主な変更主体 アプリチームが変更しやすい PE / インフラチームの変更フローに乗り やすい 周辺リソースとの 連携 Annotation 経由で参照・制御 Terraform の依存関係として管理 ライフサイクル クラスタ / Kubernetes リソースに 連動 クラスタ外の AWS リソースとして維持 11
  4. 引いた境界: AWS リソースは Terraform、Pod への接続は Kubernetes AWS の世界 PE /

    Terraform が管理 Kubernetes の世界 App Team / Helm が管理 ACM / WAF / Security Group ALB Listener Rule (host/path) Target Group 責務の境界 PE / アプリチームの責務はここで分かれる TargetGroupBinding で k8s に接続 TargetGroupBinding Service この境界にした理由: AWSリソースのライフサイクルに寄せたかった ALBとその関連リソース(SG, WAF, ACM)などをTerraformで一体管理したい → 初期構築としては妥当な判断で、一定うまくいったものの... 12
  5. アプリの Kubernetes manifest の生成・所有をどこに置くか 今回の例は Helm chart を使っているが、論点は manifest を生成する責務の置き場所

    PE に寄せる 共通テンプレート 差分だけ書く 中間 リファレンス実装 雛形から始める アプリに寄せる 各アプリで定義 生成ロジックも所有す る 見る軸: 変更主体: 変更したい人が、自分で変更できるか 自由度: アプリごとの差分をどこまで許容するか 認知・保守負荷: Kubernetes manifest 生成の複雑さを誰が持つか 15
  6. Kubernetes manifest の生成・所有をアプリチーム側に寄せる 引いた境界: manifest を生成する責務を各アプリ側に置く 各アプリのリポジトリに Helm chart を置く

    Helm template / values をアプリチームが管理する PE は ArgoCD などデプロイの仕組みと、クラスタ側の土台を管理する この境界にした理由: アプリごとの自由度を優先 PEを介在せずに、アプリ側で変更できる範囲を広げたかった 共通テンプレートに落とすべき構成パターンが、初期時点では見えていなかった 16
  7. Secrets Manager の箱と値を、同じチームが管理するか分けるか AWSのSecrets Managerを使う前提も、複数の責務に分解できる 箱を作る Secrets Manager / IAM

    値を入れる・変える その値を知っているチームがいる Kubernetes に渡す ECS等とは違いクラスタ内にシークレットを持ち込む手段が必要 19
  8. 引いた境界: まずは Terraform で一気通貫に作成 構築のスピード優先で、箱・値・Kubernetes への反映をまとめて PE 側に寄せていた Terraform apply

    ├─ Secrets Manager の箱 ├─ Secret の値 └─ Kubernetes Secret 運用の流れと見えてきた課題 初回はダミー値を入れ、本物の値で再度 apply アプリ固有の値でも、追加・変更のたびに PE 依頼になる PE は、その値が正しいか判断できない → 値を知っている人と、変更できる人がズレていた 20
  9. 境界の引き直し(実施済み): External Secrets Operator を導入 切る場所 当初の境界 引き直した境界 Secrets Manager

    の箱 PE が Terraform で作成 PE が Terraform で作成 Secret の値 PE が Terraform で投入(ダミー→再 apply) 値を知るチームが管理 Kubernetes への反映 PE が Terraform で k8s Secret を作成 ESO で自動的に同期 判断軸: その値を知っている / 知るべきなのは誰か 結果 → 責務と実態のずれによるPEへの無駄な依頼がなくなった 21
  10. 紹介した3つの事例のまとめ 事例 引いた境界・理由 見えてきた課題 教訓(抽象化) 引き直しの方向 ALB / Ingress ライフサイクルでAWS

    側へ寄せる ルーティング変更が都 度PE作業に 変更頻度の高い関心事 は、変更しやすい側に置 く ルーティングを切り出し (Gateway API等を調査) Kubernetes manifest manifest 生成の責務を 各アプリ側で所有 初期構成外の変更は PE依頼でボトルネッ クに 所有を渡しても、認知負 荷が高いと実装は移らな い 構成パターンを抽象化し共通 テンプレを検討 Secret スピード優先でPEに一 元化 値を知る人と変える人 がズレる 変更権限は、その値を知 っている人に一致させる 箱=PE・値=知るチーム・ ESOで同期(実施済) 22
  11. おまけ: 式年遷宮のスコープは全て Kubernetes では、クラスタを丸ごと作り直し移行する取り 組みを「式年遷宮」になぞらえることがあります。 ただ、その文脈ではクラスタのバージョンや内部のコントロ ーラ・アドオンの更新ばかりに着目されがちな印象です。 (個人の感覚) しかし本来の式年遷宮のスコープは全てを含みます。 式年遷宮は20年に一度、社殿をはじめ全てを新しくして、大御神

    に新宮(にいみや)へお遷りいただくわが国最大のお祭りです — [伊勢神宮]https://www.isejingu.or.jp/sengu/the63rd/ Kubernetesを運用していく上でも、社殿(クラスタ)だけでな く鳥居(境界)も、日々見直し・引き直していきたいもので す。 https://iseshima.keizai.biz/headline/2142/ 24