Deploying the online boutique sample application
Introduction
In this section you will learn how to deploy the online boutique sample application using Kustomize. It is tool for customizing Kubernetes configurations. It has the following features to manage application configuration files:
- generating resources from other sources
- setting cross-cutting fields for resources
- composing and customizing collections of resources
A more common use case of Kustomize is that you’ll need multiple variants of a common set of resources, e.g., a development, staging and production variant. For this purpose, kustomize supports the idea of an overlay and a base. Both are represented by a kustomization file. The base declares things that the variants share in common (both resources and a common customization of those resources), and the overlays declare the differences. This is well represented in the structure of the online boutique sample application repository structure.
Info
You will be using the kubectl built-in version of Kustomize.
Prerequisites
To complete this section you will need:
- A container registry already set up as explained in the Set up DOCR section.
- The
microservices-demoimages build and pushed to DOCR as explained in the Set up DOCR --> Building and pushing docker images to DOCR - A Kubernetes cluster (DOKS) up and running as explained in the Set up DOKS section.
- Doctl utility already installed as explained in the Installing Required Tools -> Doctl section.
Bootstrap the online boutique application using Kustomize
-
Clone your fork of the kubernetes-sample-apps if you haven't already (make sure to replace the <> placeholders).
Info
The
kubernetes-sample-appsrepository was forked initially in the Setup DOCR section. -
Change directory to the
microservices-demofolder: -
Deploy the Kustomization to your cluster using
kubectl:Note
To verify that the deployment was succesful run the
kubectl get all -n microservices-demo-prodcommand. The application is deployed to theproductionenvironment using the images built and pushed in the Setup DOCR section. -
Access the web interface by port-forwarding the
frontendservice: -
Open a web browser and point to localhost:9090. You should see the online boutique welcome page.
Note
Although you open a connection to localhost in your web browser, traffic is forwarded to the remote production cluster by
kubectl.
Next, you will deploy and configure the Nginx ingress controller for your production cluster (DOKS) to expose microservices to the outside world. You will also set up cert-manager to automatically issue valid TLS certificates for your applications.