VCD Container Service Extension Series-Part 1: Introduction & Architecture

I was working on VMware Container Service Extension (CSE) for the last 2 weeks and it was a great learning opportunity for me. My CSE deployment did not go smoothly and I faced many issues with very little or no idea on how to fix them. But kudos to Joe Mann for lending a helping hand to fix all infra-related issues.

Through this blog series, I want to pen down my experience of working with CSE and the challenges which I encountered, and how those issues were resolved.

What is VMware Container Service Extension?

VMware Container Service is an extension to Cloud Director which enables cloud providers to offer Kubernetes-as-a-Service (on top of VCD) to their tenants. Kubernetes as a service helps tenants to quickly deploy the Kubernetes cluster in just a few clicks directly from the VCD portal. 

Cloud Providers upload customized Kubernetes templates in public catalogs which tenants leverage to deploy K8 clusters in self-contained vApps. Once the K8 cluster is available, developers can use their native Kubernetes tooling to interact with the cluster.

Container Service Extension Components

The following components constitute a CSE environment:

1: CSE Server: Any Linux OS based VM with CSE python module installed along with VCD CLI

During CSE installation, installation scripts automatically download and install required binaries like Kubernetes, Docker, etc in the templates created by CSE and then uploads these customized templates in the VCD catalog.

2: CSE Client: Any Linux OS-based VM with VCD CLI installed. CSE client interacts with VCD and CSE via Public APIs to install, configure & manage Kubernetes cluster.

3: VCD Infrastructure: A typical VCD infrastructure includes VCD, NSX-T, and vSphere. CSE interacts with VCD over AMQP protocol, so we need RabbitMQ or a similar AMQP broker. 

VCD platform provides compute, network, security, and multi-tenancy on which Kubernetes clusters is/are deployed.

Container Service Extension Architecture

CSE extends VCD Public API to manage the lifecycle of Kubernetes clusters. To extend VCD API, an AMQP broker is required.  To know more about extending VCD API, please check out this Whitepaper

CSE comes with a vcd-cli extension that leverages the public CSE API to manage the lifecycle of the Kubernetes cluster. 

The below diagram taken from Timo Sugliani blog shows the high-level architecture of CSE.

VCD-CSE-Architecture

How CSE Works

The below diagram taken from CSE official documentation shows the entire workflow of how CSE interacts with VCD, AMQP, and CSE clients.

cse-workflow

References & Motivation

VCD CSE Official Documentation

Joe Mann CSE Blog Series

Timo Sugliani CSE Blog Series

Introduction Video

[embedyt] https://www.youtube.com/watch?v=Tgl25qUtQVs[/embedyt]

And that’s it for this post. In the next post of this series, I will walk through the steps of installing the CSE server.

I hope you enjoyed reading this post. Feel free to share this on social media if it is worth sharing 🙂

Leave a Reply