Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки

Cassandra

Namespaced ресурс, который позволяет создавать конечную конфигурацию и является точкой правды состояния для конкретного развернутого сервиса cassandra.

CassandraClassName

Имя класса, с которым будет связан конкретный ресурс. Без созданного CassandraClass разворачивание сервиса невозможно.

spec:
  cassandraClassName: default

Instance

Секция, которая описывает ресурсы создаваемого сервиса. Должна пройти валидацию по sizingPolicy соответствующего класса:

spec:
  instance:
    memory:
      size: 4Gi
    cpu:
      cores: 1
      coreFraction: 50%
    persistentVolumeClaim:
      size: 8Gi
      storageClassName: default

Поддерживаемые версии Cassandra

Единственная поддерживаемая версия Cassandra 5.0.7

Наши образы для запуска Cassandra-контейнеров основаны на distroless-архитектуре.

Cтатус

Статус сервиса Managed Cassandra отражается в ресурсе Cassandra. Структура Conditions однозначно показывает текущий статус сервиса

Значимые типы:

  • LastValidConfigurationApplied - Агрегирующий тип, который показывает, была ли применена успешно последняя валидная конфигурация хотя бы раз.
  • ConfigurationValid - показывает прошла ли что конфигурация все валидации связанного CassandraClass.
  • ScaledToLastValidConfiguration - показывает, соответствует ли количество работающих реплик заданной конфигурации.
  • Available - показывает, работают ли (N/2+1) реплик сервиса и принимают ли подключения.
conditions:
    - lastTransitionTime: '2025-09-22T23:20:36Z'
      observedGeneration: 2
      status: 'True'
      type: Available
    - lastTransitionTime: '2025-09-22T14:38:04Z'
      observedGeneration: 2
      status: 'True'
      type: ConfigurationValid
    - lastTransitionTime: '2025-09-22T14:38:47Z'
      observedGeneration: 2
      status: 'True'
      type: LastValidConfigurationApplied
    - lastTransitionTime: '2025-09-22T23:20:36Z'
      observedGeneration: 2
      status: 'True'
      type: ScaledToLastValidConfiguration

Статус False говорит о проблеме на том или ином этапе либо незавершенной синхронизации состояния. Для такого состояния будет указан reason и message с описанием.

    - lastTransitionTime: '2025-09-23T14:53:33Z'
      message: Syncing
      observedGeneration: 1
      reason: Syncing
      status: 'False'
      type: LastValidConfigurationApplied
    - lastTransitionTime: '2025-09-23T14:54:58Z'
      message: Not all the instances are running still waiting for 1 to become ready
      observedGeneration: 1
      reason: ScalingInProgress
      status: 'False'
      type: ScaledToLastValidConfiguration

Примеры использования

Базовое использование

kubectl -n d8-managed-cassandra apply -f managed-services_v1alpha1_cassandra.yaml
apiVersion: managed-services.deckhouse.io/v1alpha1
kind: Cassandra
metadata:
  name: cassandra-sample
spec:
  cassandraClassName: default
  instance:
    memory:
      size: "4Gi"
    cpu:
      cores: 1
      coreFraction: "50%"
    persistentVolumeClaim:
      size: "8Gi"
  1. Подождите, пока кластер будет создан и все conditions будут в True:
kubectl -n d8-managed-cassandra get cassandra cassandra-sample -o wide -w
  1. Для подключения используйте клиент cqlsh и сервис d8ms-cas-cassandra-sample
cqlsh d8ms-cas-cassandra-sample 9042