Edited at

Kubernetes Meetup Tokyo #21 - Cloud Native CI/CD 参加メモ


はじめに

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も試してみたいですね。


関連レポート