概要
この記事 を参考にさせていただき、Helm v3 をちょっとだけ理解するため、AKSへ新規でコンテナアプリケーション(RabbitMQ)を起動させる手順をまとめました。
ローカル環境
macOS Big Sur 11.3
python 3.8.3
helm 3.6.3
事前準備
この記事 を参考にして、AKS と ACR を構築し、AKSクラスター上で動く Node の確認まで完了していること。
Helm 準備
Helm のインストール
Helm のインストールとバージョンの確認
$ brew install kubernetes-helm
$ helm version
version.BuildInfo{Version:"v3.6.3", GitCommit:"d506314abfb5d21419df8c7e7e68012379db2354", GitTreeState:"dirty", GoVersion:"go1.16.5"}
stable のリポジトリの追加と確認(サポート終了してますが、、、)
$ helm repo add stable https://charts.helm.sh/stable
"stable" has been added to your repositories
$ helm repo list
NAME URL
stable https://charts.helm.sh/stable
リポジトリの追加と確認(こちらが正式)
Helm Hub から RabbitMQ の該当する Helm Chart 情報を見つけます
レポジトリに追加します
$ helm repo add bitnami-azure https://marketplace.azurecr.io/helm/v1/repo
"bitnami-azure" has been added to your repositories
$ helm repo list
NAME URL
stable https://charts.helm.sh/stable
bitnami-azure https://marketplace.azurecr.io/helm/v1/repo
Helm チャートの検索
$ helm search repo rabbitmq
NAME CHART VERSION APP VERSION DESCRIPTION
bitnami-azure/rabbitmq 8.19.1 3.8.19 Open source message broker software that implem...
stable/prometheus-rabbitmq-exporter 0.5.6 v0.29.0 DEPRECATED Rabbitmq metrics exporter for promet...
stable/rabbitmq 6.18.2 3.8.2 DEPRECATED Open source message broker software ...
stable/rabbitmq-ha 1.47.1 3.8.7 DEPRECATED - Highly available RabbitMQ cluster,...
アプリケーションのデプロイ(bitnami-azure を使用しました)
namespace の作成
$ kubectl create namespace helm-mq01
dry-run
$ helm install mqtest01 stable/rabbitmq --namespace helm-mq01 --dry-run
or
$ helm install mqtest01 bitnami-azure/rabbitmq --namespace helm-mq01 --dry-run
デプロイ
$ helm install mqtest01 stable/rabbitmq --namespace helm-mq01
or
$ helm install mqtest01 bitnami-azure/rabbitmq --namespace helm-mq01
インストール済みChartの表示
$ helm list -n helm-mq01
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
mqtest01 helm-mq01 1 2021-08-05 17:39:14.6732 +0900 JST deployed rabbitmq-8.19.1 3.8.19
Pod の確認
$ kubectl get pod -n helm-mq01
NAME READY STATUS RESTARTS AGE
mqtest01-rabbitmq-0 1/1 Running 0 2m17s
その他リソースの確認
$ kubectl get deployment -n helm-mq01
$ kubectl get service -n helm-mq01
$ kubectl get configmap -n helm-mq01
アプリケーションの動作確認
NOTES での手順の確認
NOTES部分に基本的な使い方が記載されてます
$ helm install mqtest01 bitnami-azure/rabbitmq --namespace helm-mq01
NOTES:
** Please be patient while the chart is being deployed **
Credentials:
echo "Username : user"
echo "Password : $(kubectl get secret --namespace helm-mq01 mqtest01-rabbitmq -o jsonpath="{.data.rabbitmq-password}" | base64 --decode)"
echo "ErLang Cookie : $(kubectl get secret --namespace helm-mq01 mqtest01-rabbitmq -o jsonpath="{.data.rabbitmq-erlang-cookie}" | base64 --decode)"
Note that the credentials are saved in persistent volume claims and will not be changed upon upgrade or reinstallation unless the persistent volume claim has been deleted. If this is not the first installation of this chart, the credentials may not be valid.
This is applicable when no passwords are set and therefore the random password is autogenerated. In case of using a fixed password, you should specify it when upgrading.
More information about the credentials may be found at https://docs.bitnami.com/general/how-to/troubleshoot-helm-chart-issues/#credential-errors-while-upgrading-chart-releases.
RabbitMQ can be accessed within the cluster on port at mqtest01-rabbitmq.helm-mq01.svc.
To access for outside the cluster, perform the following steps:
To Access the RabbitMQ AMQP port:
echo "URL : amqp://127.0.0.1:5672/"
kubectl port-forward --namespace helm-mq01 svc/mqtest01-rabbitmq 5672:5672
To Access the RabbitMQ Management interface:
echo "URL : http://127.0.0.1:15672/"
kubectl port-forward --namespace helm-mq01 svc/mqtest01-rabbitmq 15672:15672
NOTES 手順の実行
パスワードの取得
$ echo "Password : $(kubectl get secret --namespace helm-mq01 mqtest01-rabbitmq -o jsonpath="{.data.rabbitmq-password}" | base64 --decode)"
Password : 1NB1n3fbsI
ポートフォワーディングの設定
$ kubectl port-forward --namespace helm-mq01 svc/mqtest01-rabbitmq 15672:15672
Forwarding from 127.0.0.1:15672 -> 15672
Forwarding from [::1]:15672 -> 15672
※ポートフォワーディングを中止する場合、CTRL+C を押します
アプリケーションへのアクセス
ブラウザで http://localhost:15672 にアクセスします。 RabbitMQのログイン画面が表示されます。
Username : user / Password : 1NB1n3fbsI を入力し、承認後 Ovweview 画面が表示され RabbitMQ 3.8.19 の管理コンソールにアクセスできました。
アプリケーションのアンインストール
$ helm uninstall mqtest01 -n helm-mq01
or
$ helm delete mqtest01 -n helm-mq01
release "mqtest01" uninstalled
namespace の削除
$ kubectl delete namespace helm-mq01
namespace "helm-mq01" deleted
まとめ
Helm v3 を使用して Helm repository のチャートを利用することにより、AKSで新規にアプリケーションを稼働せさることを確認しました。
参考情報
以下の情報を参考にさせていただきました。感謝申し上げます。
Helm v3のすゝめ