Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kubernetes基盤における開発者体験 とセキュリティの両⽴ / Balancing de...
Search
mekka
April 09, 2026
Technology
120
0
Share
Kubernetes基盤における開発者体験 とセキュリティの両⽴ / Balancing developer experience and security in a Kubernetes-based environment
Kubernetes Novice Tokyo #40
mekka
April 09, 2026
More Decks by mekka
See All by mekka
組織のSREを推進するためのPlatform EngineeringとEKS / Platform Engineering and EKS to drive SRE in your organization
chmikata
0
230
ArgoCDによるGitOps導入 / ArgoCD GitOps
chmikata
0
230
KEDAで始めるイベント駆動システム #k8snovice / keda-tutorial
chmikata
1
450
新サービス立ち上げに向けたCI/CD環境の構築
chmikata
0
2.9k
rakusmeetup-number-4-operation
chmikata
1
710
rakusmeetup-number-4-infrastructure
chmikata
0
630
Other Decks in Technology
See All in Technology
Cortex Code君、今日から内製化支援担当ね。
coco_se
0
250
来期の評価で変えようと思っていること 〜AI時代に変わること・変わらないこと〜
estie
0
140
AWS DevOps Agent or Kiro の使いどころを考える_20260402
masakiokuda
0
160
OPENLOGI Company Profile for engineer
hr01
1
62k
Data Intelligence Engineering Unit 部門と各ポジション紹介
sansantech
PRO
0
110
Webアクセシビリティは“もしも”に備える設計
tomokusaba
0
150
組織的なAI活用を阻む 最大のハードルは コンテキストデザインだった
ixbox
1
110
Cortex Codeでデータの仕事を全部Agenticにやりきろう!
gappy50
0
290
出版記念イベントin大阪「書籍紹介&私がよく使うMCPサーバー3選と社内で安全に活用する方法」
kintotechdev
0
140
マルチモーダル非構造データとの闘い
shibuiwilliam
1
170
パワポ作るマンをMCP Apps化してみた
iwamot
PRO
0
300
Zephyr(RTOS)でARMとRISC-Vのコア間通信をしてみた
iotengineer22
0
130
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
350
Building the Perfect Custom Keyboard
takai
2
720
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
200
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
420
Bash Introduction
62gerente
615
210k
sira's awesome portfolio website redesign presentation
elsirapls
0
210
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
340
エンジニアに許された特別な時間の終わり
watany
106
240k
The Cult of Friendly URLs
andyhume
79
6.8k
Statistics for Hackers
jakevdp
799
230k
AI: The stuff that nobody shows you
jnunemaker
PRO
4
510
Transcript
Kubernetes基盤における開発者体験 とセキュリティの両⽴ 1 Kubernetes Novice Tokyo #40 ~ 共通Helmチャートで実現するPlatform Engineering
~
2 ⾃⼰紹介 SIer にてアプリケーションエンジニアとしてキャリアをスタート。ToBのSaaS企業 でのSRE組織の⽴ち上げを経て、2024年10⽉より株式会社ログラスに参画。 現在は共通基盤部にて、開発組織への SRE の推進およびプラットフォーム開発に取 り組んでおり、SRE を⽂化として根付かせることをテーマに活動しています。
株式会社ログラス SRE ⾒形 親久∕mekka Chikahisa Mikata∕https://x.com/melpo_mel
3
None
None
None
Kubernetes基盤における開発者体験とセキュリティの両⽴ 7 • 課題: K8sマニフェストの複雑さと属人化 • どう作ったか : 共通Helmチャートの設計思想 •
どう守っているか : SSOT + CI による品質担保 今日お話しすること
8 開発チームが抱えていた課題 Kubernetes基盤における開発者体験とセキュリティの両⽴ 課題 影響 K8sマニフェストの学習コストが高い デプロイまでのリードタイムが長い セキュリティ設定が属人的 サービスごとに品質がばらつく YAML定義が巨大で見通しが悪い
レビュー負荷が高くミスが入り込む 目指す姿: 開発者はアプリの設定だけに集中し、基盤側がセキュリティ・運用をガードレールとして提供する
Kubernetes基盤における開発者体験とセキュリティの両⽴ 9 • ArgoCD App-of-Apps + ApplicationSet でデプロイを自動化 • テンプレートリポジトリ(基盤チーム管理)とサービスリポジトリ(開発チーム管理)の2リポジトリ構成
GitOps アーキテクチャ概要
Kubernetes基盤における開発者体験とセキュリティの両⽴ 10 なぜ1つの巨大チャートにしないのか • 役割ごとにチャートを分割 → テンプレートの可読性・保守性が向上 • 全チャートが common
ライブラリに依存 → セキュリティ・監視・スケジューリングを共通化 • サービスが必要なチャートだけを組み合わせて利用 例: Web API → base + stateless 例: バッチ処理付き → base + stateless + workflow + migration 例: イベント駆動 → base + stateless + events 共通チャートの設計 : チャート分割による関心の分離
11 チャート構成と各チャートの役割 Kubernetes基盤における開発者体験とセキュリティの両⽴ チャート 役割 主なリソース common 全チャート共通の基盤 SecurityContext, Labels
base サービスの土台 ServiceAccount, NetworkPolicy stateless 常駐アプリ(ステートレス) Deployment, Service, Ingress stateful 常駐アプリ(ステートフル) StatefulSet, Service, Ingress workflow バッチ・定期ジョブ WorkflowTemplate events イベント駆動処理 EventSource, Sensor migration DBマイグレーション Workflow, WorkflowTemplate
12 commonライブラリ : 全チャート共通の基盤 Kubernetes基盤における開発者体験とセキュリティの両⽴ 機能 内容 SecurityContext 非root, readOnlyFS,
drop ALL, seccomp Datadogアノテーション APMライブラリ自動注入(Java/Python/JS) スケジューリング TopologySpread, Affinity, Tolerations の自動設定 共通ラベル app.kubernetes.io/, platform.loglass.com/ 開発者が何も指定しなくても、全Podにセキュリティとオブザーバビリティが適用される構造 commonはライブラリチャートとして実装、named templateで共通設定を定義し各チャートから呼び出す
13 組み込みセキュリティ : Secure by Default Kubernetes基盤における開発者体験とセキュリティの両⽴ レイヤー 仕組み 内容
Namespace Pod Security Admission restricted enforce Network NetworkPolicy 同一NS + Istio + Datadog のみ許可 Pod SecurityContext 非root, readOnlyFS, drop ALL, seccomp セキュリティ設定を「忘れる」ことが構造的に起きない 必要に応じてオーバーライドは可能(権限的に厳しい場合など) 3層のセキュリティが全Podに自動適用
Kubernetes基盤における開発者体験とセキュリティの両⽴ 組み込みセキュリティ : Secure by Default 14
Kubernetes基盤における開発者体験とセキュリティの両⽴ 15 statelessの最小構成のサンプル SecurityContext, NetworkPolicy, Datadog, TopologySpread ... 全て自動適用 Deployment,
Service, Pdbなどの必要リソースを生成 開発者が書く YAMLはこれだけ
Kubernetes基盤における開発者体験とセキュリティの両⽴ 16 品質担保 (1): なぜ独自のスキーマ管理を選んだのか Helmの既存プラグインの課題 • アノテーションやコメントの構造が使いにくかった • description
や additionalProperties の表現力が不足している values.schemaをyamlにして管理 • JSONよりはマシ(誰かアイディアあったら教えて) • additionalProperties: false で開発者管理キーを厳密に定義 • SRE管理はtype: objectのみといった調整が出来る
Kubernetes基盤における開発者体験とセキュリティの両⽴ 17 品質担保 (2): SSOT からの自動生成パイプライン • 開発者はこのテンプレートをコピーして値を 埋めるだけ •
required / optional がコメントで明示 → 何 を書くべきか迷わない • CIで make generate + git diff --exit-code → 生成物の同期漏れを自動検出
18 品質担保 (3): templatesリポジトリの CI Kubernetes基盤における開発者体験とセキュリティの両⽴ テストパターン 内容 Full 全機能ONでリソース数・フィールド値を検証
Minimal 最小構成でオプション機能が含まれないことを確認 Split Values 分割values と 結合values の出力一致を検証 CIパイプライン( PR時に自動実行) 1. make generate + git diff → 生成物の同期チェック 2. Helm テスト(Full / Minimal / Split) 3. kubeconform → K8s/CRDスキーマ適合性チェック 4. Trivy → セキュリティスキャン(CRITICAL/HIGH) 5. 失敗時 → Slack 通知 チャートのテスト( 3パターン)
19 品質担保 (4): servicesリポジトリの CI + ローカル検証 Kubernetes基盤における開発者体験とセキュリティの両⽴ CIパイプライン( PR時に自動実行)
1. 変更検出 → 影響するサービス×環境を自動特定 2. helm lint + template + kubeconform + trivy を並列バリデーション 3. 失敗時 → PRコメント + Slack 通知(サービスチームへ) 開発者のローカル検証 • scripts/validate.sh <service> <env> [component] • helm lint → template → kubeconform → trivy を一括実行 • CIと同じ検証をローカルで再現できる
20 品質担保: 2つのリポジトリを横断する CI Kubernetes基盤における開発者体験とセキュリティの両⽴
21 まとめ Kubernetes基盤における開発者体験とセキュリティの両⽴ 開発者体験 セキュリティ アプリ設定だけ書けばデプロイ可能 全Pod に Secure by
Default チャートを組み合わせるだけで構成完了 PSA + SecurityContext + NetworkPolicy の3層防御 ローカルで事前検証 → 安心してPR セキュリティを「忘れる」ことが構造的に不可能 共通Helmチャートで実現したこと レイヤー 仕組み スキーマ 全機能ONでリソース数・フィールド値を検証 テスト + 検証 Full / Minimal / Split テスト + kubeconform + Trivy をCI両方で実行 CI templates / services 両リポジトリで独立したパイプライン SSOT + CI による品質担保
22
23