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
ウォンテッドリーにおけるk8sマニフェストの管理方法
Search
Ken Kato
November 20, 2024
0
210
ウォンテッドリーにおけるk8sマニフェストの管理方法
Ken Kato
November 20, 2024
Tweet
Share
More Decks by Ken Kato
See All by Ken Kato
ウォンテッドリーのマイクロサービス運用・開発を加速する kube
kkato1
0
94
PostgreSQLのVACUUMとは
kkato1
3
3.1k
論理レプリケーションを使ったDB統合
kkato1
0
660
DNSルックアップの回数制限でハマった話
kkato1
1
370
入社後初めてのタスクでk8sアップグレードした話.pdf
kkato1
1
680
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
How to train your dragon (web standard)
notwaldorf
91
5.9k
For a Future-Friendly Web
brad_frost
176
9.6k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
Statistics for Hackers
jakevdp
797
220k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
51k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
A Philosophy of Restraint
colly
203
16k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Transcript
© 2024 Wantedly, Inc. ウォンテッドリーにおける k8sマニフェストの管理方法 Wantedly Tech Night ~サービスを支えるインフラ
/SRE技術~ Nov. 20 2024 - Ken Kato
© 2024 Wantedly, Inc. 自己紹介 加藤 健 Infra Squad 2024年1月
中途入社 X: @kkato25
© 2024 Wantedly, Inc. 目次 • ウォンテッドリーが選んだ管理方法 • 運用における課題 •
振り返り
© 2024 Wantedly, Inc. ウォンテッドリーが選んだ管理方法
© 2024 Wantedly, Inc. 前提 • ウォンテッドリーのシステムはk8sクラスタ上で動いている
© 2024 Wantedly, Inc. monorepo と polyrepo k8sマニフェストをGit管理する時、その管理方法は2種類に大別される • monorepo:単一リポジトリで管理する
• polyrepo:アプリケーション毎のリポジトリで管理する monorepo polyrepo
© 2024 Wantedly, Inc. monorepo • メリット ◦ フォーマットを統一しやすい ◦
一括変更がしやすい • デメリット ◦ アクセス制御が複雑
© 2024 Wantedly, Inc. polyrepo • メリット ◦ 柔軟なアクセス制御 •
デメリット ◦ フォーマットを統一しにくい ◦ 一括変更がしにくい
© 2024 Wantedly, Inc. ウォンテッドリーが選んだ管理方法 ウォンテッドリーでは「polyrepo」を採用
© 2024 Wantedly, Inc. Why セルフサービス化を推進したい セルフサービス化:開発者自身で必要なインフラのリソースを作成、管理すること • アプリケーションコードと同じレポジトリで k8sマニフェストを管理することにより、イン
フラではなく開発チームの管轄となる • インフラがボトルネックにならず、開発が高速に回るようにしたい
© 2024 Wantedly, Inc. How • アプリケーションコードと同じレポジトリでk8sマニフェストを管理する • kubernetesというディレクトリを切って、環境毎にk8sマニフェストを置く People
Visit Engagement ├── app ├── bin ├── config └── kubernetes ├── prod ├── qa └── sandbox ├── app ├── bin ├── config └── kubernetes ├── prod ├── qa └── sandbox ├── app ├── bin ├── config └── kubernetes ├── prod ├── qa └── sandbox
© 2024 Wantedly, Inc. 運用における課題
© 2024 Wantedly, Inc. 課題① フォーマットが統一されていない • アプリケーション毎、環境毎の差分が分かりにくい • ミスに気づきづらい
• 認知負荷が高い
© 2024 Wantedly, Inc. 対策① テンプレート化する • kube generateコマンドという独自CLIツールを作成し、k8sマニフェストを自動生 成できるようにした
• 自動生成されていないk8sマニフェストは基本的にCIではじかれる % cat kube-generate.yaml generates: - namespace: clusters: - sandbox % kube generate --update Generate manifests by using kube-generate.yaml kubernetes/sandbox/namespace.yaml
© 2024 Wantedly, Inc. 課題② 一括変更が難しい • レポジトリをまたいだ変更が難しい ◦ k8s
APIの廃止など
© 2024 Wantedly, Inc. 対策② 一括変更できる仕組みを設ける • kube generateコマンドの元となるテンプレートを変更する •
日次でGitHub Actionsのworkflowを実行し、kube generateコマンドを実行 する
© 2024 Wantedly, Inc. 振り返り
© 2024 Wantedly, Inc. セルフサービス化は進んだのか • セルフサービス化は進んだ ◦ 開発者自身でk8sマニフェストを生成している
© 2024 Wantedly, Inc. polyrepoにしていたことでセルフサービス化が進んだのか • polyrepoがよかった点 ◦ k8sマニフェストが開発チームの管轄になる ◦
開発チーム内でレビューが完結する • polyrepo以外でよかった点 ◦ k8sマニフェストを自動生成できるようになり、開発者の学習コストが減った 開発者が扱いやすいような工夫をすれば、管理方法に関わらずセルフサービス化を推 進することは可能
© 2024 Wantedly, Inc. まとめ • ウォンテッドリーではセルフサービス化を推進するために、polyrepoを採用してい る • 運用面で課題があり、独自の仕組みを整えている
◦ テンプレート化 ◦ 一括変更 • 開発者が扱いやすいように工夫をしたことで、セルフサービス化が進んだ