Как подключить Apache Spark к кластеру Cassandra через SSL в Kubernetes

#apache-spark #ssl #kubernetes #spark-cassandra-connector

#apache-spark #kubernetes #ssl #cassandra #spark-cassandra-connector

Вопрос:

Мы используем Spark и Cassandra в приложении, которое развернуто на голом металле / виртуальной машине. Для подключения Spark к Cassandra мы используем следующие свойства, чтобы включить SSL :

 spark.cassandra.connection.ssl.keyStore.password
spark.cassandra.connection.ssl.keyStore.type
spark.cassandra.connection.ssl.protocol
spark.cassandra.connection.ssl.trustStore.path
spark.cassandra.connection.ssl.trustStore.password
spark.cassandra.connection.ssl.trustStore.type
spark.cassandra.connection.ssl.clientAuth.enabled
  

Сейчас я пытаюсь перенести одно и то же приложение в Kubernetes. У меня есть следующие вопросы :

  1. Нужно ли мне изменять вышеуказанные свойства, чтобы подключить spark к кластеру Cassandra в Kubernetes?
  2. Будут ли работать вышеуказанные свойства или я что-то пропустил?
  3. Может кто-нибудь указать на какой-нибудь документ или ссылку, которые могут мне помочь?

Ответ №1:

Да, эти свойства будут продолжать работать при запуске задания в Kubernetes. Единственное, что вам нужно принять во внимание, это то, что все свойства с именем, заканчивающимся на .path , должны указывать на фактические файлы с хранилищами доверия и ключей. В Kubernetes вам нужно позаботиться о том, чтобы раскрывать их как секреты, смонтированные в виде файлов. Сначала вам нужно создать секрет, например:

 apiVersion: v1
data:
 spark.truststore:  base64-encoded truststore
kind: Secret
metadata:
 name: spark-truststore
type: Opaque
  

а затем в спецификации укажите на это:

     spec:
      containers:
      - image: nginx
        name: nginx
        volumeMounts:
          - mountPath: "/some/path"
            name: spark-truststore
            readOnly: true
      volumes:
        - name: spark-truststore
          secret:
            secretName: spark-truststore
  

и укажите параметр конфигурации для заданного пути, например: /some/path/spark.truststore