To get ready to use Pixie to debug an application on a Kubernetes cluster, we will:
To accommodate the pods deployed by Pixie and the microservices demo application, we will add a managed node group to scale the eksworkshop-eksctl
cluster.
Curl the node group config file and use eksctl
to create the new pixie-demo-ng
node group:
curl -O https://raw.githubusercontent.com/pixie-labs/pixie-demos/main/eks-workshop/clusterconfig.yaml
envsubst < clusterconfig.yaml | eksctl create nodegroup -f -
The creation of the node group will take about 3 - 5 minutes.
Confirm that the new nodes joined the cluster correctly. You should see 3 nodes added to the cluster.
kubectl get nodes --sort-by=.metadata.creationTimestamp
To test out Pixie, we will deploy a modified version of Weavework’s Sock Shop microservices application. This demo app does not contain any manual instrumentation. Minimal modifications were made to set pod resource limits and create a bug in one of the services.
Curl the config file and deploy the demo using kubectl
:
curl -O https://raw.githubusercontent.com/pixie-labs/pixie-demos/main/eks-workshop/complete-demo.yaml
kubectl apply -f complete-demo.yaml
Deploying the microservices demo will take about 3-5 minutes.
Confirm that the application components have been deployed to the px-sock-shop
namespace:
kubectl get pods -n px-sock-shop
You should see output similar to that below. All pods should be ready and available before proceeding.
The Sock Shop’s front-end
service is exposed onto an external IP address using a LoadBalancer
. Grab the Load Balancer address using:
export SERVICE_IP=$(kubectl -n px-sock-shop get svc front-end --template "{{ range (index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}")
echo http://$SERVICE_IP/
You should see output similar to that below.
When the front-end
service is first deployed, it can take several minutes for the Load Balancer to be created and DNS updated. During this time the link above may display a “site unreachable” message.
To visit the Sock Shop app, navigate to the Load Balancer address in your browser. Click the “Catalogue” tab along the top of the page and you should see a variety of sock products.
This app has several bugs. One bug in the app is that filtering the catalogue doesn’t work when two or more filters are selected.
geek
and formal
.Apply
.Clear
to clear the filters between retries.Make sure to trigger this bug for yourself. We will use Pixie to investigate this application bug.