zet

Thoughts on Cloud Native Learning Plan

Having made a lot of mistakes in my approach to learning this cloud native stuff I want to share my lessons learned about the order of stuff to learn such that it will make the most cohesive sense to absolute beginners. Of course, I assume people have everything from the Live Linux Terminal boost already. (You don’t realistically have a prayer with this stuff until you can call yourself a “Linux terminal native”.)

You should be able to add the following skills in order:

  1. Grok Container
  2. Use docker command to pull, run, and push images
  3. Be able to mount volumes and expose networking in docker
  4. Create your own Dockerfile images
  5. Install Kubernetes kind cluster (or other local cluster)
  6. Use and grok kubectl config
  7. Grok Pod
  8. Use kubectl run (almost same as docker run)
  9. Use kubectl get pods
  10. Grok Deployment
  11. Grok ReplicaSet
  12. Use kubectl create deploy
  13. Use kubectl exec
  14. Use kubectl desc
  15. Use `kubectl logs

The main point I wanted to point out is that it was not immediately obvious to me that kubectl has almost exactly the same commands as docker for dealing with single pods (usually one container). Capitalizing early on this similarity will really help beginners.

In fact, one thing I have found extremely useful is to use kubectl locally (with kind) instead of docker for things that I might otherwise use just Docker for instead, which ends up being very nice because you can immediately do things that Docker just can’t.

In fact, replacing any learning of docker-compose immediately with using kubectl locally will benefit most people the best in the long run. For example, creating a set of YAML (or single file) and creating a small deployment locally is always better than docker compose because that skill immediately translates into k8s work.

See also: