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
まとめ
Kubernetes Engine を使用して、負荷分散テストフレームワークをデプロイする方法を学びました。
コメント