Image is hosted on Docker Hub
Koncepts is an application for exercising Kubernetes concepts to newer Kubernetes users, as well as testing various configurations.
A Python Flask application that displays /etc/hostname
and other info about the host as an html page. When the application is deployed in k8s, this will be the pod name and other pod info.
The app may be helpful for demos of pod deployments, scaling, deletions, etc.
The service is a Flask Python app running on gunicorn. It is using a Jinja template for the index.html. Please forgive the messy html with inline styles and such.
You can quickly deploy the app in k8s with the following after cloning the repo:
kubectl apply -k kube/base
kubectl apply -k kube/overlays/with-config-files
kubectl apply -k kube/overlays/expose-lb
kubectl apply -k kube/overlays/expose-traefik
The index URL returns an html page that provides information about the container.
The app will also handle requests to any path, log the request, and provide a response.
There are also two query parameters that you can specify:
d
parameter looks for a positive integer value, and represents the number of seconds after the python app has started before it will return200
responses. Until that time, it will return503
response codes.- eg.
http://<route url>/test?d=10
will return503
responses for 10 seconds - Default value is
0
- eg.
f
parameter works similar tod
, but will return500
status codes after the integer value in seconds beyond the python app starting.- eg.
http://<route url>/test?f=10
will return500
responses after the first 10 seconds of the app being started. - Default value is
0
- Note: this parameter is absolute, and has no effect from the value set by
d
.- Example:
http://<route url>/test?d=10&f=10
will never return a200
response. Only503
prior to 10 seconds, and500
after 10 seconds has lapsed.
- Example:
- eg.
The following is an example script that will curl the app at one second intervals and return the pod name. This can be used to demonstrate the effects of pod scaling with ReplicaSets
or Deployment
rollouts.
while [ true ]
do
curl http://<route url>/test?d=10
sleep 1
done