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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ken Kato
November 20, 2024
0
310
ウォンテッドリーにおけるk8sマニフェストの管理方法
Ken Kato
November 20, 2024
Tweet
Share
More Decks by Ken Kato
See All by Ken Kato
Blue/Green Deployment を用いた PostgreSQL のメジャーバージョンアップ
kkato1
0
120
Datadog RUMを導入するまで
kkato1
0
78
初めてのPostgreSQLメジャーバージョンアップ
kkato1
0
1.8k
ウォンテッドリーのマイクロサービス運用・開発を加速する kube
kkato1
0
300
PostgreSQLのVACUUMとは
kkato1
3
3.4k
論理レプリケーションを使ったDB統合
kkato1
0
1.2k
DNSルックアップの回数制限でハマった話
kkato1
1
680
入社後初めてのタスクでk8sアップグレードした話.pdf
kkato1
1
840
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
Music & Morning Musume
bryan
47
7.1k
WCS-LA-2024
lcolladotor
0
500
Visualization
eitanlees
150
17k
Agile that works and the tools we love
rasmusluckow
331
21k
The Language of Interfaces
destraynor
162
26k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
450
Test your architecture with Archunit
thirion
1
2.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
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を採用してい る • 運用面で課題があり、独自の仕組みを整えている
◦ テンプレート化 ◦ 一括変更 • 開発者が扱いやすいように工夫をしたことで、セルフサービス化が進んだ