Kubernetes Kerberos и секрет Кафки с помощью шлема - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть требование к 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) в

Пожалуйста, дайте мне знать, если требуется какая-либо информация. Оцените любые указания или помощь по этой проблеме.

...