kubestronautへの道 ~CKAD編 その6~

tech article

本記事の内容

前回に引き続いてUdemyのKubernetes Certified Application Developer (CKAD) with Testsというコースを受講していた中で気になったところをメモしていきます。

今回は以下のセクションに基づいています

#10 Helm Fundamental

勉強記

Helm

Helm アーキテクチャ
Helm アーキテクチャの概要を説明します。

Helm は、「 Kubernetes 用に構築されたソフトウェアを検索、共有、使用するための最良の方法」と、公式サイトがランディングページで言っている。

実際にアプリを動かそうとすると、deployment.yaml, pb.yaml, pvc.yaml…などなど、かなりたくさんのファイルを作成してapplyする必要がある。
また、別環境を構築する際にこまごました設定を変更して立ち上げたいときは、それぞれのマニフェストファイルを編集し、さらにそれぞれapplyする必要がある。
この問題の解決策として、values.yamlという、必要なマニフェストファイルを1つのマニフェストファイルにまとめ、さらにそれを扱いやすいようにラッピングしているツールがhelmである。

helmはchartという単位で扱う。
以下がchartの例。詳細は公式を参照。

wordpress/
  Chart.yaml          # A YAML file containing information about the chart
  LICENSE             # OPTIONAL: A plain text file containing the license for the chart
  README.md           # OPTIONAL: A human-readable README file
  values.yaml         # The default configuration values for this chart
  values.schema.json  # OPTIONAL: A JSON Schema for imposing a structure on the values.yaml file
  charts/             # A directory containing any charts upon which this chart depends.
  crds/               # Custom Resource Definitions
  templates/          # A directory of templates that, when combined with values,
                      # will generate valid Kubernetes manifest files.
  templates/NOTES.txt # OPTIONAL: A plain text file containing short usage notes

templatesディレクトリ配下にテンプレートとなるマニフェストファイルが配置されている。
そこで使用する変数のデフォルト値がvalues.yamlに記載されている。
このvalues.yamlに記載されている値を直接編集するなり、helmコマンドで編集するなりして、理想の形へカスタマイズしていく。

Installing Helm
Learn how to install and get running with Helm.

↑はhelmのインストールコマンド。
当該講座の練習問題ではインストールする問題が出題されていた。
Kubernetesの公式ページにないから試験でインストールさせることはさすがになさそう。さすがにラビー。

helmコマンド

他の様々なコマンドと同様、-hをつければ使い方の詳細を確認できるが、ここで主要なサブコマンドを紹介する。

helm search

DockerにおけるDockerHubのように、HelmにもArtifactHubというchartが保存されているchartレポジトリが存在する。
ArtifactHub以外にも様々なchartレポジトリが存在する。

そのレポジトリを検索するのに使うコマンド。
helm search <repository name> <keyword>で検索できる。

ArtifactHubはデフォルトで使える特別なchartレポジトリっぽくて、はじめから
helm search hub <key word>で検索が可能。

他のchartレポジトリを検索したい場合は、次に紹介するコマンドを用いてあらかじめchartレポジトリを登録しておくと、
helm search repo <keyword>で追加したレポジトリ内での検索が可能となる。

helm repo

chartレポジトリに対して操作したいときに使うコマンド。

例えば、chartレポジトリを追加したい場合は、
helm repo add <repository name> <repository URL>
のようなコマンドを実行する。

helm install

helm install <release name> <chart name>で、chartレポジトリからchartをインストールする。

release nameは、利用者が名づけるインストールしたchartの名前。
コマンドを打ったディレクトリの直下に<release name>ディレクトリが作成されて(wordpressと指定したらなwordpressディレクトリ)、chartが作成される。(と思うけど自信がない。)
→どうやら違っていて、クラスターにリリースとしてリソースをデプロイする(これをインストールと呼んでいるっぽい)けど、マニフェストファイルとかはローカルに保存しないっぽい。
helm installコマンド実行時のオプションとかの情報だけどっかに保存してるんやろなあ。
更新したいときはhelm upgradeとかを使って更新するっぽい。曖昧です。

release nameを変えると、同じchart nameのchartをもとにして作られたリリースでも別のリリースとして扱われる。

helm pull

chartをcloneしたいときはこのコマンドを使う。
デフォルトではアーカイブ形式でダウンロードされるため、大抵は–untarコマンドを使ってダウンロードすることになる。

で、ローカルに存在するchartからクラスターへデプロイ(helm用語で言うとインストール)するときは
helm install <releas name> <chart directory>とする。



タイトルとURLをコピーしました