У меня есть требование к Kafka, который имеет протокол SASA_PLAINTEXT. Мое приложение - приложение Springboot, и я пытаюсь развернуть его в kubernetes с помощью рулевой диаграммы.
Мне добавлена вкладка ключа в качестве секрета kubernetes, которую я смонтировал в виде файла, используя следующий код:
apiVersion: v1
kind: Pod
metadata:
name: service-name
spec:
volumes:
- name: Kafka-secret
secret:
secretName : kafka-keytab
emptyDir: {}
containers:
- name: redis
image: redis
volumeMounts:
- name: Kafka-secret
mountPath: “/etc/security”
Я указываю, что смонтированное местоположение на вкладке ключа в spring.jaas.config в application.yaml
sasl.jaas.config=com.sun.security.auth.module.Krb5LoginModule required \
useKeyTab=true \
storeKey=true \
keyTab="/etc/security/keytabs/kafka-keytab“ (This is a mounted path on kubernetes and kafka-vol is key name) \
principal="kafka-client-1@EXAMPLE.COM";
У меня есть настройка Kerberos. В настоящее время я добавляю krb5.cong в Dockerfile, используя ниже
FROM java-jdk:11
ADD service-name.tar /
ADD krb5.conf /etc/krb5.conf
ENTRYPOINT java -Djava.security.krb5.conf=/etc/krb5.conf -jar /<jar-path>
Я получаю ошибку ниже после запуска модуля в kubernets:
2019-08-14T09: 49: 51.949-05: 00 [APP / PROC / WEB / 0] [OUT] ИНФОРМАЦИЯ [d3-5b28248c661c] oakcommon.network.SaslChannelBuilder oak c .n.SaslChannelBuilder.buildChannel (SaslChannelBuilder. java: 119) --||| ||||||| Не удалось создать канал из-за: org. apache .kafka.common.KafkaException: Не удалось настроить SaslClientAuthenticator в org. apache .kafka.common.security.authenticator.SaslClientAuthenticator.configure (SaslClientAlientClient . java: 125) в java .lang.Thread.run (Thread. java: 748) Причина: org. apache .kafka.common.KafkaException: Не удалось создать SaslClient с механизмом GSSAPI в org . apache .kafka.common.security.authenticator.SaslClientAuthenticator.createSaslClient (SaslClientAuthenticator. java: 140) в javax.security.auth.Subject.doAs (Subject. java: 422) в организации. 1028. .kafka.common.security.authenticator.SaslClientAuthenticator.createS aslClient (SaslClientAuthenticator. java: 131) ... опущено 11 общих фреймов. Причинено: org.ietf.jgss.GSSException: Предоставлено неверное имя (Уровень механизма: KrbException: Невозможно найти область по умолчанию) в sun.security.jgss.krb5. Krb5NameElement.getInstance (Krb5NameElement. java: 129) в sun.security.jgss.krb5.Krb5MechFactory.getNameElement (Krb5MechFactory. java: 95) в
Пожалуйста, дайте мне знать, если требуется какая-либо информация. Оцените любые указания или помощь по этой проблеме.