参考と引用はじめにfreeeではKubernetesを本番環境にも利用しており、そのマニフェスト管理にはhelm&helmfileを使っています。便利なmoduleなんですが、ちょっと導入障壁が高いのかなと思ったりします。2019先日こんなつぶやきをしたところ、脳内に「お前がやるんだよ!」という言葉が響いてきたので書いていきます。Calendarは会社の公式ブログでやることを前日に知ったのでなんかちょっと他と毛並みが違かったらすいません)helmについて本記事はhelmfileの入門を目指すものですが、一応helmについても少しだけ触れておきます。managerと呼ばれています。KuberntesのManifestをCharts(設計図)としてまとめて管理することのできるものになっています。Projectに位置しています。helmの大きな3つの特徴だけ説明します。Chartがpackageになっていること。Chartの中にはK8sで動くリソース定義が入っています。fileに似ているものと考えられます。ChartのためのRepositoryが存在します。Chartを集め、共有するためです。これもAptやYumのrepositoryを想像するとわかりやすいかもしれません最後はK8s上で動くchartのinstanceに相当するReleaseです。heleはChartをReleaseという単位でデプロイしていくものになります。helmfile公式のinstallationを参考に簡単にinstallできます。chartをより宣言的にデプロイするためのものです。helmfileを使うことで以下のようなことができますChartやReleaseのための変数を宣言するファイルをきれいなディレクトリ構造に収めバージョン管理すること。それによる再現性の確保Chartの再利用性をより高める変更に対してCI/CDを使いやすくなるここからは実際にデプロイする際のhelmとhelmfileの差について解説していきます。v3.0.0が出たんですが今回はv2.14.3で以下を実行しています。MacのKubernetesを利用しており、clientもserverもversionは1.14です。Clusterにデプロイするところで違いをみていきます。synchelmのときと同様に適当なコンテナを立ててcurlすると200が返ってきます。fileを呼ぶことがコマンドベースで表現されていますが、helmfileでは宣言的に表現されています。実際の本番運用にはたくさんの変数を利用することを考えると、これは大きな利点になりますさらなるhelmfileの利点ここまで読んでいただいて、helmfileの使い方はわかったかと思います。helmfile-envoy-stagingとなってデプロイされます。このようにhelmfile自体にもchartにも変数を渡すことができ便利です。ここまで紹介してきたような利点を使いさらにCI/CDと組み合わすことで、複数環境/複数clusterに対応可能な柔軟なマニフェスト管理を行えます。SREの河村(at-k)です。Controller...freeeでSREをしている河村(at-k)です。参加しましたプロダクトカンパニーの技術戦略2019年、freeeのアクセシビリティを振り返るCEOが開発合宿で6年半ぶりにコードを書いてみたfreeeの脆弱性診断と管理のこれから月別アーカイブ検索スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。