【k8s】Kubernetes ~ 基本編 / Helm ~

■ はじめに

https://dk521123.hatenablog.com/entry/2023/05/09/235256

で、「Helm(ヘルム)」についてでてきたので、
ちゃんと理解したので、ちゃんとここでまとめる。

目次

【1】Helm
 1)何ができる?
【2】Helmのインストール
 補足:他の環境でのインストール
【3】3つの大きな概念
 1)Chart(チャート)
 2)Repository(リポジトリ)
 3)Release(リリース)
【4】Helm コマンド
 1)バージョン確認 および ヘルプ
 2)リポジトリの検索
 3)リポジトリの追加
 4)リポジトリの確認
 5)リポジトリの更新
 6)アプリケーションのインストール
 7)リリースのステータスを取得
 8)インストールしたものを一覧表示

【1】Helm

https://helm.sh/ja/

より抜粋
~~~~
Kubernetes 用に構築されたソフトウェアを
検索、共有、使用するための最良の方法です。
~~~~
って言っても抽象的過ぎてよく分からないので、、、

* Kubernetes用のパッケージマネージャー
 => Linux で言うと、apt/yum みたいな感じ(それだけじゃないが)

1)何ができる?

* リポジトリからのインストール
* デプロイされたアプリケーションの管理

【2】Helmのインストール

https://helm.sh/

# より、Helmのインストール
sudo snap install helm --classic

# Version確認
helm version

補足:他の環境でのインストール

* 以下の公式サイトに載っている

https://helm.sh/

# Mac
brew install helm

# choco (Windows)
choco install kubernetes-helm

# scoop
scoop install helm

https://helm.sh/ja/docs/intro/install/

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

【3】3つの大きな概念

* Helm に触れる上で、欠かせない概念・用語を整理。

https://helm.sh/ja/docs/intro/using_helm/

1)Chart(チャート)

* Kubernetes クラスタ内でアプリケーションなどに必要な全リソース定義が含まれている
 => Linux の apt dpkg、yum RPM ファイルに相当

2)Repository(リポジトリ

* Chartを収集して共有できる場所

3)Release(リリース)

* Kubernetes クラスタで実行されているChartのインスタンス

【4】Helm コマンド

* 他は以下のサイトを参考にするといいかも。

https://dev.classmethod.jp/articles/helm-sub-commands/

1)バージョン確認 および ヘルプ

# Version確認
helm version

# ヘルプ
helm --help
# helm -h でもOK

2)リポジトリの検索

# helm search repo <KeywordToSearch(Optional)>
helm search repo

3)リポジトリの追加

# helm repo add <RepositoryName> <SourceOfRepository>
helm repo add bitnami https://charts.bitnami.com/bitnami

補足:Helm チャートリポジトリを初期化する
https://helm.sh/ja/docs/intro/quickstart/

# より抜粋

# 公式の Helm Stable チャートを追加
helm repo add stable https://charts.helm.sh/stable

# 検索で一覧表示
helm search repo stable

# 個別の検索(e.g. Airflow)
helm search repo stable/airflow

4)リポジトリの確認

helm repo list

5)リポジトリの更新

# リポジトリのキャッシュを最新のものに更新
helm repo update

6)アプリケーションのインストール

# Helm 的に言うと、チャートからリリースを作成する

# helm install <REPO_NAME/CHART_NAME> [-n RELEASE_NAME]
#  RELEASE_NAMEを付与しなければ、自動的に名前が付与

7)リリースのステータスを取得

# helm status <RELEASE_NAME>

8)インストールしたものを一覧表示

helm list
# helm ls でもOK

参考文献

https://qiita.com/Hiroyuki_OSAKI/items/8965ceb6c90bae3bea76
https://atmarkit.itmedia.co.jp/ait/articles/2103/04/news001.html
https://knowledge.sakura.ad.jp/23603/
https://amateur-engineer-blog.com/getting-started-helm/

関連記事

Kubernetes ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/27/224624
Kubernetes ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/05/04/013529
Kubernetes ~ 基本編 / kubectlコマンド ~
https://dk521123.hatenablog.com/entry/2022/01/12/110555
Apache Flink ~ 環境構築 / Kubernetes 編 ~
https://dk521123.hatenablog.com/entry/2023/05/09/235256
Apache Airflow ~ 環境構築 / Kubernetes 編 ~
https://dk521123.hatenablog.com/entry/2023/05/13/000000