Member-only story
Google KubernetesエンジンでHELMを始める
この入門ガイドでは、Helmの基本事項を取り上げ、Google Kubernetes Engine上でマイクロサービスのデプロイを実行するためにHelmを使用する方法を解説しています。Helmとは、実際には船のハンドルのようなもので、船とその上に置かれたコンテナに方向性を与えるものです。KubernetesのHelmも実は同じことをしています。それでは、どのように実現されているのか見てみましょう。
Helm:
現実世界のシナリオでは、大規模で複数のマイクロサービスベースのアプリケーションをKubernetes上にデプロイして維持すると、複雑になることがあります。単一のアプリケーションのセットアップには、ポッド、サービス、デプロイメント、レプリカセットなど、複数のKubernetesリソースを作成する必要があります。それぞれに詳しいYAMLマニフェストファイルを書く必要があります。このすべてのオーバーヘッドは、Helmを使用することで回避できます。HelmはKubernetesのパッケージマネージャとして機能し、プラットフォームのオペレータがアプリケーションやサービスをKubernetesクラスタに簡単にパッケージ化、コンフィギュア、デプロイできるようにします。
Components of Helm:
1. Helm Charts:
前述の通り、Helm は Linux システムにおける apt/yum のようなパッケージマネージャの役割を果たします。これを実現するために、Helmはチャートと呼ばれるパッケージフォーマットを使用しています。チャートとは、関連するKubernetesリソースのセットを記述したシンプルなファイルの集合体です。単一のチャートはポッドのデプロイに使われることがありますし、HTTPサーバ、データベース、キャッシュなどを含む完全なWebアプリケーションスタックのような複雑なものにも使われることがあります。
2. Values Files:
Helmのビルドインオブジェクトの一つにValuesがあります。このオブジェクトは、チャートに渡された値へのアクセスできるようにします。このオブジェクトの内容は、’values.yaml’ファイルという別のファイルのようなソースから得られます。これらの values ファイルには、デプロイメントの名前、レプリカの数、メタデータなどの情報が含まれています。これを、ランタイム時にKubernetesのマニフェストファイルから参照されるキーと値を持つディクショナリと考えてください。