Mission Control Installation
Mission Control is the next generation operations platform for DataStax Enterprise Hyper-Converged Database (HCD) 1.0. It simplifies management of all operations across an array of hosting options from the cloud, to hybrid, to on-premises, in environments on bare-metal or virtual machines (VMs). Powered by the advanced automation that runs DataStax Astra DB, Mission Control provides 24/7 automated operations of nodes, datacenters, and clusters.
Mission Control v1.3.0+ supports Hyper-Converged Database (HCD) 1.0, the new hyper-converged product featuring vector indexes. These new indexes enable application development using generative Artificial Intelligence (AI).
Easily deploy Hyper-Converged Database (HCD) 1.0 in a production-ready environment across multiple servers and immediately start testing. To run a single-node development instance, consider following the container-based instructions.
Run Hyper-Converged Database (HCD) 1.0 in Mission Control
Mission Control is the easiest way to deploy both self-managed and cloud-based installations across multiple nodes running either in the same datacenter or on multiple clouds. Mission Control builds on the rock-solid K8ssandra project to manage the configuration and life cycle of core services built around cloud-native including Kubernetes (K8s).
After meeting the Prerequisites, install Mission Control on either:
The |
Prerequisites
-
A downloaded Mission Control license file.
Mission Control requires a license file to provide Kubernetes Off-The-Shelf (KOTS) with required information out installation. Information includes customer identifiers, software update channels, and entitlements.
Are you exploring Mission Control as a solution for your organization? Fill out this registration form to request a community edition license.
If you need a replacement license file or a non-community edition, or want to convert your Public Preview license to use a stable channel release version, please contact your account team.
-
kubectl
: the Kubernetes command line tool, v1.22 or later, allows direct interactions with the Kubernetes cluster. -
cert-manager
: certificate management for Kubernetes. Follow the installation instructions ifcert-manager
is not yet installed in the cluster. -
Kots CLI
: Mission Control is packaged with Replicated, and is installed through theKots
plugin forkubectl
. Follow the installation instructions. -
An existing cluster running with at least three worker nodes (each with a minimum of four cores and 8GB of RAM).
-
Kubeconfig
file orcontext
pointing to a` Control Plane` Kubernetes cluster.
Choose how to install Mission Control
- Install Mission Control on existing Kubernetes infrastructure
-
Mission Control is compatible with cloud-managed Kubernetes services such as Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE), and Azure Kubernetes Service (AKS) as well as the on-premises deployment tools
kubeadm
,Openshift
,RKE
, andKind
.-
Ensure that the
Kubernetes context
is targeting the right cluster, and then run the following command:kubectl kots install mission-control -n mission-control
Results
• Deploying Admin Console • Creating namespace ✓ • Waiting for datastore to be ready ✓ Enter a new password to be used for the Admin Console: •••••••••• • Waiting for Admin Console to be ready ✓ • Press Ctrl+C to exit • Go to http://localhost:8800 to access the Admin Console
The installer prompts the user to set an administrative password for the
Kots UI
and then to port-forward that admin console tolocalhost
: -
Proceed to Finalize the Mission Control installation.
-
Finalize the Mission Control installation
-
Log into the
Kots admin UI
and go through the certificates-related screens ending with selecting a Self Signed certificate for https purposes. -
When prompted, upload your previously downloaded and saved license file. After the system accepts your license file, it displays a configuration window.
-
In the configuration window, select the corresponding checkbox to enable the following settings:
-
Control Plane - specifies whether Mission Control should be deployed in control plane versus data plane mode.
-
Advanced Options Allow monitoring components on DSE nodes - to deploy monitoring components (such as Vector and Mimir) on DSE worker nodes. Enable this only for constrained environments.
-
Enable Observability Stack - which requires setting up an object storage connection to either S3 or GCS.
-
-
After clicking Continue, a preflight check runs. All green circles with checkmarks indicates success and allows you to click on Deploy to finalize the installation:
-
The deployment continues and displays Mission Control installation status with a Currently deployed version label.
Mission Control is now operational! Continue with Deploy a HCD 1.0 cluster.
Deploy a HCD 1.0 cluster
Mission Control supports Hyper-Converged Database (HCD) and this is one way to set it up.
-
On a local machine create a manifest file named
hcd1.0cluster.yaml
to describe the cluster topology. Copy the following code segments as prescribed into the file:apiVersion: missioncontrol.datastax.com/v1alpha1 kind: HCDCluster metadata: name: test namespace: mission-control spec: serverVersion: 1.0 storageConfig: cassandraDataVolumeClaimSpec: storageClassName: default accessModes: - ReadWriteOnce resources: requests: storage: 10Gi config: jvmOptions: heapSize: 1G datacenters: - metadata: name: dc1 size: 3 resources: requests: memory: 2Gi
-
Either change the
storageClassName
to a preferred value, matching the ones available in the installation, or leave the default value. To determine which storage classes are available in the environment, run:kubectl get sc
-
When using VMs with Mission Control embedded Kubernetes runtime, append the
hostNetwork
section at the same level as theconfig
section in thehcd1.0cluster.yaml
file:... networking: hostNetwork: true config: ...
This enables the deployed services to be directly available on the network.
-
Apply the manifest by running the following
kubectl
command from a machine console:kubectl apply -f hcd10cluster.yaml
After a few seconds, check that the pods representing the nodes appear:
$ kubectl get pods -n mission-control
Results
NAME READY STATUS RESTARTS AGE cass-operator-controller-manager-6487b8fb6c-xkjjx 1/1 Running 0 41m k8ssandra-operator-55b44544d6-n8gs8 1/1 Running 0 41m mission-control-controller-manager-54c64975cd-nvcm7 1/1 Running 0 41m test-dc1-default-sts-0 0/2 Pending 0 7s test-dc1-default-sts-1 0/2 Pending 0 7s test-dc1-default-sts-2 0/2 Pending 0 7s
Each node must go through the standard bootstrapping process, taking approximately 2 to 3 minutes. Upon completion, the nodes should display
2/2
under READY andRunning
under STATUS:NAME READY STATUS RESTARTS AGE cass-operator-controller-manager-6487b8fb6c-xkjjx 1/1 Running 0 50m k8ssandra-operator-55b44544d6-n8gs8 1/1 Running 0 50m mission-control-controller-manager-54c64975cd-nvcm7 1/1 Running 0 50m test-dc1-default-sts-0 2/2 Running 0 9m6s test-dc1-default-sts-1 2/2 Running 0 9m6s test-dc1-default-sts-2 2/2 Running 0 9m6s
Should any pods list their STATUS as
Pending
there may be issues with resource availability. Check the pod information with this command:kubectl describe pod pod-name
The HCD 1.0 cluster is operational when all of the nodes indicate
2/2
under READY andRunning
under STATUS.
Connect to the cluster using CQLSH
Now that HCD 1.0 is up and running, connect to the cluster using the previously downloaded cqlsh
binary with Vector index support.
Mission Control is secured by default and generates an unique superuser after disabling the default cassandra
account.
-
Discover the username of this generated superuser by accessing the
<cluster-name>-superuser
secret in the Kubernetes cluster in themission-control
namespace. Run the following command:$ kubectl get secret/test-superuser -n mission-control -o jsonpath='{.data.username}' | base64 -d; echo
Results
test-superuser
-
Read the username’s password by running this command:
kubectl
command-
$ kubectl get secret/test-superuser -n mission-control -o jsonpath='{.data.password}' | base64 -d; echo
- Sample result
PaSsw0rdFORsup3ruser
Embedded Kubernetes cluster
Because host networking is enabled, connect to any of the nodes through its Internet Protocol (IP) address or hostname using cqlsh
with the correct Superuser credentials (port 9042 must be accessible from cqlsh
):
$ cqlsh --username test-superuser --password <PaSsw0rdFORsup3ruser>
ip-175-32-24-217
Results
Connected to test at ip-175-32-24-217:9042
[cqlsh 6.0.0 | Cassandra 4.0.7-c556d537c707 | CQL spec 3.4.5 | Native
protocol v5]
Use HELP for help.
test-superuser@cqlsh>
External Kubernetes cluster
-
Port forward the service that exposes the CQL port for the cluster with:
kubectl port-forward svc/test-dc1-service 9042:9042 -n mission-control
-
Connect using
cqlsh
pointing atlocalhost
:$ cqlsh --username test-superuser --password <PaSsw0rdFORsup3ruser> 127.0.0.1
Results
Connected to test at 127.0.0.1:9042. [cqlsh 6.0.0 | Cassandra 4.0.7-c556d537c707 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. test-superuser@cqlsh>
Start using HCD with Vector! Now access HCD 1.0 through either a standalone container or a Mission Control deployment, and start using the new vector indexes by following the vector search quickstart.