Настройка межузлового шифрования (TLS) в K8ssandra

Как настроить межузловое шифрование (например, TLS) для Cassandra в K8ssandra?

1 ответ

K8ssandra 1.4.0 включает некоторые изменения, которые должны сделать возможным настройку TLS. Для справки это билет , а это соответствующий PR.

Есть свойство диаграммы, cassandraYamlConfigMap, с помощью которого вы можете указать ConfigMap, содержащую ваши пользовательские файлы . Предоставленные вами свойства будут объединены с созданными k8ssandra, причем ваши будут иметь приоритет.

Обратите внимание, что вам не обязательно иметь полный файл конфигурации. Достаточно указать только интересующие вас свойства, так как они будут объединены с файлом конфигурации на основе, сгенерированным K8ssandra.

Существуют некоторые дополнительные свойства, необходимые для межузлового и клиентского шифрования, поскольку вам необходимо указать секреты хранилища ключей и хранилища доверенных сертификатов, чтобы можно было создавать монтирования томов. Обратите внимание, что вам необходимо заранее создать секреты хранилища ключей и доверенных сертификатов.

См. встроенную документацию по новым свойствам диаграммы здесь .

Вот пример файла свойств диаграммы, демонстрирующий новые свойства:

      cassandra:
  version: 4.0.1
  cassandraYamlConfigMap: cassandra-config
  encryption:
    keystoreSecret: keystore
    keystoreMountPath: /mnt/keystore
    truststoreSecret: truststore
    truststoreMountPath: /mnt/truststore
  heap:
    size: 512M
  datacenters:
  - name: dc1
    size: 1

Есть несколько замечаний о свойствах диаграмм. Первый, keystoreSecretа также truststoreSecretотносятся к секретам, которые должны находиться в том же пространстве имен, в котором установлена ​​k8ssandra. Пользователь должен создать эти секреты перед установкой (или обновлением k8ssandra).

Во-вторых, keystoreMountPathа также truststoreMountPathукажите, где эти секреты должны быть смонтированы в модулях Cassandra. Эти свойства должны быть указаны и должны соответствовать тому, что указано в cassandra.yaml.

Вот пример ConfigMap, который содержит мой пользовательский файл cassandra.yaml:

      apiVersion: v1
kind: ConfigMap
metadata:
  name: cassandra-config
data:
  cassandra.yaml: |-
    server_encryption_options:
      internode_encryption: all
      keystore: /mnt/keystore/keystore.jks
      keystore_password: cassandra
      truststore: /mnt/truststore/truststore.jks
      truststore_password: cassandra

K8ssandra использует Cass Operator для управления Cassandra. Имея это в виду, я рекомендую следующее для дальнейшего чтения:

  • В этой статье рассматривается настройка TLS для кластера, управляемого cass-operator, с помощью cert-manager.
  • Этот билет содержит подробное объяснение того, как Cass Operator настраивает межузловое шифрование.
Другие вопросы по тегам