[初学者向け]Helmを学ぼう!~Nginxをインストールする~

こんにちは。KOUKIです。

とある企業でWebエンジニアをやっています。

最近はDevOpsが流行ってきており、Kubernetesなどのコンテナオーケストレーションツールが流行ってきてます(もう何年も前から!)。

私もKubernetesに触り始めており、その過程でHelmを知りました。

本記事では、初学者向け(というか私もそうなのですが)にわかりやすくHelmを解説していこうと思います。

Helmとは

Helmは、Kubernetes用のパッケージマネージャーです。

Linuxのyum, Pythonのpipなどをイメージしてもらえればわかりやすいと思います。

Kubernetsのリソース(ServiceやDeploymentなど)をチャートで管理し、クラスタ内へのinstall/uninstallなどの作業を簡素化させたり、バージョンの管理、共有、公開を簡単にしてくれるようです。ちなみにGo言語で実装されています(やったね!)。

言葉だけの説明だとイメージが沸きにくいと思うので、ハンズオン形式で説明していきたいと思います。

Helmのインストール

まずは、公式サイトを確認しながらHelmをローカルにインストールしましょう。

私は、Macなのでbrewでインストールします。

HelmのVersionは3です。

Minikubeの用意

Minikubeを使ってKubernetsクラスタを構築したいと思います。

公式の説明を参考に、セットアップしてください。

私は、Macなのでbrewでインストールしてます。

以下の記事も参考にしてください。

Nginx Chart

繰り返しになりますが、Helmはチャート単位でリソースを管理します。

NginxのChartを通じて、作業のやり方を学んでいきましょう。

chart repositoryを追加する

NginxのChartをクラスターにインストールするためには、まずはレポジトリをインストールする必要があります。

その為に、Artifact HubからNginxで検索をかけて該当するリポジトリを探します。

nginxのリポジトリ

リポジトリを確認できたら下記のコマンドで、ローカルにインストールします。

Nginxをインストールする

nginxのリポジトリを追加できたので、helmを使ってnginxをインストールしましょう。

お分かりいただけたでしょうか。簡単にNginxをインストールすることができました。

途中でwebネームスペースを作成し、default -> webにデフォルトのネームスペースを移すコマンドなども実行してますが、めんどくさかったらそのままhelm installしてください(笑)。

下記のコマンドで、URLをGetしましょう。

ブラウザから「http://192.168.59.101:30428/」にアクセスします。

Nginxをアンインストールする

Nginxのアンインストールも簡単です。

Nginxコンテナにログインする

今度はバージョン指定で、nginxをインストールします。

このnginxにログインしてみましょう。

Helm Chartのカスタマイズ

以下のコマンドで、NginxのServiceやPortが確認できます。

LoadBalancerと80番ポートを使ってますね。

この値は、Traffic Exposure parametersによって定義されています。

NameDescriptionValue
service.typeService typeLoadBalancer
service.portService HTTP port80
公式サイトより

実は、カスタマイズ(値の上書き)が可能です。

上記では、サービスをNodePortに変更しています。「serviceタグのtype」なので、yamlにそのように記載しています。

コマンドからも指定することが可能です。

nginx03のServiceとPortに注目してください!

リスト表示

Helmでいくつもインストールしていると訳分からなくなりますよね。

そんな時は、リストで表示してみましょう。

現在、nginx02とnginx03がインストールされていることがわかります。

Nginxのアップグレード

実は、アップグレードもできます。

OKですね。

Clearn up

最後に、Clean UPして終わりにしましょう。

次回

次回も引き続き、Helmの検証やテスト方法を学びましょう。

Helmまとめ

コメントを残す