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.