Mission Control Cluster MissionControlCluster
DataStax Mission Control is currently in Public Preview. DataStax Mission Control is not intended for production use, has not been certified for production workloads, and might contain bugs and other functional issues. There is no guarantee that DataStax Mission Control will ever become generally available. DataStax Mission Control is provided on an “AS IS” basis, without warranty or indemnity of any kind. If you are interested in trying out DataStax Mission Control please join the Public Preview. |
The filename of the manifest (object) is <filename>.yaml
.
This example uses demo-dse.yaml
.
Example MissionControlCluster manifest
apiVersion: missioncontrol.datastax.com/v1alpha1
kind: MissionControlCluster
metadata:
name: demo
spec:
serverVersion: 6.8.26
storageConfig:
cassandraDataVolumeClaimSpec:
storageClassName: premium-rwo
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
resources:
requests:
memory: 1Gi
datacenters:
- metadata:
name: dc1
k8sContext: east
size: 3
racks:
- name: rack1
nodeAffinityLabels:
topology.kubernetes.io/zone: us-east1-c
- name: rack2
nodeAffinityLabels:
topology.kubernetes.io/zone: us-east1-b
- name: rack3
nodeAffinityLabels:
topology.kubernetes.io/zone: us-east1-d
Key options
apiVersion
-
Indicates the version of the object being defined
kind
-
Indicates what type of resource this file represents. For example,
kind
can be aMissionControlCluster
resource or a datacenter. metadata
-
At a minimum you must specify a
name
for your cluster. This value is used in thecluster_name
parameter ofcassandra.yaml
. spec
sectionserverVersion
-
Defines the DSE version you wish to deploy. This value is used to determine which Docker container versions to deploy.
storageConfig
-
Describes the storage requirements per node.
cassandraDataVolumeClaimSpec
-
Represents
/var/lib/cassandra
within a node. The type of this field matches Kubernetes'PersistentVolumeClaimSpec
. See Kubernetes reference docs for more detailed definitions. storageClassName
-
Specifies the Kubernetes Storage Class that should be used when requesting storage.
This storage class MUST use
volumeBindingMode: WaitForFirstConsumer
. See DataStax Mission Control Storage Classes for more information.Failure to set this may bind a volume on a node where the pod may not be scheduled, resulting in a deadlock or a stuck Pending pod status.
-
accessModes[]
- Contain the desired access modes of the volume,ReadWriteOnce
is appropriate for almost all clusters. -
resources.requests.storage
- Defines the requested volume size, this value must be a Quantity.-
resources.requests
- Requests specific resources to be considered when scheduling the DSE nodes. This is where you define your CPU and memory requirements.-
memory
- The amount of TOTAL memory available to the node, this value should be at least twice as large as your expected Java Heap. -
cpu
- The number of vCPUs the pod requires.This is usually specified in
milliCPUs
where1000m
is the equivalent of1
vCPU.
-
-
resources.limits
- These should NOT be set at this time. The sample does not list values.
-
-
datacenters[]
-
Describes the topology of the DSE Cluster. Each entry represents a single logical datacenter.
-
metadata.name
- Name of the datacenter, this value is placed incassandra-rackdc.properties
. -
k8sContext
- Specifies the name of the regionalData Plane
Kubernetes cluster in which the DC should be deployed. -
size
- Total node count for the datacenter. -
racks[]
- List of racks for the datacenter. Thesize
parameter MUST be divisible by the total number of definedracks
. Nodes are equally deployed across all of the defined racks.-
name
- Name of the logical rack, this value is placed incassandra-rackdc.properties
-
nodeAffinityLabels[]
- Provides a mapping of node label key/value pairs for use while scheduling. These values may include common labels such aszone
orregion
. Alternatively, you may provide custom labels to nodes in order to pin specific workloads to specific instances.
-
-