0%

Book Description

An exploration of continuous deployment to a Kubernetes cluster, using a wide range of Kubernetes platforms with instructions on how to develop a pipeline on a few of the most commonly used CI/CD platforms.

Key Features

  • The fifth book of DevOps expert Viktor Farcic's bestselling DevOps Toolkit series, with a discussion of the difference between continuous delivery vs. continuous deployment, and which is best for the user
  • Guides readers through the continuous deployment process using Jenkins in a Kubernetes cluster
  • Provides an overview of the best practices for building, testing, and deploying applications through fully automated pipelines.

Book Description

Building on The DevOps 2.3 Toolkit: Kubernetes, Viktor Farcic brings his latest exploration of the Docker technology as he records his journey to continuously deploying applications with Jenkins into a Kubernetes cluster.

The DevOps 2.4 Toolkit: Continuously Deploying Applications with Jenkins to a Kubernetes Cluster is the latest book in Viktor Farcic's series that helps you build a full DevOps Toolkit. This book guides readers through the process of building, testing, and deploying applications through fully automated pipelines.

Within this book, Viktor will cover a wide-range of emerging topics, including an exploration of continuous delivery and deployment in Kubernetes using Jenkins. It also shows readers how to perform continuous integration inside these clusters, and discusses the distribution of Kubernetes applications, as well as installing and setting up Jenkins.

Work with Viktor and dive into the creation of self-adaptive and self-healing systems within Docker.

What you will learn

  • Gain an understanding of continuous deployment
  • Learn how to build, test, and deploy applications into Kubernetes
  • Execute continuous integration inside containers

Who this book is for

Readers with an intermediate level understanding of Kubernetes and hands-on experience.

Table of Contents

  1. Title Page
  2. Copyright and Credits
    1. The DevOps 2.4 Toolkit
  3. About Packt
    1. Why subscribe?
  4. Dedication
  5. Contributor
    1. About the author
  6. Preface
    1. Overview
    2. Audience
    3. Prerequisites
      1. Download the example code files
      2. Download the color images
      3. Conventions used
    4. Get in touch
      1. Reviews
    5. Rumblings Of An Old Man
      1. What Is Continuous Deployment?
  7. Deploying Stateful Applications at Scale
    1. Creating a cluster
    2. Using StatefulSets to run Stateful applications
    3. Using Deployments to run Stateful applications at scale
    4. Using StatefulSets to run Stateful applications at scale
    5. Using sidecar containers to initialize applications
    6. To StatefulSet or not to StatefulSet
    7. What now?
  8. Enabling Process Communication with Kube API Through Service Accounts
    1. Creating a cluster
    2. Configuring Jenkins Kubernetes plugin
    3. Exploring the default ServiceAccount
    4. Creating ServiceAccounts
    5. Configuring Jenkins Kubernetes plugin with ServiceAccounts
    6. Using ServiceAccounts from side-car containers
    7. What now?
  9. Defining Continuous Deployment
    1. To continuously deliver or to continuously deploy?
    2. Defining continuous deployment goals
    3. Defining continuous deployment steps
    4. Creating a cluster
    5. Creating Namespaces dedicated to continuous deployment processes
    6. Defining a Pod with the tools
    7. Executing continuous integration inside containers
    8. Running functional tests
    9. Creating production releases
    10. Deploying to production
    11. Running production tests
    12. Cleaning up pipeline leftovers
    13. Did we do it?
    14. What now?
  10. Packaging Kubernetes Applications
    1. Creating a cluster
    2. What Is Helm?
    3. Installing Helm
    4. Installing Helm Charts
    5. Customizing Helm installations
    6. Rolling back Helm revisions
    7. Using YAML values to customize Helm installations
    8. Creating Helm Charts
    9. Exploring files that constitute a Chart
    10. Upgrading Charts
    11. Helm vs. OpenShift templates
    12. What now?
  11. Distributing Kubernetes Applications
    1. Creating a cluster and retrieving its IP
    2. Using ChartMuseum
    3. Using Monocular
    4. What now?
  12. Installing and Setting Up Jenkins
    1. Creating a Cluster and retrieving its IP
    2. Running Jenkins
    3. Using Pods to run tools
    4. Running builds in different Namespaces
    5. Creating nodes for building container images
      1. Creating a VM with Vagrant and VirtualBox
      2. Creating Amazon Machine Images (AMIs)
      3. Creating Google Cloud Engine (GCE) images
    6. Testing Docker builds outside the cluster
    7. Automating Jenkins installation and setup
    8. What now?
  13. Creating a Continuous Deployment Pipeline with Jenkins
    1. Exploring the continuous deployment process
    2. Creating a cluster
    3. Installing Jenkins
    4. Defining the build stage
    5. Defining the functional testing stage
    6. Defining the release stage
    7. Defining the deploy stage
    8. What are we missing in our pipeline?
    9. Reusing pipeline snippets through global pipeline libraries
    10. Consulting global pipeline libraries documentation
    11. Using Jenkins file and Multistage builds
    12. What now?
  14. Continuous Delivery with Jenkins and GitOps
    1. Creating a cluster
    2. Defining the whole production environment
    3. What is the continuous delivery pipeline?
    4. Exploring application's repository and preparing the environment
    5. Switching from Scripted to Declarative Pipeline
    6. Demystifying Declarative Pipeline through a practical example
    7. Creating and running a continuous delivery job
    8. What is GitOps and do we want it?
    9. Upgrading the production environment using GitOps practices
    10. Creating a Jenkins job that upgrades the whole production environment
    11. Automating upgrade of the production environment
    12. High-level overview of the continuous delivery pipeline
    13. To continuously deploy or to continuously deliver?
    14. What now?
  15. Appendix A: Installing kubectl and Creating a Cluster with minikube
    1. Running Kubernetes Cluster Locally
    2. Installing kubectl
    3. Installing Minikube
    4. Creating a local Kubernetes cluster with Minikube
    5. What Now?
  16. Appendix B: Using Kubernetes Operations (kops)
    1. Preparing for the cluster setup
    2. Creating a Kubernetes cluster in AWS
    3. Installing Ingress and Tiller (server side Helm)
    4. Destroying the cluster
  17. Now It Is Your Turn
    1. Contributions
  18. Other Books You May Enjoy
    1. Leave a review - let other readers know what you think
3.89.116.152