Настройка межузлового шифрования (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. Имея это в виду, я рекомендую следующее для дальнейшего чтения: