Member-only story

HelmとGitOpsの連携(前半)

gavin.zhou
Nov 3, 2022

--

今回は、GitOpsに関しての記事を書きます。長い記事なので、前半と後半の2つに分けて投稿いたします。今回は前半です。この投稿では、Kubernetesのパッケージ管理に使用され、テンプレート化も提供するツールであるHelmについて詳しく述べたいと思います。Helmは、Kubernetesアプリケーションのデプロイをサポートするユーティリティを提供します。

HelmのチャートがKubernetesのマニフェストにどのようにマッピングされているかをより理解するために、以下、GitOpsを使用した場合と使用しない場合のHelmの使用方法について詳しく説明します。

Kubernetesとは何か?

Kubernetesはコンテナ用のオーケストレーターで、コンテナのスケジューリング、デプロイメント、ネットワーク、スケーリング、ヘルスモニタリングを自動化することができます。

次のものの利用を増やしたため、Kubernetesが必要になりました。

- マイクロサービス

- コンテナ

これをスクリプトや自作ツールで管理するのは難しく、Kubernetesのようなオーケストレーション技術が必要になりました。これがあればスケーラビリティ、ディザスタリカバリ、ダウンタイムの低減といった機能が利用できます。

Helmとは?

Helmは Kubernetes 用のパッケージマネージャです。KubernetesアプリケーションのHelmチャートを持つYAMLファイルのコレクションをパッケージングし、Helmリポジトリで配布できるようにするための便利なものです。

Kubernetesのマニフェストのメンテナンスは時間がかかって面倒なので、Helmが役に立つわけです!

Helm Charts

Helm Chartsは、Kubernetesアプリケーションのデプロイ可能なユニットです。これらのチャートは、ディレクトリ内のファイルの集合体です。このディレクトリがHelmチャートの名前で、自己記述ファイル、YAMLファイル、1つ以上のKubernetesマニフェストで構成されています。Helmチャートは通常、Goテンプレート言語で記述されます。チャートはこのようなファイルとして作成され、関連するKubernetesリソースのセットを記述します。以下は、Helmチャートのディレクトリとそのレイアウトの例です。

--

--

No responses yet