KEDAの動作確認用サンプルアプリケーションになります。
なお、本サンプルアプリケーションはAWS上での動作を前提としています。
管理コンソールよりサンプルアプリケーション用のECRリポジトリを作成します。(リポジトリ名:demo-keda)
管理コンソールよりサンプルアプリケーション用のSQSを作成します。(キュー名:demo-keda-queue)
nautible-pluginのpod-autoscalerを参考にKEDAをクラスタに導入します。
サンプルアプリケーションのコンテナイメージを準備します。
cd pod-autoscaler/sample
docker build -t demo-keda:latest .
docker tag demo-keda:latest <レジストリ名>/demo-keda:latest
ECRへログイン
aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin <レジストリ名>
ECRへイメージをプッシュ
docker push <レジストリ名>/demo-keda:latest
環境ごとの設定をマニフェストに設定し、反映します。
イメージの指定及び環境変数(ACCOUNT_ID,REGION)を指定します。
manifests/deployment.yaml
...
spec:
containers:
- name: demo-keda
image: <レジストリ名>/<リポジトリ名>:<バージョン>
env:
- name: ACCOUNT_ID
value: "<AWSアカウントID>"
- name: REGION
value: "<リージョン>"
cd manifests
kubectl apply -f .
AWS管理コンソール上でSQSにテストデータを送信し、しばらく待つとPodが起動してログが出力されます。
SQSに「test1」を送信した場合の例
kubectl get po
NAME READY STATUS RESTARTS AGE
demo-keda-57d484c7cb-lqxc7 1/1 Running 0 14s
kubectl logs demo-keda-57d484c7cb-lqxc7 -f
receive message ...
test1
また、その後しばらく放置すると、Podが自動的に停止します。(DeploymentのPod要求数が0になる)
cd pod-autoscaler/sample/manifests
kubectl delete -f .
ECRおよびSQSについてはAWS管理コンソールから削除します。