This workshop has been deprecated and archived. The new Amazon EKS Workshop is now available at www.eksworkshop.com.
We will want to visualize the automated canary deployment, so we will use the
frontend service as a UI. This
frontend service will call the backend service
detail to get the vendor information. In order to expose the
frontend service outside the mesh, we will use AWS AppMesh VirtualGateway affiliated with Network Load Balancer. Lets deploy the
export APP_VERSION=1.0 envsubst < flagger/frontend.yaml | kubectl apply -f -
helm upgrade -i appmesh-gateway eks/appmesh-gateway \ --namespace flagger \ --set serviceAccount.create=false \ --set serviceAccount.name=flagger-envoy-proxies
In this GatewayRoute, we are routing the traffic coming into the VirtualGateway to
kubectl apply -f flagger/gateway.yaml
Get all the resources for AppMesh VirtualGateway
kubectl get all -n flagger -o wide | grep appmesh-gateway
It takes 3 to 5 minutes to set up the Load Balancer.
Find the AppMesh VirtualGateway public endpoint:
export URL="http://$(kubectl -n flagger get svc/appmesh-gateway -ojson | jq -r ".status.loadBalancer.ingress.hostname")" echo $URL
Wait for the NLB to become active:
watch curl -sS $URL
Once the LoadBalancer is active, access the LoadBalancer endpoint in browser
You can see that our
frontend service is exposed via VirtualGateway using Network LoadBalancer. And this
frontend service communicates with backend service
detail to get the vendor information.
Congratulations on exposing the
frontend service via App Mesh VirtualGateway!
Let’s test the Automated Canary Deployment for
detail backend service.