The DevOps 2. 4 Toolkit: Continuous Deployment to Kubernetes: Continuously Deploying Applications with Jenkins to a Kubernetes Cluster

Viktor Farcic

Book 1 of DevOps Tookit from Viktor Farcic

Language: English

Publisher: Packt Publishing

Published: Nov 28, 2019

Description:

Just like other books I wrote, this one did not have a fixed scope. I did not start with an index. I didn't write a summary of each chapter in an attempt to define the scope. I do not do such things. There was only a high-level goal to explore continuous delivery and deployment inside Kubernetes clusters. What I did do, though, was to set a few guidelines.The first guideline is that "all the examples will be tested on all major Kubernetes platforms." Well, that might be a bit far-fetched. I'm aware that any sentence that mentions "all" together with "Kubernetes" is bound to be incorrect. New platforms are popping out like mushrooms after rain. Still, what I can certainly do is to choose a few of the most commonly used ones.Minikube and Docker for Mac or Windows should undoubtedly be there for those who prefer to "play" with Docker locally.AWS is the biggest hosting provider so Kubernetes Operations (kops) must be included as well.Since it would be silly to cover only un-managed cloud, I had to include managed Kubernetes clusters as well. Google Kubernetes Engine (GKE) is the obvious choice. It is the most stable and features rich managed Kubernetes solution. Adding GKE to the mix means that Azure Container Service (AKS) and Amazon's Elastic Container Service (EKS) should be included as well so that we can have the "big trio" of the hosting vendors that offer managed Kubernetes. Unfortunately, at the time of this writing (May 2018), Elastic Container Service (EKS) is in the preview stage and Amazon is providing access only to a relatively small number of people. AKS, on the other hand, is available but, at this moment, it is too unstable. So, I'm forced to scale down from the trio to GKE as the only managed Kubernetes we'll explore.Finally, a possible on-prem solution should be included as well. Since OpenShift shines in that area, the choice was relatively easy.All in all, I decided to test everything in minikube and Docker for Mac locally, AWS with kops as the representative of a cluster in the cloud, GKE for managed Kubernetes clusters, and OpenShift (with minishift) as a potential on-prem solution. That, in itself, already constitutes a real challenge that might prove to be more than I can chew. Still, making sure that all the examples work with all those platforms and solutions should provide some useful insights.Some of you already chose the Kubernetes flavor you'll use. Others might still wonder whether to adopt one or the other. Even though the comparison of different Kubernetes platforms is not the primary scope of the book, I'll do my best to explain the differences as they come.To summarize the guidelines, the book has to explore continuous delivery and deployment in Kubernetes using Jenkins. All the examples have to be tested in minikube, Docker for Mac (or Windows), AWS with kops, GKE, and OpenShift with minishift, and EKS.