15 Installing applications

 

This chapter covers

  • Reviewing Kubernetes application management
  • Installing the prototypical Guestbook application
  • Building a production-friendly version of the Guestbook app

Managing applications in Kubernetes is generally a lot easier then managing applications deployed on bare servers because all the configuration for applications can be done through a unified command-line interface. That said, as you move tens or hundreds of containers into a Kubernetes environment, the volume of configuration management that needs to be automated can be difficult to approach from a unified perspective. ConfigMaps, Secrets, API server credentials, and customization of volume types are just a few of the day-to-day paper cuts that can make Kubernetes administration tedious over time.

In this chapter, we’ll (finally) take a step back from the internal details of a Kubernetes implementation and spend a little bit of time looking at the higher-level aspects of application configuration and administration. We’ll start by thinking about what an application is and how we can install applications on Kubernetes.

15.1 Thinking about apps in Kubernetes

For our purposes, we’ll refer to a Kubernetes application as a collection of API resources that need to be deployed for a service. The canonical example of this might be the Guestbook application, defined at http://mng.bz/y4NE. This application includes

15.1.1 Application scope influences what tools you should use

15.2 Microservice apps typically require thousands of lines of configuration code

15.3 Rethinking our Guestbook app installation for the real world

15.4 Installing the Carvel toolkit

15.4.1 Part 1: Modularizing our resources into separate files

15.4.2 Part 2: Patching our application files with ytt

15.4.3 Part 3: Managing and deploying Guestbook as a single application

15.4.4 Part 4: Constructing a kapp Operator to package and manage our application

15.5 Revisiting the Kubernetes Operator

15.6 Tanzu Community Edition: An end-to-end example of the Carvel toolkit

Summary