github actions・k6-operatorでのk6実行サンプル
brew install k6docker-compose up -dk6 run simple-k6-sample.js --rps 100k6 run simple-k6-sample.js --rps 100 --out influxdb=http://localhost:8086/loadtest※ grafana側の設定はブログに記載しています。
.env.templateを.envにリネームし、DD_API_KEYとDD_SITEを設定
K6_STATSD_ENABLE_TAGS=true k6 run simple-k6-sample.js --rps 100 --out statsdk6-operatorはkubernetes上でk6の分散実行を行うプロジェクト
project rootにクローン
git clone https://github.com/grafana/k6-operator.gitと.githubは削除しておいた
brew install k3dbrew install kubectl
brew install kustomize# クラスター作成
k3d cluster create loadtest-cluster
# テスト対象のdocker compose起動
docker-compose up -dcd k6-operator
kubectl config get-contexts
make deploy# secretの追加
kubectl apply -f ../k6-operator-resource/datadog-agent-configmap.yml
# Datadog deployment
kubectl apply -f ../k6-operator-resource/datadog-agent-deployment.yml
kubectl apply -f ../k6-operator-resource/datadog-agent-cluster-ip-service.yml
# 負荷テスト用のコンフィグマップを作成
kubectl create configmap k6-operator-sample --from-file ../k6-operator-resource/k6-operator-sample.js
# 作成したコンフィグマップを確認するだけ
kubectl describe configmap k6-operator-sample
# カスタムリソースをデプロイするとテストを実行する
kubectl apply -f ../k6-operator-resource/custom-resource.yml もろもろが動いていることの確認
kubectl get k6
kubectl get jobs
kubectl get pods# k6-sample-1-f7ktlの部分はget podsで表示されたものに置き換えてください
kubectl logs k6-sample-1-f7ktl# リソース削除(クラスター削除したら全て消えるので個別に削除する必要は特にない)
kubectl delete -f ../k6-operator-resource/datadog-agent-cluster-ip-service.yml
kubectl delete -f ../k6-operator-resource/datadog-agent-deployment.yml
kubectl delete -f ../k6-operator-resource/custom-resource.yml
kubectl delete -f ../k6-operator-resource/datadog-agent-configmap.yml
# クラスター削除
k3d cluster delete loadtest-cluster
# docker compose 停止
cd ..
docker-compose down