- Understand how nodes/pods/service communicates
- Understand basic objects: Deployment, Service, Pods.
- Get hands-on experience troubleshooting k8s low-level stack
You need to setup 2 nodes(master,worker) cluster using kubeadm utility and make it work.
- https://kubernetes.io/docs/concepts/cluster-administration/networking/#kubernetes-model
- https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/
- https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/
- https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
- https://kubernetes.io/docs/concepts/services-networking/service/
- Use local virtualbox and vagrant to maintain your dev environment.
- Use template Vagrantfile supplied in repository. It's sufficient to create clean 2-nodes CentOS sandbox.
-
Prepare environment.
- Install virtualbox, vagrant.
- Navigate to folder with Vagrantfile
- Vagrant up master, vagrant up worker
- Make sure you're able to reach internet from inside your environment.
-
Read and understand materials
-
Follow guide to create 2-node control-plane k8s cluster
- Configure cluster to use only worker node for workloads
-
Use
weave
networking plugin -
Make cluster working ( resolve all inconsistencies in given environment)
-
Create simple pair of Deployment/Service.
- Use community docker nginx image as workload.
- Save .yaml manifests in your answers folder.
-
Create simple troubleshooting pod inside k8s.
- You should be able to attach/detach it on-demand.
-
Make sure you're able to reach your nginx pod AND Service from:
- Master node
- Worker node
- service pod
-
Replicate above behavior using
flanel
networking plugin. -
Write provisioner(s) that configures master-worker k8s in given environment with
weave
plugin. -
Write provisioner(s) that configures master-worker k8s in given environment with
flannel
plugin -
Answer questions.