11 Dockerized microservices on K8s

 

This chapter covers

  • Setting up a Kubernetes cluster on AWS with Terraform
  • Automating application deployment on Kubernetes with Jenkins pipelines
  • Packaging and versioning Kubernetes Helm charts
  • Converting Compose files to Kubernetes manifests with Kompose
  • Running post-deployment tests and health checks within CI/CD pipelines
  • Discovering Jenkins X and setting up serverless CI/CD pipelines

The preceding chapter covered how to set up a CI/CD pipeline from scratch for containerized applications running in Docker Swarm (figure 11.1). This chapter covers how to deploy the same application in Kubernetes (K8s) and automate the deployment. In addition, you’ll learn how to use Jenkins X to simplify the workflow of cloud-native applications running in Kubernetes.

Figure 11.1 Current CI/CD pipeline workflow

Docker Swarm might be a good solution for beginners and smaller workloads. However, for large deployment and at a certain scale, you might want to consider shifting to Kubernetes.

For those of you who are AWS power users, Amazon Elastic Kubernetes Service (EKS) is a natural fit. Other cloud providers offer managed Kubernetes solutions, including Azure Kubernetes Service (AKS) and Google Kubernetes Engine (GKE).

11.1 Setting up a Kubernetes cluster

11.2 Automating continuous deployment flow with Jenkins

11.2.1 Migrating Docker Compose to K8s manifests with Kompose

11.3 Walking through continuous delivery steps

11.4 Packaging Kubernetes applications with Helm

11.5 Running post-deployment smoke tests

11.6 Discovering Jenkins X

Summary