-
Notifications
You must be signed in to change notification settings - Fork 392
AppMesh on k8s load test #518
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good but I think there are some gaps in the documentation
|
||
## Step 1: Prerequisites | ||
1. [Walkthrough: App Mesh with EKS](../eks/) | ||
1. Make sure you have "appmesh-prometheus" installed. You may follow this [live docs](https://aws.github.io/aws-app-mesh-controller-for-k8s/) _Guide_ section for further installation support. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It might be easier for the customer if you just link directly to the App Mesh Prometheus chart: https://github.com/aws/eks-charts/tree/master/stable/appmesh-prometheus
We need to set a few environment variables before starting the load tests. | ||
|
||
```bash | ||
export CONTROLLER_PATH=<Path to the controller directory e.g., /home/userName/workplace/appmesh-controller/aws-app-mesh-controller-for-k8s> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you may need to break this down a bit. It's not going to be clear to people that they need to clone the controller repo just based on this comment. I'd say add cloning the controller repo to the prerequisites
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure
|
||
## Step 4: Running the Load Test | ||
Run the driver script using the below command -: | ||
> sh scripts/driver.sh |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is going to require setup of the controller dev environment, tools such as Ginkgo. We probably need some instructions for that.
1. Make sure you have "appmesh-prometheus" installed. You may follow this [live docs](https://aws.github.io/aws-app-mesh-controller-for-k8s/) _Guide_ section for further installation support. | ||
2. Alternatively, you can follow this doc: [Getting started with AWS App Mesh and Kubernetes](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-kubernetes.html) to install appmesh-controller and EKS cluster using `eksctl`. | ||
2. Clone this repository and navigate to the `walkthroughs/howto-k8s-appmesh-load-test` folder, all the commands henceforth are assumed to be run from the same directory as this README. | ||
3. Make sure you have the latest version of [AWS CLI v2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) installed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
v1 also works (with new features like multiple listener) as long as you have the latest
nodeGroups: | ||
- name: ng-1 | ||
instanceType: m5.4xlarge | ||
desiredCapacity: 10 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is such a big group intentional? I usually see at most 5 in other examples.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is just an example cluster config showing customer how to use a cluster config as a file to create cluster with various properties such as different instance size.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah then maybe 2-3 nodes are quite enough (reduce cost)
PROMETHEUS_QUERY_ENDPOINT = 'http://localhost:9090/api/v1/query_range' | ||
|
||
# give your s3 bucket a unique name | ||
S3_BUCKET = "mazharis-appmeshloadtester" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe should not put alias here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would recommend running this on a fresh account with a fresh machine (maybe Cloud9?) to make sure that it's not accidentally depending on anything that isn't going to be automatically available to end users.
@@ -39,6 +39,17 @@ if [ -z "${VPC_ID}" ]; then | |||
err "VPC_ID is not set" | |||
fi | |||
|
|||
# Check creds |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
isengard is an internal tool, it won't be available
On the load test flow diagram what are the numbers communicating? The ordering seems strange |
Issue #, if available:
Description of changes: Added a walkthrough for how to load test AppMesh on EKS. This walkthrough can be used as a tool for further load testing on different mesh configuration. It uses Fortio for load generation.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.