【GCP】Qwiklabs の「Kubernetesソリューション」を勉強しています~Kubernetes を使用した負荷分散のテスト~

load-balancing-test GCP
load-balancing-test

Qwiklabs の「Kubernetesソリューション」を進めていきたいと思います。

Kubernetes を使用した負荷分散のテスト

概要

Kubernetes Engine を使用して、負荷分散テストフレームワークをデプロイする方法を学びます。

コマンド

プロジェクトとゾーンを設定する

PROJECT=$(gcloud config get-value project)
echo $PROJECT
REGION=us-central1
echo $REGION
ZONE=${REGION}-a
echo $ZONE
CLUSTER=gke-load-test
echo $CLUSTER
TARGET=${PROJECT}.appspot.com
echo $TARGET
gcloud config set compute/region $REGION
gcloud config set compute/zone $ZONE

サンプルコードを入手してアプリケーション用の Docker イメージを作成する

git clone https://github.com/GoogleCloudPlatform/distributed-load-testing-using-kubernetes.git
cd distributed-load-testing-using-kubernetes/
gcloud builds submit --tag gcr.io/$PROJECT/locust-tasks:latest docker-image/.

ウェブ アプリケーションをデプロイする

gcloud app deploy sample-webapp/app.yaml

Kubernetes クラスタをデプロイする

gcloud container clusters create $CLUSTER --zone $ZONE --num-nodes=5

負荷テストのマスター

sed -i -e "s/\[TARGET_HOST\]/$TARGET/g" kubernetes-config/locust-master-controller.yaml
sed -i -e "s/\[TARGET_HOST\]/$TARGET/g" kubernetes-config/locust-worker-controller.yaml
sed -i -e "s/\[PROJECT_ID\]/$PROJECT/g" kubernetes-config/locust-master-controller.yaml
sed -i -e "s/\[PROJECT_ID\]/$PROJECT/g" kubernetes-config/locust-worker-controller.yaml
kubectl apply -f kubernetes-config/locust-master-controller.yaml
kubectl get pods -l app=locust-master
kubectl apply -f kubernetes-config/locust-master-service.yaml
kubectl get svc locust-master

負荷テストのワーカー

kubectl apply -f kubernetes-config/locust-worker-controller.yaml
kubectl get pods -l app=locust-worker
kubectl scale deployment/locust-worker --replicas=20
kubectl get pods -l app=locust-worker

テストを実行する

EXTERNAL_IP=$(kubectl get svc locust-master -o yaml | grep ip | awk -F": " '{print $NF}')
echo http://$EXTERNAL_IP:8089
Locust
Locust

まとめ

Kubernetes Engine を使用して、負荷分散テストフレームワークをデプロイする方法を学びました。

コメント

タイトルとURLをコピーしました