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 4`` * memory: the amount of available memory in the instance/VM (Mbs): ``minikube config set memory 4000`` * storage: 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: .. code-block:: bash 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).