Approaches
The controller allows users to provision Kubernetes clusters on both "public cloud" and "on-premises" environments. The controller provides streamlined provisioning approaches that allow users to bring up a "managed" Kubernetes cluster in minutes.
Supported Environments¶
Type | Supported Provisioning Approaches |
---|---|
Bare Metal | Manual Provisioning |
Virtual Machine | Manual and Pre-Packaged Provisioning |
Public Cloud | Manual and Auto Provisioning |
Provisioning Approaches¶
The controller supports multiple types of cluster provisioning approaches.
Auto Provisioned Clusters¶
Primarily designed for public cloud environments where core infrastructure (compute, storage, networking) can be programmatically created and configured by the controller.
This is designed to be a completely automated, zero touch experience for the user. This approach is currently supported for "Amazon AWS EC2", "Amazon EKS" and "Google Compute Platform (GCP)" public cloud environments.
- Public Cloud providers offer their services in multiple locations in the world.
- Each location is composed of Regions and Availability Zones (AZ).
- Each Region has multiple, isolated locations known as Availability Zones.
For High Availability (HA) clusters, the controller automatically provisions the "master nodes" on different AZs. This ensures that applications deployed on the clusters are protected from issues such as lightning strikes, tornadoes, earthquakes etc.
Each AZ can be multiple data centers (typically 3) that are fully isolated with their own power infrastructure and are physically separated by a meaningful distance, many kilometers, from any other AZ, although all are within 100 km (60 miles of each other). All AZs are interconnected with high-bandwidth, low-latency networking, over fully redundant, dedicated metro fiber.
Manual Provisioning¶
A provisioning approach that is agnostic to the type and provider of the underlying infrastructure (bare metal, VM, public cloud).
With this approach, customers are responsible for the underlying hardware and the Operating System (OS) for the nodes.
Once the provided binary (aka conjurer) is run on each node, it downloads and configures all the software required for a production grade, Kubernetes cluster.
Pre-Packaged Provisioning¶
Pre-packaged images for OpenStack (qcow image) and VMware (OVA) environments. The provided images comprise the Operating System (OS), upstream Kubernetes, all components for the default blueprint.
These images can be pre-staged on remote systems and be used to provision a fully functional, production grade cluster with all the critical infrastructural add-ons in a few minutes.
Declarative Provisioning¶
Meant to be used for scenarios where a managed cluster needs to be deployed programmatically using REST APIs. For example, a Jenkins based pipeline that provisions a cluster.
Customers can create version controlled "cluster specifications" in their Git repos and provision "reproducible" cluster infrastructure. This workflow can be embedded into a CI platform like Jenkins.