Mirantis Container Cloud is a set of microservices that are deployed using Helm charts and run in a Kubernetes cluster. Container Cloud is based on the Kubernetes Cluster API community initiative.
The following diagram illustrates an overview of Container Cloud and the clusters it manages:
All artifacts used by Kubernetes and workloads are stored on the Container Cloud content delivery network (CDN):
mirror.mirantis.com(Debian packages including the Ubuntu mirrors)
binary.mirantis.com(Helm charts and binary artifacts)
mirantis.azurecr.io(Docker image registry)
All Container Cloud components are deployed in the Kubernetes clusters. All Container Cloud APIs are implemented using the Kubernetes Custom Resource Definition (CRD) that represents custom objects stored in Kubernetes and allows you to expand Kubernetes API.
The Container Cloud logic is implemented using controllers.
A controller handles the changes in custom resources defined
in the controller CRD.
A custom resource consists of a
spec that describes the desired state
of a resource provided by a user.
During every change, a controller reconciles the external state of a custom
resource with the user parameters and stores this external state in the
status subresource of its custom resource.
Container Cloud regions¶
Container Cloud can have several regions. A region is a physical location, for example, a data center, that has access to one or several cloud provider back ends. A separate regional cluster manages a region that can include multiple providers. A region must have a two-way (full) network connectivity between a regional cluster and a cloud provider back end. For example, an OpenStack VM must have access to the related regional cluster. And this regional cluster must have access to the OpenStack floating IPs and load balancers.
The following diagram illustrates the structure of the Container Cloud regions:
Container Cloud cluster types¶
The types of the Container Cloud clusters include:
- Bootstrap cluster
Runs the bootstrap process on a seed node. For the OpenStack, AWS, Equinix Metal, Microsoft Azure, or VMware vSphere-based Container Cloud, it can be an operator desktop computer. For the baremetal-based Container Cloud, this is the first temporary data center node.
Requires access to a provider back end: OpenStack, AWS, Azure, vSphere, Equinix Metal, or bare metal.
Contains minimum set of services to deploy the management and regional clusters.
Is destroyed completely after a successful bootstrap.
- Management and regional clusters
Runs all public APIs and services including the web UIs of Container Cloud.
Does not require access to any provider back end.
Is combined with management cluster by default.
Runs the provider-specific services and internal API including LCMMachine and LCMCluster. Also, it runs an LCM controller for orchestrating managed clusters and other controllers for handling different resources.
Requires two-way access to a provider back end. The provider connects to a back end to spawn managed cluster nodes, and the agent running on the nodes accesses the regional cluster to obtain the deployment information.
Requires access to a management cluster to obtain user parameters.
Supports multi-regional deployments. For example, you can deploy an AWS-based management cluster with AWS-based and OpenStack-based regional clusters.
Management and regional clusters comprise Container Cloud as product. For deployment details, see Deployment Guide and Deploy an additional regional cluster (optional) sections for the required cloud provider.
- Managed cluster
A Mirantis Kubernetes Engine (MKE) cluster that an end user creates using the Container Cloud web UI.
Requires access to a regional cluster. Each node of a managed cluster runs an LCM Agent that connects to the LCM machine of the regional cluster to obtain the deployment details.
An attached MKE cluster that is not created using Container Cloud. In such case, nodes of the attached cluster do not contain LCM Agent. For supported MKE versions that can be attached to Container Cloud, see Release Compatibility Matrix.
Baremetal-based managed clusters support the Mirantis OpenStack for Kubernetes (MOSK) product. For details, see MOSK documentation.
The following diagram illustrates the distribution of services between each type of the Container Cloud clusters: