【既存】 Azure Kubernetes Service (AKS) に Helm を使用して既存のアプリケーションをインストールしてみました
概要
この記事 を参考にさせていただき、Helm v3 をちょっとだけ理解するため、ACRにあるコンテナアプリケーション(RabbitMQ)をAKSで起動させる手順をまとめました。
ローカル環境
macOS Big Sur 11.3
python 3.8.3
helm 3.6.3
事前準備
- この記事 を参考にして、AKS と ACR を構築し、AKSクラスター上で動く Node の確認まで完了していること。
- この記事 を参考にして、ACRへコンテナアプリケーションをプッシュしておきます。
- この記事 にある、「Helm 準備」が完了していること。
Helm Chart の作成
ACRログインサーバーアドレスの取得
$ az acr list --resource-group $ACR_RES_GROUP --query "[].{acrLoginServer:loginServer}" --output tsv
acr0ituru.azurecr.io
Helm Chart の検索
ACRに登録されている RabbitMQ コンテナアプリケーションを使用するので、rabbitmq を検索します
$ 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,...
元ネタとしての Helm Chrat の Pull
$ helm pull bitnami-azure/rabbitmq
$ tar zxf rabbitmq-8.19.1.tgz
$ tree -a
.
├── rabbitmq
│ ├── .helmignore
│ ├── Chart.lock
│ ├── Chart.yaml
│ ├── README.md
│ ├── charts
│ │ └── common
│ │ ├── .helmignore
│ │ ├── Chart.yaml
│ │ ├── README.md
│ │ ├── templates
│ │ │ ├── _affinities.tpl
│ │ │ ├── _capabilities.tpl
│ │ │ ├── _errors.tpl
│ │ │ ├── _images.tpl
│ │ │ ├── _ingress.tpl
│ │ │ ├── _labels.tpl
│ │ │ ├── _names.tpl
│ │ │ ├── _secrets.tpl
│ │ │ ├── _storage.tpl
│ │ │ ├── _tplvalues.tpl
│ │ │ ├── _utils.tpl
│ │ │ ├── _warnings.tpl
│ │ │ └── validations
│ │ │ ├── _cassandra.tpl
│ │ │ ├── _mariadb.tpl
│ │ │ ├── _mongodb.tpl
│ │ │ ├── _postgresql.tpl
│ │ │ ├── _redis.tpl
│ │ │ └── _validations.tpl
│ │ └── values.yaml
│ ├── ci
│ │ ├── default-values.yaml
│ │ └── tolerations-values.yaml
│ ├── templates
│ │ ├── NOTES.txt
│ │ ├── _helpers.tpl
│ │ ├── configuration.yaml
│ │ ├── extra-list.yaml
│ │ ├── ingress.yaml
│ │ ├── networkpolicy.yaml
│ │ ├── pdb.yaml
│ │ ├── prometheusrule.yaml
│ │ ├── role.yaml
│ │ ├── rolebinding.yaml
│ │ ├── secrets.yaml
│ │ ├── serviceaccount.yaml
│ │ ├── servicemonitor.yaml
│ │ ├── statefulset.yaml
│ │ ├── svc-headless.yaml
│ │ ├── svc.yaml
│ │ └── tls-secrets.yaml
│ ├── values.schema.json
│ └── values.yaml
└── rabbitmq-8.19.1.tgz
values.yaml ファイルの編集
上記ディレクトリ内にある values.yaml の以下の部分を編集します
global:
# imageRegistry: acr0ituru.azurecr.io
imageRegistry: acr0ituru.azurecr.io
image:
# registry: docker.io
# repository: bitnami/rabbitmq
# tag: 3.8.19-debian-10-r0
registry: acr0ituru.azurecr.io
repository: rabbitmq
tag: 3.8.17
NOTES.txt ファイルの編集
上記ディレクトリ内にある NOTES.txt の以下の部分を編集します
Credentials:
Username : guest
Password : guest
Chart.yaml ファイルの編集
上記ディレクトリ内にある Chart.yaml の以下の部分を編集します(既存アプリケーションのRabbitMQのバージョンに記載変更)
# appVersion: 3.8.19
appVersion: 3.8.17
アプリケーションのデプロイ
namespace の作成
$ kubectl create namespace helm-mq02
dry-run
$ helm install mqtest02 ./rabbitmq --namespace helm-mq02 --dry-run
デプロイ
$ helm install mqtest02 ./rabbitmq --namespace helm-mq02
NAME: mqtest02
LAST DEPLOYED: Fri Aug 6 13:33:44 2021
NAMESPACE: helm-mq02
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **
Credentials:
Username : guest
Password : guest
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 mqtest02-rabbitmq.helm-mq02.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-mq02 svc/mqtest02-rabbitmq 5672:5672
To Access the RabbitMQ Management interface:
echo "URL : http://127.0.0.1:15672/"
kubectl port-forward --namespace helm-mq02 svc/mqtest02-rabbitmq 15672:15672
インストール済み Chart の表示
$ helm list -n helm-mq02
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
mqtest02 helm-mq02 1 2021-08-06 13:33:44.284954 +0900 JST deployed rabbitmq-8.19.1 3.8.17
Pod の確認
$ kubectl get pod -n helm-mq02
NAME READY STATUS RESTARTS AGE
mqtest02-rabbitmq-0 1/1 Running 0 2m17s
その他リソースの確認
$ kubectl get deployment -n helm-mq02
$ kubectl get service -n helm-mq02
$ kubectl get configmap -n helm-mq02
アプリケーションの動作確認
NOTES での手順の確認
上記実行結果のNOTES部分に基本的な使い方が記載されてます
$ helm install mqtest01 bitnami-azure/rabbitmq --namespace helm-mq01
NOTES:<抜粋>
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 手順の実行
ポートフォワーディングの設定
$ kubectl port-forward --namespace helm-mq02 svc/mqtest02-rabbitmq 15672:15672
Forwarding from 127.0.0.1:15672 -> 15672
Forwarding from [::1]:15672 -> 15672
※ポートフォワーディングを中止する場合、CTRL+C を押します
アプリケーションへのアクセス
ブラウザで http://localhost:15672 にアクセスします。 RabbitMQのログイン画面が表示されます
Username : guest / Password : guest を入力し、承認後 Queues 画面に切替表示し で事前に設定していた「IoTHub」というQueueがあることを確認できました(RabbitMQ のバージョンも 3.8.17 になっています)
アプリケーションのアンインストール
$ helm uninstall mqtest02 -n helm-mq02
or
$ helm delete mqtest02 -n helm-mq02
release "mqtest02" uninstalled
namespace の削除
$ kubectl delete namespace helm-mq02
namespace "helm-mq02" deleted
まとめ
Helm v3 を使用して Helm repository のチャートベースに変更することにより、AKSに既存のコンテナアプリケーションを稼働せさることを確認しました。
番外編
もっと手軽に(動作確認だけであれば、、、、)
カレントディレクトリに values.yaml をコピーします
$ cp rabbitmq/values.yaml .
$ ls -l
drwxr-xr-x 7 hoge staff 224 8 6 00:58 ./
drwxr-xr-x 7 hoge staff 224 8 4 01:18 ../
drwxr-xr-x 11 hoge staff 352 8 6 00:30 rabbitmq/
-rw-r--r-- 1 hoge staff 47260 8 6 00:29 rabbitmq-8.19.1.tgz
-rw-r--r-- 1 hoge staff 42656 8 6 00:58 values.yaml
デプロイ
$ helm install -f values.yaml mqtest02 bitnami-azure/rabbitmq --namespace helm-mq02
参考情報
以下の情報を参考にさせていただきました。感謝申し上げます。
Helm v3のすゝめ
事実上の標準ツールとなっているKubernetes向けデプロイツール「Helm」入門
Author And Source
この問題について(【既存】 Azure Kubernetes Service (AKS) に Helm を使用して既存のアプリケーションをインストールしてみました), 我々は、より多くの情報をここで見つけました https://qiita.com/turupon/items/91aadafd951a0e330c70著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .