Helmを試してみる

はじめに

Ubuntu でうまくK8Sが動かなかったので仕方なくWINDOWS11のマシンで、Minikube を動かしてみることにしました。

この記事の対象

この記事はhelm でなにか動かしてみたいと思う方を対象としてます。minikubeやhelmのインストールは割愛しますので下記の記事を参照にしてください。

https://qiita.com/norikmb/items/f4287be438d98b62152a

helm ,minikube, kubectl はインストールされているものと言う前提の記事となります。

この記事で使ったソフトウェアのバージョン

Windows 11 home

WSL2 ubuntu 20.0.4 LTS

helm 3.14.3

kubectl

Client Version: v1.29.3
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.28.3

Helmを使ってみる

Helmを利用してGrafanaを起動する

Grafanaは、時系列データを可視化するためのオープンソースのウェブダッシュボードシステムです。豊富なデータソースに対応しており、各種監視ツールやアプリケーションからのデータを収集して、グラフやダッシュボードでわかりやすく表示することができます。

今回、Helmを使用してGrafanaをKubernetes環境にデプロイする方法を説明します。Helmは、Kubernetesアプリケーションのパッケージマネージャーであり、複雑なアプリケーションのデプロイや管理を簡素化します。

Grafana Helm Chartのインストール

レポジトリの追加

まず初めに、GrafanaのHelmリポジトリを追加します。

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update

helm repo add コマンドでリポジトリ名 (grafana) と URL (https://grafana.github.io/helm-charts) を指定してリポジトリを追加します。helm repo update コマンドで追加したリポジトリの情報更新を行います。レポジトリが見つからないような場合には  上記のrepo コマンドを忘れている可能性があるので注意してください。

helmでGrafana をインストール

Grafanaをインストールするには、helm install コマンドを使用します。

helm install my-release grafana/grafana

このコマンドでは、my-release という名前で Grafana チャートをインストールします。インストールが完了すると、Grafana が Pod として起動され、Kubernetes クラスタ内で動作を開始します。

うまく行けば下記のような画面が表示されるはずです

NAME: my-release
LAST DEPLOYED: Sun Apr 7 09:06:56 2024
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
1. Get your 'admin' user password by running:

kubectl get secret –namespace default my-release-grafana -o jsonpath=”{.data.admin-password}” | base64 –decode ; echo

2. The Grafana server can be accessed via port 80 on the following DNS name from within your cluster:

my-release-grafana.default.svc.cluster.local

Get the Grafana URL to visit by running these commands in the same shell:
export POD_NAME=$(kubectl get pods –namespace default -l “app.kubernetes.io/name=grafana,app.kubernetes.io/instance=my-release” -o jsonpath=”{.items[0].metadata.name}”)
kubectl –namespace default port-forward $POD_NAME 3000

3. Login with the password from step 1 and the username: admin
#################################################################################
###### WARNING: Persistence is disabled!!! You will lose your data when #####
###### the Grafana pod is terminated. #####
#################################################################################

上記を丁寧に読んでいくと、下記のインストラクションがあるので、それにに従いましょう

1  Get your ‘admin’ user password by running:  (下記のコマンドを打鍵して、admin のパスワードを入手)

kubectl get secret --namespace default my-release-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

上記コマンドを打鍵すれば、adminのパスワードを入手できます

2. The Grafana server can be accessed via port 80 on the following DNS name from within your cluster:

(クラスタからDNS名を入手して80番ポートでアクセスできます)

my-release-grafana.default.svc.cluster.local

Get the Grafana URL to visit by running these commands in the same shell:

export POD_NAME=$(kubectl get pods –namespace default -l “app.kubernetes.io/name=grafana,app.kubernetes.io/instance=my-release” -o jsonpath=”{.items[0].metadata.name}”)
kubectl –namespace default port-forward $POD_NAME 3000

上記kubectl コマンドを打鍵すると、よしなにGrafanaをポート3000で起動してくれます

3. Login with the password from step 1 and the username: admin

上記に従って、ユーザネーム admin とkubectl コマンドで入手したパスワードでログインできます

Grafanaへのアクセス

localhost:3000をブラウザで打鍵したら、下記の画面になるはずです。

Grafana が起動すると、通常はデフォルトのポート (通常は 3000 番) でアクセスできるようになります。具体的なアクセス方法は、Kubernetes クラスタの構成によって異なりますが、一般的には kubectl get service my-release コマンドでサービスの詳細を確認し、そこから外部 IP アドレスやポート番号を取得することができます。

ブラウザで取得した URL にアクセスすると、Grafana のログイン画面が表示されます。デフォルトのユーザー名とパスワードは admin です。初期設定後は、パスワードの変更をお勧めします。

ログインできると上記のような画面になります

データの永続化と再起動した場合は?

これだけですと、PCをリブートした場合などは、設定が保存されません.データを永続化するには

Persistent Volume を用意するコマンドのためにyaml ファイルを準備します

pv.yaml

# PV の定義
apiVersion: v1
kind: PersistentVolume
metadata:
name: grafana-pv
spec:
capacity: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /data/grafana

pvc.yaml

# PVC の定義
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: grafana-pvc
spec:
storageClassName: ""
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi

下記の2つのコマンドで pv ,pvc ともに適用します

kubectl apply -f pv.yaml

kubectl apply -f pvc.yaml

上記を準備しておけば、データを変更(例えばユーザネームやパスワードの変更)などを行っても、PCをリブートしたあとに、minikubeを立ち上げて、Grafana にアクセスしたとしても、データは永続化されます

Grafanaのアンインストール

helm delete ですべて削除

Grafana をアンインストールしたい場合は、helm delete コマンドを使用します。これはリリースを削除するコマンドです

helm delete my-release

その前に helm list でリリースを確認します

helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
my-release default 1 2024-04-07 12:40:39.134282973 +0900 JST deployed grafana-7.3.7 10.4.0

helm delete で my-releaeseを削除すると、my-release リリースに関連するすべての Kubernetes リソースが削除され、Grafana がアンインストールされます。これを行うと、kubectl get pods からすぐに見えなくなります。つまりPVCで永続化されたはずのデータもすべてアンインストールされるのでご注意ください

最後に

いかがでしたでしょうか?多分これでhelm でなにかアプリを立ち上げるやり方については、イメージは掴めたのではないでしょうか? 今回はポート3000でブラウザに表示させましたが、NGINXなどでリバースプロキシを使って、お持ちのドメインやサブドメインで表示させることも可能だと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です