This lab is for those who are new to building applications to run on Kubernetes or want a refresher. It covers:
- How to build container images
- How to run your application directly and locally on Kubernetes
- Tools you can use to improve your workflow
- How to manage manifests for deployment.
- Kubestr, an open source collection of tools to discover, validate and evaluate your Kubernetes storage options.
Is there pre-work for the lab?
Yes. Be sure to complete reading and studying this blog, the video description of the work to be performed during the lab, and the accompanying slides.
What is the structure of the lab?
The lab consists of two sections, both of which are approximately 40 minutes long. Your time may vary, depending on how quickly you pass either section.
Section 1 — Applications Background
This section will cover background topics and terminology for the relevance and use of applications in the Kubernetes world. Each topic will provide some review material on screen first, then pose a challenge question. You must answer the question correctly to proceed to the next section. You’ll learn:
- The what how and why of container images
- How containers relate to applications
- Stateless applications
- Short term apps that do not retain data regarding a transaction – (e.g. print services, microservices)
- Stateful applications
- Applications that typically use a database (e.g. MySQL) and process a read/write and thus retain information regarding each transaction involved
- Options for running applications locally/remotely/other
- Tools to help you build an application
- What’s involved in managing manifests
Section 2 — Hands-on Commands – Build an application
This section will cover Kubernetes keyboard commands needed to set up and scale an application in Kubernetes. Specific commands covered include:
- Discovering K8s storage
- Kubectl get storage class
- Choosing a data service- MySql (stateful data services and volume focus)
- Applying use case (PetClinic) for MySql
- Installing the app
- Exploring the app
- Using it as a service to expose the app
- Running multiple instances of the app
- Scaling your app
- Performing a rolling update
- Adding data
- Exploring persistent volume/ volume claim
In the more advanced section of the hands-on portion, you’ll learn how to install Kubestr, an open source collection of tools to discover, validate and evaluate your Kubernetes storage options. Kubestr can:
- Identify various storage options present in a cluster
- Validate if storage options are configured correctly
- Evaluate storage using common benchmarking tools such as FIO
Here’s a summary of the steps we’ll take as we install Kubester during the lab:
1) Install Kubestr
- Ensure that the Kubernetes context is set and the cluster is accessible through your terminal. (Does kubectl work?)
- Download the latest release here.
- Unpack the tool and make it an executable
chmod +x kubestr.
2) Discover available storage options:
3) Run an FIO test:
./kubestr fio -s <storage class>
- Additional options like
—fiofilecan be specified.
- For more information visit our fio page.
4) Check a CSI drivers snapshot and restore capabilities:
./kubestr csicheck -s <storage class> -v <volume snapshot class>
5) Install another storage class and use Kubestr to compare the two (GCP storage classes).
6) Link to the Application Transformation lab later to produce a sequence/template.