You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同Kerberos域双Ambari集群跨集群访问NameNode认证问题

解决相同REALM独立KDC下跨Ambari集群访问NameNode的Kerberos认证问题

这个问题的核心其实很好理解:虽然两个集群用了相同的REALM名称,但各自的KDC是完全独立的——app-cluster的KDC数据库里根本没有data-cluster的nn/machine@REALM这个服务主体,自然会抛出找不到主体的TGS请求错误。下面是我整理的可行解决方案:

方案一:同步KDC数据库主体(推荐)

既然两个集群共用同一个REALM名称,最直接的方式就是让两个KDC的主体信息保持同步,具体操作步骤如下:

  • 在data-cluster的KDC服务器上,导出包含NameNode主体的KDC数据库条目:
    kdb5_util dump -b64 /tmp/data_cluster_princs.b64
    
  • 将导出的文件传输到app-cluster的KDC服务器上:
    scp /tmp/data_cluster_princs.b64 app-kdc-host:/tmp/
    
  • 在app-cluster的KDC服务器上,导入这些主体条目:
    kdb5_util load -b64 /tmp/data_cluster_princs.b64
    
  • 重启两个集群的KDC和Kadmin服务,确保新的主体信息生效:
    # 在两个KDC服务器上分别执行
    systemctl restart krb5kdc
    systemctl restart kadmin
    
  • 最后在app-cluster的节点上,获取data-cluster NameNode的票据测试:
    kinit -kt /path/to/your/keytab user@REALM
    klist -e # 确认票据包含nn/machine@REALM的条目
    

方案二:配置KDC间信任关系(适用于扩展场景)

如果后续两个集群需要更灵活的跨域访问,或者不想完全同步主体,可以配置两个独立KDC之间的信任关系(即使REALM名称相同):

  • 在两个KDC服务器上,分别创建对方KDC的信任密钥:
    # 在data-cluster KDC上执行
    kadmin.local: addprinc -randkey krbtgt/REALM@REALM
    # 在app-cluster KDC上执行
    kadmin.local: addprinc -randkey krbtgt/REALM@REALM
    
  • 交换两个KDC的信任密钥(确保密钥一致):
    在其中一个KDC上导出密钥,再导入到另一个KDC:
    # 在data-cluster KDC导出密钥
    kadmin.local: dump -b64 /tmp/trust_key.b64 krbtgt/REALM@REALM
    # 传输到app-cluster KDC后导入
    kadmin.local: load -b64 /tmp/trust_key.b64 krbtgt/REALM@REALM
    
  • 配置krb5.conf文件,在两个集群的所有节点上添加REALM的多KDC配置:
    修改/etc/krb5.conf的[realms]部分,同时指定两个KDC地址:
    [realms]
        REALM = {
            kdc = app-kdc-host:88
            kdc = data-kdc-host:88
            admin_server = app-kdc-host:749
            admin_server = data-kdc-host:749
            default_domain = your-domain.com
        }
    
  • 重启所有节点的Kerberos相关服务,包括Ambari代理、Hadoop服务等。

额外注意事项

  • 确保两个KDC的时钟同步,Kerberos默认对超过5分钟的时间差非常敏感,会直接导致认证失败。
  • 检查app-cluster节点上的core-site.xml和hdfs-site.xml,确认已正确配置data-cluster的NameNode地址及对应的Kerberos主体名称。
  • 如果用Ambari管理集群,可以通过Ambari的Kerberos管理界面添加同步主体,避免手动操作出错。

内容的提问来源于stack exchange,提问作者Srini2k6

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:57:16