Prepare an existing Kubernetes cluster
You can use your existing Kubernetes cluster as the foundation to take advantage of Mission Control features. If you don’t bring your own Kubernetes cluster, you must create one on bare-metal/VM.
Installing Mission Control into your environment includes an upgrade to the installation on a control plane Kubernetes cluster, and then, if required, on one or more data plane Kubernetes clusters. Online or offline instructions are available.
Installing a data plane requires a separate cluster that is already running in control plane mode. |
Provision a Kubernetes cluster
Depending on your environment, you can provision a Kubernetes cluster either through a cloud console or through internal processes and APIs. Here is a list of many common Kubernetes services available:
Ensure that all database pods can route to each other. This is a critical requirement for proper operation and data consistency. The requirement applies to:
To achieve this:
Failure to establish proper pod-to-pod routing results in:
|
Node groups
To install Mission Control, opt for either:
- homogeneous
-
Hardware where all instances are of the same specifications.
- heterogeneous
-
Where different pools of hosts are provisioned based on their expected workloads.
See your cloud provider documentation for heterogeneous hosts:
Prerequisites
You must have the following installed:
-
Helm CLI v3.6.0 or later.
-
Kubernetes 1.21.0 or later.
For more information about supported versions, see Supported platforms.
Required Kubernetes privileges
To install Mission Control, you need cluster administrator privileges because the installation process must:
|
If you don’t have cluster administrator privileges, you have two options:
-
Install Mission Control on a dedicated Kubernetes cluster. DataStax recommends this option as it provides better isolation and control.
-
Request installation assistance from your cluster administrators. This is a common approach in production environments where users don’t have the necessary permissions for initial setup.
While you need cluster administrator privileges for installation, Mission Control itself creates and manages the necessary resources. Once installed, you can manage your namespaces and pods with standard Kubernetes user permissions.
Label worker nodes
Categorize worker nodes in the Kubernetes cluster based on their intended workloads as platform or database workers.
Platform workers host Mission Control components, whereas database workers are where DataStax Enterprise (DSE), Hyper-Converged Database (HCD), and Apache Cassandra® pods are scheduled.
Assign the appropriate role to each worker node:
kubectl label nodes NODE_NAME mission-control.datastax.com/role=platform
kubectl label nodes NODE_NAME mission-control.datastax.com/role=database
Replace NODE_NAME
with the name of your node.
If you do not label at least one node with the platform role, some Mission Control components might not run because Kubernetes will not schedule the pods. |
Install Mission Control dependencies
Before you install Mission Control, you must install the following dependencies:
KOTS is not required for Helm installations. |
Install Cert Manager
Mission Control uses Cert Manager to handle the issuance and automation of TLS certificates, making it a prerequisite for Mission Control’s installation.
Before installing Mission Control, you must install Cert Manager and KOTS.
You cannot specify a custom release name or custom namespace name.
Any name other than |
Install Cert Manager by running these Helm CLI tool commands:
helm repo add jetstack https://charts.jetstack.io --force-update
helm repo update
helm install \
cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--version v1.16.1 \
--set installCRDs=true
This command creates pods in the cert-manager
namespace in your Kubernetes cluster.
Install Kubernetes Off-The-Shelf (KOTS)
To finish setting up Mission Control dependencies, choose the online or offline mode.
-
Online install
-
Offline (airgap) install
Mission Control uses KOTS as a user-friendly interface for installing a control plane or a data plane.
-
Install KOTS by running the following command:
kubectl kots install mission-control --namespace NAMESPACE
Replace
NAMESPACE
with the namespace where you want to install KOTS. The default namespace ismission-control
.After you answer the prompts, the program provides port forwarding to access the KOTS web interface.
Important: Record the password value you provide to the prompt, and open the URL that the program returns in your browser. Continue to installation of Mission Control.
If the port forwarding session goes down, restart it:
kubectl kots admin-console -n NAMESPACE
Replace
NAMESPACE
with the namespace where you want to install KOTS. The default namespace ismission-control
.This restarts the port forwarding session. To exit, press
Control+C
.
You have prepared your Kubernetes environment for an online or offline Mission Control installation.
-
Install KOTS.
Mission Control uses KOTS as a user-friendly interface for installing a control plane or a data plane.
-
Validate
kots kubectl
plugin version. Ensure that yourkots kubectl
plugin version matches the version of KOTS that you are about to install:kubectl kots version
Ensure that the displayed version number matches the version string in the filename for
kotsadm.tar.gz
. -
Load KOTS container images by running the following command (with substitutions):
kubectl kots admin-console push-images ./kotsadm.tar.gz REGISTRY_HOST \ --registry-username RW_USERNAME \ --registry-password RW_PASSWORD
Replace the following:
-
REGISTRY_HOST
: The container registry hostname -
RW_USERNAME
: The container registry read / write account username -
RW_PASSWORD
: The container registry read / write account password
-
-
Install KOTS by running the following command (with substitutions):
kubectl kots install mission-control \ --kotsadm-registry REGISTRY_HOST \ --kotsadm-namespace mission-control \ --registry-username RO_USERNAME \ --registry-password RO_PASSWORD
Replace the following:
-
REGISTRY_HOST
: The container registry hostname -
RO_USERNAME
: The container registry read only account username -
RO_PASSWORD
: The container registry read only account password
-
-
Next steps
After you have prepared your Kubernetes environment, continue with an online or offline installation of Mission Control.