Local Environment¶
The most basic tooling needed for running kubernetes locally is minikube and kubectl, both are upstream Google projects.
Minikube¶
Upstream Documentation: https://minikube.sigs.k8s.io/docs/start/
Minikube is a tool which enables you to run a single kubernetes node locally, usually isolated in a VM, but it can run in a container runtime as well.
There is no minikube RPM in fedora repositories but we have an open issue to work on it if you are interested: https://pagure.io/kube/fedora-kube/issue/1
Minkube has a few configuration paramaters which can be listed by running minikube config.
It is a good idea to set the following if you want to:
driver: sets the default driver to run minikube:
minikube config set driver kvm2(vm-driver still works but it is outdated)cpus: the amount of CPUs for minikube to use:
minikube config set cpus 4memory: the amount of available memory in the instance/VM (Mbs):
minikube config set memory 4000storage: the amount of available storage:
minikube config set storage 100GB
There is a known issue where a pod won’t be able to reach its own service by using the service name but there is a manual fix for it:
minikube ssh
sudo ip link set docker0 promisc on
KubeCTL¶
KubeCTL is the kubernetes CLI tool to interact with a kubernetes cluster, you can download it from the upstream kubernetes website: https://kubernetes.io/docs/tasks/tools/install-kubectl/
You tell kubetl which configfile to use by changing the value of the KUBECONFIG env var, it will use $HOME/.kube.config if this env variable is not set (minikube will update your default config file with the proper url/credentials).