Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ウォンテッドリーにおけるk8sマニフェストの管理方法
Search
Ken Kato
November 20, 2024
0
290
ウォンテッドリーにおけるk8sマニフェストの管理方法
Ken Kato
November 20, 2024
Tweet
Share
More Decks by Ken Kato
See All by Ken Kato
初めてのPostgreSQLメジャーバージョンアップ
kkato1
0
1.3k
ウォンテッドリーのマイクロサービス運用・開発を加速する kube
kkato1
0
260
PostgreSQLのVACUUMとは
kkato1
3
3.4k
論理レプリケーションを使ったDB統合
kkato1
0
1k
DNSルックアップの回数制限でハマった話
kkato1
1
630
入社後初めてのタスクでk8sアップグレードした話.pdf
kkato1
1
800
Featured
See All Featured
Balancing Empowerment & Direction
lara
5
780
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Site-Speed That Sticks
csswizardry
13
990
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
80
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Raft: Consensus for Rubyists
vanstee
140
7.2k
Side Projects
sachag
455
43k
How to Ace a Technical Interview
jacobian
280
24k
Making Projects Easy
brettharned
120
6.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
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を採用してい る • 運用面で課題があり、独自の仕組みを整えている
◦ テンプレート化 ◦ 一括変更 • 開発者が扱いやすいように工夫をしたことで、セルフサービス化が進んだ