Automating Kubernetes the Hard Way #1

1 minute read

I have been working on a script to set up Kubernetes in CentOS 7 environment. I had one before. But that one skips setting up secure internal communication so it doesn’t have to deal with the certificate generation. I wanted it to be closer to production. Comparing to kubeadm, it’s more transparent. I got to see what’s under the hood.
It’s basically an automation of Kubernetes the Hard Way. Tons of thanks to Kelsey Hightower.

I’ll try to put down what I’ve learnt in this journey, probably in several blog posts.

Here are the  planned features of my script:

  • Run on CentOS 7 and RHEL 7.4+ hosts. Other Linux distribution should work too if proper modifications are made on the package installation part;
  • Main components:

Kubernetes 1.9.8,

Etcd: 3.2.1

Flannel: 0.5.5

Docker: 17.3.2

  • TLS enabled on all component communications with self-signed certificate
  • Node+RBAC mode for access control
  • All binaries included for installation in environment without access to Internet or a decent CentOS repository
  • Deployer can decide to put etcd, master or worker nodes together or separate them in any combination
  • Ease of installation: config and generate settings for all nodes in one place, copy the whole package to every node and run the same command, everything should be set up.

Source code on GitLab:


Categories: Tech