kafka流:kerberos票证续订

2ul0zpep  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(719)

当kafka流应用程序启动时,将使用以下jaas文件。但是,流应用程序不会自动更新票证。在票证过期后,它将失败,但有以下例外。我们应该如何保持kerberos票证自动续订?

KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
doNotPrompt=true
useTicketCache=true
principal="astvy@DEV.ACM.COM"
useKeyTab=true
serviceName="kafka"
keyTab="/home/astvy/astvy.headless.keytab"
renewTGT=true
client=true;
};

错误

Abort sending since an error caught with a previous record (key ED1812 value org.cox.model.HourlyUnit@83e6c99 timestamp 1536165112061) to topic dub_hourlyunit_source1 due to org.apache.kafka.common.errors.SaslAuthenticationException: 
An error: (java.security.PrivilegedActionException: javax.security.sasl.SaslException: 
GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]) occurred when evaluating SASL token received from the Kafka Broker. 
Kafka Client will go to AUTHENTICATION_FAILED state.

在进行了如下几点更正(关键更改是将useticketcache设置为false)之后,我们没有看到上述问题再次发生,但是由于续订tgt设置为7天,我们将继续监视问题是否已得到解决。如果以下更改永久解决了问题,将再检查几天并对此进行确认。

KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
doNotPrompt=true
useTicketCache=false
principal="astvy@DEV.ACM.COM"
useKeyTab=true
serviceName="kafka"
keyTab="/home/astvy/astvy.headless.keytab"
storeKey=true;
};
1cklez4t

1cklez4t1#

kafka流使用kerberos和ssl,就像配置中的其他kafka客户机(如生产者和消费者)一样,因此我无法真正考虑流本身中可能导致不续订票证的任何问题。
我在谷歌上做了一些快速搜索,其中一个可能与此相关:https://issues.apache.org/jira/browse/hadoop-10786,如果您使用的是j8。

相关问题