You need to enable JavaScript to run this app.
导航
进阶使用
最近更新时间:2025.04.01 20:13:41首次发布时间:2024.11.12 16:54:08
我的收藏
有用
有用
无用
无用

两个 Kerberos 集群之间的服务访问,需要配置 Kerberos 集群间的跨域互信(Cross Realm)。在火山引擎 LAS 集群中,如果已有两个 Kerberos 集群 A、B,希望从集群 A 跨域访问集群 B 中的服务。

操作步骤

  1. 获取 Realm、FQDN 信息。
    登录到集群 A 和集群 B 的 Master 节点的命令行界面,从 /etc/krb5.conf 中分别获取集群 A 和集群 B 的 Realm 信息、FQDN 信息并做记录。其中 Realm 信息的格式为 xxx.EMR.COM。

  2. 添加跨域认证的 Principal。

    1. 登录到集群 A 的 Master 节点的命令行界面中,以 root 用户身份执行下面的命令:

      # 使用 kadmin.local 命令。如下所示:
      kadmin.local -q "addprinc -pw <新建一个自定义密码> krbtgt/<集群 B 的 Realm>@<集群 A 的 Realm>"
      

      说明

      其中用尖括号(“<>”)括起来的内容(包含尖括号本身),需要根据实际场景替换为对应的实际取值。

    2. 登录到集群 B 的 Master 节点的命令行界面中,以 root 用户身份执行相同的命令(无需替换命令中的 Realm 顺序),如下所示:

      # 使用 kadmin.local 命令。如下所示:
      kadmin.local -q "addprinc -pw <新建一个自定义密码> krbtgt/<集群 B 的 Realm>@<集群 A 的 Realm>"
      
  3. 配置集群 A 的 krb5.conf 并重启集群 A 的 KDC 服务。
    登录到集群 A 的 Master 节点的命令行界面中,编辑 /etc/krb5.conf 配置文件,修改如下内容:

    说明

    其中用尖括号(“<>”)括起来的内容(包含尖括号本身),需要根据实际场景替换为对应的实际取值。

    1. [realms] 新增一项:

      <集群 B 的 Realm> = {
          kdc = <集群 B 的 Master 节点的 FQDN>:88
      }
      
    2. 新增 [capaths]

      [capaths]
          <集群 A 的 Realm> = {
              <集群 B 的 Realm> = .
          }
          <集群 B 的 Realm> = {
              <集群 A 的 Realm> = .
          }
      
    3. 新增 [domain_realm]

      [domain_realm]
          <集群 A 的第一个 Master 节点的 FQDN> = <集群 A 的 Realm>
          <集群 A 的第二个 Master 节点的 FQDN> = <集群 A 的 Realm>
          ...
          <集群 A 的第一个 Core 节点的 FQDN> = <集群 A 的 Realm>
          <集群 A 的第二个 Core 节点的 FQDN> = <集群 A 的 Realm>
          ...
          <集群 B 的第一个 Master 节点的 FQDN> = <集群 B 的 Realm>
          <集群 B 的第二个 Master 节点的 FQDN> = <集群 B 的 Realm>
          ...
          <集群 B 的第一个 Core 节点的 FQDN> = <集群 B 的 Realm>
          <集群 B 的第二个 Core 节点的 FQDN> = <集群 B 的 Realm>
          ...
      
    4. 配置完成后,重启 KDC。

  4. 验证操作。
    可以登录到集群 A 的节点中,访问集群 B 的服务。详细操作参考文档:基础使用

    注意

    • 访问远程 Kerberos 集群上的服务时,需要使用 FQDN 来连接远程 Kerberos 集群上的节点。
    • 如果被访问的集群(集群 B)的服务是 Kafka,还需要给集群 B 的 Kafka 服务增加一条配置,然后重启 Kafka 服务。
      增加的配置项如下(注:其中用尖括号(“<>”)括起来的内容(包含尖括号本身),需要根据实际场景替换为对应的实际取值):
      • 配置项:sasl.kerberos.principal.to.local.rules
      • 值:
        • EMR-3.8.0(含)之后的版本,配置为:RULE:[2:$1@$0](.*@<源集群(集群 A)的 Realm>)s/@.*//,DEFAULT
        • EMR-3.8.0(不含)之前的版本,配置为:RULE:[1:$1@$0](.*@<源集群(集群 A)的 Realm>)s/@.*//,DEFAULT