A lot of these learning resources either tie you down a vendor Cloud specific Kubernetes like this one or run they risk of getting outdated. My journey to Learn Kubernetes using Vagrant , VirtualBoxe VMs, Ansible and Kubeadmin has run into a lot of those.<p>First , there is the issue of Docker and Kubernetes compatibility that I ran into. I could not get Docker shim to work and pivoted to Containerd. Once I sorted this out , I was able to get my Kubernete cluster deployed. Or So I thought.<p>I ran into an issue of my nodes not using the correct IP address to join the cluster. Apparently, there is a flag you need to enable in the nodes like KUBELET_EXTRA_ARGS="--node-ip=<your node ip address>". Once I got this sorted out by modifying /etc/systemd/system/kubelet.service.d/10-kubeadm.conf , my nodes were able to join the cluster properly and I was ready to do actual development. Or so I thought.<p>There is this issue of Loadbalancer. I had no idea that the only way to get Kubernetes to work and expose deployed services require a cloud vendor specific load balancer. If you deploy Kubernetes using Kubeadmin and VMs, you do not get a load balancer. So now I have to deploy something called MetalLB or create services of type NodePort so that they can be accessed using node ip addresses. MetalLB requires knowledge of BGP which I don't have. So I will stick to NodePort.<p>So now I have to deploy a vm with Haproxy as the Loadbalancer that could forward the calls to Nodeports of my services on my Kubernetes cluster on my laptop.<p>I have been told it is roses all the way once the cluster is working with the load balancer. Or so I think.
i quite like "kubernetes the hard way" by Kelsey Hightower <a href="https://github.com/kelseyhightower/kubernetes-the-hard-way" rel="nofollow">https://github.com/kelseyhightower/kubernetes-the-hard-way</a><p>not sure how up-to-date it is, but it really helped me understand how k8s works.
I know that K8s isn't Docker, but discussing learning the former, does anyone have a suggestion for learning the latter? I know what Docker is and have even used it for a production service, but I definitely don't feel like I've learned it "properly". I vaguely recall reading some of the Docker documentation and was underwhelmed with its ability to onboard newbies.