Minimal restricted Kubernetes Cluster on Ubuntu in production


#1

I have a working production environment on a Ubuntu 18.04 machine with an application running with docker-compose (dedicated 8gb RAM and a Intel i7-4790). As an intermediate step for going cloud, I am migrating it to Kubernetes with Kompose. For the development environment, I am using minikube which is not intended for production.

From reading Out of the Clouds onto the Ground: How to Make Kubernetes Production Grade Anywhere I’ve seen some recommended standards for production-grade, but I can sacrifice some of the distributed advantages of Kubernetes in the beginning because this applications availability is not critical.

I would like to give a step ahead of using minikube in production, for further cloud deployment, but I only have this machine to start with. What would you recommend in my case?


#2

Single node kubeadm could be a good place to start here.


#3

I started to try your suggestion… read the documentation but I am stuck with the decision of which CNI to use since Minikube has a default one and Kubeadm doesn’t. I saw flannel, calico and weave net are popular choices and my knowledge about network is a bit poor.

What would you use for my on-premisses situation? Will be compatible with cloud providers (AWS, GCP, Azure) in the future as I go to the cloud?


#4

Calico is pretty great, it support network policies which is important for helping keep things good and secure and I think that’s what GKE uses.

Here’s a nice run down of the big ones and the ups and downs they have, https://kubedex.com/kubernetes-network-plugins/