Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ウォンテッドリーにおけるk8sマニフェストの管理方法

Ken Kato
November 20, 2024
150

 ウォンテッドリーにおけるk8sマニフェストの管理方法

Ken Kato

November 20, 2024
Tweet

Transcript

  1. © 2024 Wantedly, Inc. monorepo • メリット ◦ フォーマットを統一しやすい ◦

    一括変更がしやすい • デメリット ◦ アクセス制御が複雑
  2. © 2024 Wantedly, Inc. polyrepo • メリット ◦ 柔軟なアクセス制御 •

    デメリット ◦ フォーマットを統一しにくい ◦ 一括変更がしにくい
  3. © 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
  4. © 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
  5. © 2024 Wantedly, Inc. polyrepoにしていたことでセルフサービス化が進んだのか • polyrepoがよかった点 ◦ k8sマニフェストが開発チームの管轄になる ◦

    開発チーム内でレビューが完結する • polyrepo以外でよかった点 ◦ k8sマニフェストを自動生成できるようになり、開発者の学習コストが減った 開発者が扱いやすいような工夫をすれば、管理方法に関わらずセルフサービス化を推 進することは可能
  6. © 2024 Wantedly, Inc. まとめ • ウォンテッドリーではセルフサービス化を推進するために、polyrepoを採用してい る • 運用面で課題があり、独自の仕組みを整えている

    ◦ テンプレート化 ◦ 一括変更 • 開発者が扱いやすいように工夫をしたことで、セルフサービス化が進んだ