
Since stx-metrics-server-sample-app doesn't inherit from the base image, the Dockerfile didn't need to be changed, but to follow the structure that was used in other apps that were migrated to debian, some directories were changed. Test Plan: PASS: Debian - Build Debian docker image and upload/apply metrics-server and metrics-server-sample-app. Verified that the app is applied and the container is created. PASS: CentOS - Same tests that were done on Debian. Story: 2009831 Task: 44511 Signed-off-by: Luiz Felipe Kina <LuizFelipe.EiskeKina@windriver.com> Change-Id: Ib59770209b9284e4463369234a6d833bd23232b2
Sample App
Containerized application that retrieves metrics server data
How does it work ?
The sample app is a Nodejs app that requests the metrics every second and prints that in the console. The deployment creates a service account, roles and role binding to allows this application communicate with the api, this token is stored by default on /var/run/secrets/kubernetes.io/serviceaccount/token
, the application is reading that token and doing the requests on the endpoint /apis/metrics.k8s.io/v1beta1/pods
that returns all pod metrics and log it on console.
Structure
sample-app
├── centos
│ ├── docker
│ │ ├── Dockerfile
│ │ └── src
│ │ ├── package.json
│ │ └── sample-application.js
│ └── sample-app.stable_docker_image
└── readme.md
Important files
- src - Contains Nodejs application
- Dockerfile - Application Dockerfile
Run application
Deploy tha sample app using
system helm-override-update --reuse-values --set atribute=value <app name> <chart name> <namespace>
folow the steps below:
- Run
system helm-override-update --reuse-values --set sampleApp.create=true metrics-server metrics-server metrics-server
- Run
system application apply metrics-server
to apply the override - Run
kubectl get pods -n metric-server-test-app
to get the name of the pod - Run
kubectl logs -n metric-server-test-app pod-name --tail 1 -f
to see the logs and check if the sample application is requesting successfully the metrics server api
Endpoints
All of the following endpoints are GET endpoints and they are under the base path /apis/metrics.k8s.io/v1beta1
:
/nodes
- all node metrics/nodes/{node}
- metrics for a specified node/namespaces/{namespace}/pods
- all pod metrics within namespace with support for all-namespaces/namespaces/{namespace}/pods/{pod}
- metrics for a specified pod/pods
- all pod metrics of all namespaces