This is a Kubernetes Kubernetes playground. From here you can play with a Kubernetes host and explore it's API.
Kubernetes is an open source project that automates the deployment of applications using containers, providing an additional layer of abstraction and automation on top of Linux.
What are playgrounds?
Playgrounds give you a configured environment to start playing and exploring using an unstructured learning approach.
Playgrounds are great for experimenting and trying samples. To learn more about the technology then start with one of the Katacoda community labs
This playground provides a personalised sandboxed environment for you to learn and explore Kubernetes, with following components:
- ready-to-use Kubernetes cluster
kubectl- the Kubernetes command line tooling
- Example files of: https://github.com/loodse/kubernetes-lab/tree/master/examples/redmine
Deploy a stateful Redmine app
Kubernetes task - Redmine
Deploy a high available Redmine to Kubernetes.
Broken manifests are inside the task folder - those must be fixed.
- Read the following Hints
- Deploy Redmine as Deployment
- Use a NodePort service to access the frontend
- Deploy a MySQL with a PersistentVolumeClaim
- Use a Service for the MySQL
- Replace the MySQL Deployment with a stateful set and with volumeClaimTemplates.
Expose a Service to the public
Create a kubernetes service with the type
NodePort. This should be something like this output:
kubectl get svc
kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE redmine NodePort 10.107.72.150 <none> 80:32421/TCP 4s
Now open trough the
+ at the Katacoda UI the menu
Select port to view on Host1 and enter the assigned NodePort - in this example
Note that NodePort ports are on on all nodes.
Information on Deployments: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
Information on StatefulSets: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
- The mysql container is listing on the port 3306.
- MYSQL also needs a password set over the environment variable
The container listens on port 3000.
Redmine has some important environment variables which should be used to configure it:
Address of the MySQL instance.
Database password of the MySQL instance
Default admin username in Redmine
Password of the admin username in Redmine
Email address of the admin user in Redmine
Default language of Redmine.