#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. У меня есть следующие вопросы :
- Нужно ли мне изменять вышеуказанные свойства, чтобы подключить spark к кластеру Cassandra в Kubernetes?
- Будут ли работать вышеуказанные свойства или я что-то пропустил?
- Может кто-нибудь указать на какой-нибудь документ или ссылку, которые могут мне помочь?
Ответ №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