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 における宣言的なリソースデリバリーの実践
Search
Shota Suzuki
June 11, 2021
Technology
560
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kubernetes における宣言的なリソースデリバリーの実践
Shota Suzuki
June 11, 2021
More Decks by Shota Suzuki
See All by Shota Suzuki
Amazon EKS Auto ModeでKubernetesの運用をシンプルにする
sshota0809
1
610
Amazon EKS Auto ModeでKubernetesの運用をシンプルにする
sshota0809
0
470
ネットワーク視点で学ぶ Amazon EKS クラスタのスケーラビリティ
sshota0809
2
2.1k
脱・塩漬け!サステナブルなKubernetesエコシステムの管理をしていくために
sshota0809
2
850
ユーザーの理想からはじめるサービスの信頼性定義
sshota0809
2
680
Google Cloud Anthos Day 登壇資料
sshota0809
0
140
Helm / ArgoCD で実現する Kubernetes における宣言的リソースデリバリーの実践
sshota0809
3
3.8k
【SRE NEXT 2020】冗長性と生産性を高めるハイブリッドクラウド環境の実現
sshota0809
2
7.5k
VXLANを使ったプライベートクラウドVMマイグレーションの実現
sshota0809
0
320
Other Decks in Technology
See All in Technology
AI時代における最適なQA組織の作り方
ymty
3
300
そこにあるから地図ができる~位置を示す"モノ"を愉しむ~ - Interface 2026年6月号GPS特集オフ会 / interface_202606_GPS_offline
sakaik
1
160
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
200
AIDLC_ヤフーショッピングの取り組み
lycorptech_jp
PRO
0
220
フロントエンドイチゲキ実装 ― Figmaデザインと画面設計書からAIに実装・テストを書かせるための”下ごしらえ” / 20260627 Yusuke Mazuka
shift_evolve
PRO
0
100
Microsoft のサポートとフィードバック総まとめ
murachiakira
PRO
0
130
Multi-Agent並列開発を 安全に回すための技術 / Technology for Safely Multi-Agent Parallel Development
tooppoo
0
230
データレイクの「見えない問題」を可視化する
sansantech
PRO
1
250
Terraform 101 (初心者向け) 資料
shuadachi
0
140
『AIに負けない』より『AIと遊ぶ』」〜ワクワクが最強のテスト・QA学習戦略_公開用
odan611
1
250
トークン最適化のためのユーザーストーリー分析 / User Story Analysis for Token Optimization
oomatomo
0
150
AIをフル活用してオンコール機能のプロトタイプを2日で作った話 / Building an AI-Powered On-Call Prototype in Just Two Days
nari_ex
0
160
Featured
See All Featured
The Invisible Side of Design
smashingmag
301
52k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
630
The agentic SEO stack - context over prompts
schlessera
0
830
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
210
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
160
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Producing Creativity
orderedlist
PRO
348
40k
Exploring anti-patterns in Rails
aemeredith
3
430
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
860
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Transcript
スポンサーLT Kubernetes における宣言的な リソースデリバリーの実践 株式会社ユーザベース 鈴木祥太
自己紹介/会社紹介 鈴木 祥太 (@sshota0809) • SRE チーム所属 ◦ B2B 向け
SaaS Product を横串で担当 • 最近 Kubernetes の Gateway API に興味を持っています 株式会社ユーザベース • 「経済情報で、世界を変える」のミッション 提供サービス: 経済情報 プラット フォーム ソーシャル 経済 メディア スタートアップ情報 プラットフォーム B2Bマーケティング プラットフォーム etc...
弊社プロダクトの CD における課題 dev#1 dev#2 prd#1 prd#2 ・・・ ・・・ templateファイル
(Deployment/etc...) 変数ファイル (e2e/dev/prd) envsubst Kubernetes のコンテキスト情報 をパイプラインの中で選択し kubectl コマンドによりデプロイ 1. お手製シェルによるマニフェスト生成 • 変数ファイルに環境ごとの変数を設定 • envsubst でテンプレートファイルに変数を埋め込んで マニフェスト生成 ◦ envsubst はシンプルだがやれることが限られる 2. Kubernetes コンテキストを意識するデプロイ • どのクラスタにデプロイするか(どのコンテキストを使う か)はパイプラインにパラメータとしてユーザが渡す ◦ 潜在的なオペミスのリスク ◦ Jenkins サーバ上でコンテキストを管理する必要性 3. リソースのデプロイが手続き的 • パイプライン内部で kubectl コマンドを利用してデプロイ ◦ どのクラスタにどのアプリがデプロイされているの かは宣言的に管理されていない ▪ 規模が大きくなるにつれて運用が辛くなる
envsubst によるマニフェスト作成 ... export HOST=hoge ... apiVersion: networking.istio.io/v1alpha3 kind: VirtualService
metadata: name: test namespace: test spec: hosts: - ${HOST}.com ... apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: test namespace: test spec: hosts: - hoge.com ... = +
envsubst によるマニフェスト生成 + kubectl によるデプロイ helm によるマニフェスト生成 + ArgoCD による
GitOps
GitOps による宣言的なリソースデリバリー dev#1 dev#2 prd#1 prd#2 ・・・ ・・・ templateファイル (Deployment/etc...)
変数ファイル (e2e/dev/prd) 1. helm によるテンプレート管理 • リッチなテンプレートエンジンによる柔軟性の高さ 2. Kubernetes コンテキスト情報をパイプラインから排除 • どのクラスタにリソースがデプロイされるか ArgoCD が保持 ◦ ArgoCD の設定ファイル自身も CRD によって宣言的に 管理される ◦ Kubernetes のコンテキスト情報を管理する必要無し 3. リソースのデプロイが宣言的 • GitOps による Single Source of Truth の実現 ◦ クラスタにどのようなリソースがデプロイされている かすべてリポジトリ内に定義されている ArgoCD が Deploy された クラスタ
まとめ 1. envsubst を利用した独自のマニフェスト生成 + 手続き的なデリバリーに課題感 2. helm + ArgoCD
を利用した GitOps 化を実施 3. 柔軟性の高いテンプレートエンジン + 宣言的なデリバリーを実現
宣伝 Cloud Native Lounge#1/#2 に弊社メンバーが登壇します ぜひ参加お願い致します! https://forkwell.connpass.com/event/215187/