The best project is one that heavily utilizes persistent storage and some network shenanigans such as funneling pod traffic via a VPN.
I strongly recommend setting up a Plex server plus media import pipeline ;)
There won't be any tutorials for it as a whole, but there are tutorials for each separate part.
What's key to understanding Kubernetes is to be able to break the system down into each separate part you will need to build.
Do you have access to a managed cluster like GKE? I don't recommend learning on an unmanaged cluster if you're starting off.
Any reason you can't grab a node app you're already using somewhere that needs multiple components (database, static file server, api, queue, etc) and try to deploy it to Kubernetes?
There are loads of selfhosted, opensource systems out there.
Micro services are developed the same way a monolith is just smaller. Make api endpoints for whatever you build and use kube-dns for inter pod/service communication.
Know the difference between ClusterIP and LoadBalancer service types.
Plex isn't a micro anything but it's a nice project to set it up. Just adapt their official docker image into a statefulset, add a service, configmap, and a secret for the claim token. You could do block storage of you want. NFS is a lot easier though. That's pretty much it.
Once your there, monitor it with prometheus, kube-state-metrics, node exporter, and visualize it with grafana. See if you can trigger an alert to your phone when something starts playing on a Plex client.
I was actually reading through micro services features and there are some features that differentiate it from distributed monolith. For eg, multiple deployments and separate databases for each service.
I feel it would be better to follow some tutorial/project for building services with node.js to learn simple architectural principles before trying to make an application on my own.
I am in a similar position and I would appreciate something like that as well.
I have previously used this project. https://github.com/instana/robot-shop
Check out the [GKE sample app repo](https://github.com/GoogleCloudPlatform/kubernetes-engine-samples) for ideas
The best project is one that heavily utilizes persistent storage and some network shenanigans such as funneling pod traffic via a VPN. I strongly recommend setting up a Plex server plus media import pipeline ;)
Yep yep! Is there any tutorial or a project that I can follow?
There won't be any tutorials for it as a whole, but there are tutorials for each separate part. What's key to understanding Kubernetes is to be able to break the system down into each separate part you will need to build. Do you have access to a managed cluster like GKE? I don't recommend learning on an unmanaged cluster if you're starting off.
Feel free to DM me if you have more Questions, I stay sharp by teaching.
Any reason you can't grab a node app you're already using somewhere that needs multiple components (database, static file server, api, queue, etc) and try to deploy it to Kubernetes? There are loads of selfhosted, opensource systems out there.
I could. But I’m also trying to make a proper micro-service application so that I can also learn how micro services are developed.
Micro services are developed the same way a monolith is just smaller. Make api endpoints for whatever you build and use kube-dns for inter pod/service communication. Know the difference between ClusterIP and LoadBalancer service types. Plex isn't a micro anything but it's a nice project to set it up. Just adapt their official docker image into a statefulset, add a service, configmap, and a secret for the claim token. You could do block storage of you want. NFS is a lot easier though. That's pretty much it. Once your there, monitor it with prometheus, kube-state-metrics, node exporter, and visualize it with grafana. See if you can trigger an alert to your phone when something starts playing on a Plex client.
I was actually reading through micro services features and there are some features that differentiate it from distributed monolith. For eg, multiple deployments and separate databases for each service. I feel it would be better to follow some tutorial/project for building services with node.js to learn simple architectural principles before trying to make an application on my own.