This is a visual guide to compliment the process of setting up your own Kubernetes Cluster on Google Cloud. This is a visual guide to Kelsey Hightower GIT project called Kubernetes The Hard Way. It can be challenging to remember all the steps a long the way, I found having a visual guide like this valuable to refreshing my memory.
Provision the network in Google Cloud
External IP Address
Provision Controllers and Workers – Compute Instances
Controller and Worker Instances
Workers will have pod CIDR
Provision a CA and TLS Certificates
Client & Server Certificates
Kubelet Client Certificates
Controller Manager Client Certificates
Kube Proxy Client Certificates
Scheduler Client Certificates
Kubernetes API Server Certificate
Service Account Key Pair
Certificate Distribution – Compute Instances
Generating Kubernetes Configuration Files for Authentication
Generating the Data Encryption Config and Key
Bootstrapping etcd cluster
Use TMUX set synchronize-panes on to run on multiple instances at same time. Saves time!
Notice where are using TMUX in a Windows Ubuntu
Linux Subsystem and running commands in parallel to save a lot of time.
The only manual command is actually ssh into each controller, once in, we activate tmux synchronize feature. So what you type in one panel will duplicate to all others.
Bootstrapping the Control Pane (services)
Bootstrapping the Control Pane (LB + Health)
Required Nginx as Google health checks does not support https
Bootstrapping the Control Pane (Cluster Roles)
Bootstrapping the Worker Nodes
Configure kubectl remote access
Provisioning Network Routes
DNS Cluster Add-On
First Pod deployed to cluster – using CoreDNS
Once you have completed the install of your kubernetes cluster, ensure you tear it down after some time to ensure you do not get billed for the 6 compute instances, load balancer and public statis ip address.
A big thank you to Kelsey for setting up a really comprehensive instruction guide.