We'll start the hands-on part by going back to the local copy of the vfarcic/k8s-specs repository and pulling the latest version.
1 cd k8s-specs
2 3 git pull
Just as in the previous chapters, we'll need a cluster if we are to do the hands-on exercises. The rules are still the same. You can continue using the same cluster as before, or you can switch to a different Kubernetes flavor. You can continue using one of the Kubernetes distributions listed as follows or be adventurous and try something different. If you go with the latter, please let me know how it went, and I'll test it myself and incorporate it into the list.
The Gists with the commands I used to create different variations of Kubernetes clusters are as follows.
- docker4mac-3cpu.sh: Docker for Mac with 3 CPUs, 3 GB RAM, and with nginx Ingress (https://gist.github.com/vfarcic/bf08bce43a26c7299b6bd365037eb074).
- minikube-3cpu.sh: minikube with 3 CPUs, 3 GB RAM, and with ingress, storage-provisioner, and default-storageclass addons enabled (https://gist.github.com/vfarcic/871b5d7742ea6c10469812018c308798).
- kops.sh: kops in AWS with 3 t2.small masters and 2 t2.medium nodes spread in three availability zones, and with nginx Ingress (assumes that the prerequisites are set through Appendix B) (https://gist.github.com/vfarcic/2a3e4ee9cb86d4a5a65cd3e4397f48fd).
- minishift-3cpu.sh: minishift with 3 CPUs, 3 GB RAM, and version 1.16+ (https://gist.github.com/vfarcic/2074633688a85ef3f887769b726066df).
- gke-2cpu.sh: Google Kubernetes Engine (GKE) with 3 n1-highcpu-2 (2 CPUs, 1.8 GB RAM) nodes (one in each zone), and with nginx Ingress controller running on top of the "standard" one that comes with GKE. We'll use nginx Ingress for compatibility with other platforms. Feel free to modify the YAML files if you prefer NOT to install nginx Ingress (https://gist.github.com/vfarcic/e3a2be59b0294438707b6b48adeb1a68).
- eks.sh: Elastic Kubernetes Service (EKS) with 2 t2.medium nodes, with nginx Ingress controller, and with a default StorageClass (https://gist.github.com/vfarcic/5496f79a3886be794cc317c6f8dd7083).
Now that we have a cluster, we can move into a more exciting part of this chapter. We'll start defining and executing stages and steps of a continuous deployment pipeline.