はじめに
Kubernetes Meetup Tokyo #21 - Cloud Native CI/CD - connpassに参加してきました。
今回のテーマはCI/CDです。
セッション
1. Argoプロジェクト最新動向
資料:https://www.slideshare.net/DaisukeTaniwaki/20190725-argo-project-latest-news
登壇者:DAISUKE TANIWAKI (@dtaniwaki), Preferred Networks, Inc.
Argoプロジェクトの概要や仕組みから最新動向まで紹介がありました。
ArgoプロジェクトとはOSSのKubernetes関連のツール群をサポートするプロジェクトです。
以下のツールがサポートされています。
- Workflow
- Kubernetesネイティブのワークフローエンジン
- Events
- Kubernetesのためのイベントベースの依存管理ツール
- Slackにこのメッセージが来たらk8sクラスタを作るみたいなことができる
- CD
- GitOpsのためのKubernetesネイティブCDツール
- コミットに合わせてデプロイやロールバックができる
- UIでInit ContainerやSide Carの状態も確認できる
- Rollouts
- BlueGreenやCanaryなどのストラテジーでPodをデプロイできるOperator
- ストラテジー以外はほぼDeploymentsと変わらない
メインで紹介されていたArgo CDはGitOpsとの相性やUIの使い勝手が良さそうだと感じました。
Preferred Networksでも導入予定のようです。
2. GitOpsでも秘匿情報をバッチリ扱う⽅法、SealedSecretとは?
資料:https://speakerdeck.com/amaya382/how-to-manage-credentials-on-gitops
登壇者:Ryuichi Ito (@amaya382), SAKURA internet Inc.
GitOpsでは、Gitリポジトリにmanifestファイルと一緒に秘匿情報(Secretリソース)も含めてしまいます。
SealedSecretsという仕組みを使うことでGitOpsでも秘匿情報を扱えるようになります。
使い方はkubesealというCLIでSecretsリソースを暗号化するとSealedSecretsというCRDが作られるので、
そのファイルをGitレポジトリにpushするだけ。
CDツールで自動的にSecretsリソースに復号化されるので、PodからはSecretsとして参照します。
GitOpsに特化しているためシンプルで扱いやすい反面、
helmやkustomizeなどのテンプレートエンジンとの相性が悪いという欠点もあります。
helm secretsやkustomize secretsといったテンプレートエンジンに特化したツールもあるので、
そちらも検討の余地がありそうです。
3. コロプラが実践しているSpinnakerを用いたデプロイ戦略
資料:https://speakerdeck.com/govargo/deploy-strategy-with-spinnaker-at-colopl
登壇者:Kenta Iso (@go_vargo), COLOPL, Inc
コロプラでのmanifest管理方法やSpinnakerでの運用方法を紹介。
Spinnakerにはhelmでインストールする方法とhalyardでインストールする方法がありますが、
コロプラではカスタマイズをするためにhalyardでインストール。
パラメータのチューニングや、Clouddriver・EchoのHA化、RedisのMaster/Slave構成を行っています。
おわりに
GitOps関連の発表が多く、課題や周辺ツール、ワークアラウンドまで非常に参考になりました。
以前はCDツールといえばSpinnakerという印象でしたが、Argo CDも試してみたいですね。