Lots of learning styles out there. I prefer to learn by practice. Getting my hands dirty and going from A -> Z, quite often using the straw-man approach.
My employer, MapR, is working on a native Kubernetes (K8S) offering. To this end, understanding how to use K8S via a simple app seemed like the right place to start onboarding and socializing other engineers to the K8S ecosystem.
Arun Gupta of Amazon created a great tutorial that goes through the following:
- Compile run a java web app locally via maven
- Then run the same app using Docker via a multi stage Docker file
- He includes customizations for shrinking the Docker image (I skipped this part)
- Deploy the app using K8S
- Deploy the app using Helm to simply the deployment on Kubernetes
- Deploy cluster on cloud K8S provider and change kubectl contexts to point to different clusters
- Istio and Traffic Shifting
- I skipped the Istio portion and just followed Traffic Shifting. Very useful exercise here
I forked Arun’s repo to suit our needs. That repo can be found here