We often hear customers ask if it is possible to run containers and Kubernetes on HC3. The answer is yes! Many of our customers have containerized workloads running on HC3 today and we expect the adoption to increase over the coming years as more and more application vendors take advantage of the portability provided by containers. The more complex these container-based applications become, the more likely they will be deployed with an orchestration tool such as Kuberentes.
Why run Containers? Containers are wonderful in their ability to provide consistency from one environment to another (e.g. from the developer’s test environment to a VM running on HC3!). A container bundles together the entire runtime environment that includes the application, it’s dependencies, libraries/binaries, and the configuration files needed to run it.
Why run Kubernetes? Kubernetes is a widely adopted, open-source orchestration tool used for managing and running containers in production environments. It provides a framework for providing your containers resiliency, networking, load-balancing and scaling.
It is common to see these tools as a part of a larger CI/CD (continuous integration and continuous delivery) pipeline such as in the example below:
In this post, we will mainly focus on the bottom portion of that CI/CD pipeline showing kubernetes running containers on HC3 infrastructure. More specifically, I will walk through an example of running the Sock Shop (a demo app) using kubernetes on HC3 with k3os, a lightweight linux distribution built for the sole purpose of running Kubernetes clusters in edge environments where resources are constrained.
In the scope of this write up, we will:
Create a VM using the k3os distribution,
Initialize Kubernetes within that VM as the Server node for the Kubernetes cluster, and finally,
Install a sample online solution called Sock Shop that runs as containers, to be managed by Kubernetes.
As an example of the type of hardware found in this type of deployment, I’ll be using an HE150 cluster with 16GB of RAM, 500GB of NVMe SSD and a Core i3 CPU.
After downloading the k3os iso from the latest release and uploading to the cluster, simply create a new VM in HC3 selecting that iso.