There are many real world apps that you can deploy on Kubernetes to learn and practice its concepts. Here are some of the best options:
Robot Shop is an e-commerce store developed by Instana to learn monitoring techniques on Kubernetes. It consists of several microservices implemented in different technologies:
- Angular (frontend)
- Nginx (reverse proxy)
- Node.js (Express)
- Java (Spark Java)
- Python (Flask)
- Golang
- MongoDB
- RabbitMQ
- Redis
- MySQL
Deploying and managing this multi-tier application on Kubernetes will teach you about:
- Deployments
- Services
- Ingress
- ConfigMaps
- Secrets
- Monitoring
- Scaling
Deploying WordPress on Kubernetes is a great way to learn about:
- StatefulSets
- PersistentVolumes
- Ingress
- ConfigMaps
- Secrets
You'll need to deploy MySQL as a database for WordPress. Managing the lifecycle of WordPress and MySQL together on Kubernetes will teach you how to orchestrate related applications.
Cassandra is a NoSQL database that makes for an interesting Kubernetes use case. Deploying Cassandra on Kubernetes involves:
- StatefulSets
- Headless Services
- DaemonSets
- ConfigMaps
- ReplicationControllers
This will give you practice working with stateful applications on Kubernetes.
Deploying Jenkins on Kubernetes allows you to have a CI/CD pipeline that can take advantage of Kubernetes features like:
- Auto-scaling
- Resource management
- Self-healing
You can then build CI/CD pipelines for your microservices that run inside Kubernetes.
In summary, real world apps like e-commerce stores, databases and CI/CD tools make for the best Kubernetes learning projects. Choose an app you're familiar with to get the most value while practicing Kubernetes concepts. Let me know if you have any other questions!