Kinit 辅助服务
Kinit 辅助服务是一项关键服务,它既承担 Kyuubi 客户端与服务端之间的认证,也承担 Kerberos 环境下 Kyuubi 服务端与 Hadoop 集群之间的认证。该服务会从 KDC 获取 Kerberos 票据缓存,并周期性地重新执行 kinit 以保持票据缓存的新鲜。
注意:
- Kinit 辅助服务对 Kyuubi 的 Kerberos 认证至关重要,但反过来则不然。
- Kinit 辅助服务也可以与其他认证模式配合使用。
安装和配置 Kerberos 客户端
通常,Kerberos 客户端已默认安装。你可以使用 klist 工具进行验证。
$ klist -V
Kerberos 5 version 1.15.1如果尚未安装客户端,应根据你准备运行 Kyuubi 的操作系统平台提前安装。
krb5.conf 是用于调整 Kerberos 票据缓存创建过程的配置文件。在 Linux 上,默认位置是 /etc,我们可以使用 KRB5_CONFIG 环境变量来覆盖该配置文件的位置。
替换或配置 krb5.conf,使其指向 KDC。
Kerberos 票据
Kerberos 客户端的目标是生成票据缓存文件。随后,Kyuubi 可以使用该票据缓存与那些已启用 Kerberos 的服务进行身份验证,例如 HDFS、YARN 和 Hive Metastore 服务器等。
Kerberos 票据缓存包含服务主体名称和客户端主体名称、有效期指示器、标志位以及凭据本身,例如:
$ klist
Ticket cache: FILE:/tmp/krb5cc_5441
Default principal: spark/kyuubi.host.name@KYUUBI.APACHE.ORG
Valid starting Expires Service principal
2020-11-25T13:17:18 2020-11-26T13:17:18 krbtgt/KYUUBI.APACHE.ORG@KYUUBI.APACHE.ORG
renew until 2020-12-02T13:17:18Kerberos 凭据可以存储在 Kerberos 票据缓存中。例如,上述场景中的 /tmp/krb5cc_5441。
这些凭据的有效期相对较短,因此对于 Kyuubi 这样的长时间运行的服务,我们始终需要对其进行刷新。
配置
| 配置项 | 默认值 | 含义 | 引入版本 |
|---|---|---|---|
kyuubi.kinit.principal | <未定义> | Kerberos 主体名称。 | 1.0.0 |
kyuubi.kinit.keytab | <未定义> | Kyuubi 服务端 keytab 文件的位置。 | 1.0.0 |
kyuubi.kinit.interval | PT1H | Kyuubi 服务端执行 kinit -kt [keytab] [principal] 以刷新本地 Kerberos 凭据缓存的间隔时间 | 1.0.0 |
kyuubi.kinit.max.attempts | 10 | kinit 进程的最大重试次数 | 1.0.0 |
在使用启用 Kerberos 的 Hadoop 集群时,我们应确保 $HADOOP_CONF_DIR/core-site.xml 或 $KYUUBI_HOME/conf/kyuubi-defaults.conf 中的 hadoop.security.authentication 已设置为 KERBEROS。然后需要指定 kyuubi.kinit.principal 和 kyuubi.kinit.keytab 以进行认证。
例如,
kyuubi.kinit.principal=spark/kyuubi.apache.org@KYUUBI.APACHE.ORG
kyuubi.kinit.keytab=/path/to/kyuuib.keytab注意:kyuubi.kinit.principal 必须遵循格式:<user>/<host>@<realm>,其中 <host> 必须是运行 Kyuubi 的主机的完全限定域名(FQDN)。
Kyuubi 将使用此 principal 来模拟客户端用户,因此集群应允许它从特定主机模拟特定用户。
例如,
hadoop.proxyuser.<user name in principal>.groups *
hadoop.proxyuser.<user name in principal>.hosts *延伸阅读
评论
登录后参与评论
KnowForge