はじめに
HelmとはKubernetes上にてリソース定義群をパッケージとして管理するツールですが、本記事ではWindows環境(Cygwin)にてパッケージを利用したデプロイを実施する流れについて初学者向けに分かりやすく記載しました。
環境情報
- kubectl : v1.19.3.
- GNU bash : version 4.4... x86_64-unknown-cygwin)
- helm : v3.5.3
事前準備
下記リンクからWindows用のhelmクライアントツールをインストールします。
zipを展開するとhelm.exeが格納されているので
$ ls -ltr ..helm-v3.5.3-windows-amd64/windows-amd64/ total 40004 -rwx------+ 1 .. helm.exe -rwx------+ 1 .. LICENSE -rwx------+ 1 .. README.md
同ファイルをパスが通る場所に移動させます。
$ cp ..helm.exe /usr/local/bin/ $ which helm /usr/local/bin/helm
以下からはチャート(ソース定義群)をhelmコマンドから取得しに行きます。
リポジトリの追加
Helmでは「リポジトリ」と呼ばれるチャートを集めている場所があるので今回は以下のリポジトリを例にして追加しました。
$ helm repo add ibm-community-charts https://raw.githubusercontent.com/IBM/charts/master/repo/community "ibm-community-charts" has been added to your repositories
追加されると以下でリポジトリが表示でき
$ helm repo list NAME URL ibm-community-charts https://raw.githubusercontent.com/IBM/charts/master/repo/community
同リポジトリに存在するチャートは以下で確認できます。
$ helm search repo ibm-community-charts NAME CHART VERSION APP VERSION DESCRIPTION ... ibm-community-charts/ibm-tomcat-dev 0.1.0 1.0 Apache Tomcat is an open-source Java Servlet C o... ibm-community-charts/ibm-tomee-dev 0.1.0 1.0 The Tomcat with added EE features - TomEE ...
チャートのインストール
以下でhogeというリリース名でtomcatのチャートをインストールしてみます。
$ helm install hoge ibm-community-charts/ibm-tomcat-dev
すると標準出力には以下が表示され
NAME: hoge LAST DEPLOYED: xx NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: 1. Get the application URL by running these commands: export NODE_PORT=$(kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services hoge-ibm-tomcat-dev) export NODE_IP=$(kubectl get nodes --namespace default -o jsonpath="{.items[0].status.addresses[0].address}") echo http://$NODE_IP:$NODE_PORT
確かに名前空間defaultにデプロイメントが作成されています。
$ kubectl get pod NAME READY STATUS RESTARTS AGE hoge-ibm-tomcat-dev-f48d7b46d-wrmdr 0/1 ...
また、これらがどのような設定でリソース定義されているかは以下で確認できます。
$ helm show values ibm-community-charts/ibm-tomcat-dev
同チャートのリソースが不要になればhelm uninstall
で削除できます。
$ helm list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION hoge default 1 ... deployed ibm-tomcat-dev-0.1.0 1.0 $ helm uninstall hoge release "hoge" uninstalled $ helm list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
終わりに
今回はチャートのリソース定義をそのまま適用しましたがvalues.yamlを利用することで Kustomizeのように任意の変更を加えてデプロイすることも可能ですので興味がある方はそちらも調べてみてください。
以上、Helmの入門記事でした。