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
200
ウォンテッドリーにおけるk8sマニフェストの管理方法
Ken Kato
November 20, 2024
Tweet
Share
More Decks by Ken Kato
See All by Ken Kato
PostgreSQLのVACUUMとは
kkato1
3
3k
論理レプリケーションを使ったDB統合
kkato1
0
620
DNSルックアップの回数制限でハマった話
kkato1
1
360
入社後初めてのタスクでk8sアップグレードした話.pdf
kkato1
1
670
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
Adopting Sorbet at Scale
ufuk
74
9.2k
Docker and Python
trallard
44
3.3k
Practical Orchestrator
shlominoach
186
10k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
Music & Morning Musume
bryan
46
6.3k
The World Runs on Bad Software
bkeepers
PRO
67
11k
A better future with KSS
kneath
238
17k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
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を採用してい る • 運用面で課題があり、独自の仕組みを整えている
◦ テンプレート化 ◦ 一括変更 • 開発者が扱いやすいように工夫をしたことで、セルフサービス化が進んだ