新闻详情

新闻详情

首页 / 资讯中心 / 详情

Ambari集成FreeIPA启用Kerberos全程实战与故障排查指南

发布时间:2026/9/26 11:59:50来源:尧图网络
Ambari集成FreeIPA启用Kerberos全程实战与故障排查指南
前两篇文章我们把 FreeIPA 服务端搭起来也给 Ambari 所在的集群节点都装好了 ipa-client用户能从 IPA 的 LDAP 里正常认人。今天这篇就是整个企业认证授权方案里最磨人的一步在 Ambari 控制台上把 Kerberos 打开让 HDFS、YARN、HBase、Hive 这些组件全部切到票据认证模式。很多人以为这一步就是填几个配置点个 Next实际上它涉及 KDC 上的主体批量创建、keytab 下发、组件配置改写和全套服务重启任何一个环节没对齐集群就是一排红色报警。我会把 Enable Kerberos 的完整流程、每个参数的业务含义、以及我实战中踩过的四个坑全部写出来给正在搞 FreeIPA 和 Ambari 集成的人一条可以直接照着操作的路径。1. 为什么企业级集群要把认证授权交给 Kerberos 和 FreeIPA1.1 Kerberos 的票据交换流程AS-REQ / TGS-REQ / AP-REQ很多第一次接触 Kerberos 的同学上来就被 AS-REQ、TGS-REQ、AP-REQ 这三组缩写劝退了。我用一个高铁站的类比帮你顺一遍。Kerberos 的 KDC密钥分发中心相当于综合服务台你是乘客你要访问的 HDFS NameNode、YARN ResourceManager 是各个检票口。第一次进站你去服务台出示身份证用户密码服务台验证通过后给你一张全站通用的乘车凭证这就是 TGT票据授予票据。后面你要去某个检票口不用再掏身份证只需要出示 TGT服务台会给你一张对应检票口的专项车票也就是服务票据Service Ticket。最后你拿着专项车票到检票口检票员验票放行。对应到协议上第一步是 AS-REQ/AS-REP客户端拿用户密码向 Authentication Service 换 TGT第二步是 TGS-REQ/TGS-REP客户端拿 TGT 向 Ticket Granting Service 换某个服务的票据第三步是 AP-REQ客户端拿服务票据访问目标服务服务端验票后建立会话。全程只有第一步密码会出现在网络上而且是用 KDC 的密钥加密过的后续认证全部靠票据和会话密钥密码不再出场。这里有个关键点票据里带着时间戳和有效期Kerberos 默认允许最大 5 分钟的时钟偏差clock skew。客户端机器时间和 KDC 时间差超过这个窗口KDC 直接拒票。这也是为什么后面我会把 NTP 放到第一优先级来讲。1.2 FreeIPA、Ambari 在整套方案里的分工FreeIPA 在整套方案里的位置相当于把 KDC、LDAP 目录服务、DNS、证书管理打包成一个统一身份域。它底层用的就是 MIT Kerberos 实现所以你在 FreeIPA 里创建的每个用户、服务账号都会自动落到 LDAP 目录并成为 Kerberos principal。Ambari 本身不实现认证它是个编排者负责把这些安全配置翻译成各个大数据组件认识的配置项比如 core-site.xml、hive-site.xml、hbase-site.xml 里的 Kerberos 相关参数并触发组件重启。一句话总结分工FreeIPA 是认证中心和身份目录Ambari 是配置下发和集群编排HDFS、YARN、HBase、Hive 这些组件是被保护的服务端。开启 Kerberos 之后任何用户或者服务如果拿不出有效票据连 Hadoop 的 RPC 都调不通更谈不上授权。授权这层则继续由 HDFS 的 POSIX 权限和后续的 Ranger/Sentry 策略来管所以认证授权这四个字其实分了两段Kerberos 解决你是谁权限模型解决你能干什么。很多人把这两层混在一起结果权限出了问题第一反应去查 KDC方向就错了。1.3 前两步做完之后我们手上已经有哪些底牌如果你按序列走完了 Step1 和 Step2现在应该具备这些条件一台 FreeIPA 服务器realm 是大写的比如 HADOOP.COMKDC 和 LDAP 都正常。Ambari Server 以及所有集群节点都已经通过 ipa-client-install 加入 IPA 域/etc/krb5.conf 指向 IPA。集群节点可以通过 SSSD 查询到 IPA 里的用户和组比如执行 id testuser 能拉出 uid/gid。Ambari 内所有主机以 FQDN 注册HDP 集群处于健康状态HDFS NameNode 和 ZooKeeper 都正常。到这个状态你点开 Ambari 的 Kerberos 选项才能把向导正确跑完。如果前面哪一步没做后面向导会在生成 keytab 或者重启服务时给出莫名其妙的错误。这个底牌本质上就是一个统一身份域加一套状态健康的集群缺一块都别急着往下走。2. 在点下 Enable Kerberos 之前必须先趟平的三件事2.1 NTP 时钟同步clock skew 是最隐蔽的杀手Kerberos 默认允许 5 分钟的时钟偏移这个限制在认证体系里是写死的。普通集群跑 NTP 可能只是为了让日志时间对得上但在 Kerberos 环境里时间偏了就是无法认证没有任何缓商余地。我遇到过最典型的报错是这样kinit: Client adminHADOOP.COM not found in Kerberos database while getting initial credentials第一眼以为主体不存在查了半天发现就是一个节点的时间比 KDC 快了 7 分钟。检查命令很简单在 Ambari Server 和所有节点上执行timedatectl status chronyc sources -v生产环境建议统一配置 chronyd 指向内网 NTP 服务器然后在 /etc/chrony.conf 里加上server ntp.example.com iburst手动同步改用chronyc makestep还有个非常隐蔽的场景所有节点都配了和 FreeIPA 服务器同一个 NTP 源但 FreeIPA 本身时区没设对导致全集群和真实时间差了两小时。KDC 不直接比对绝对时间它比对客户端带给它的时间戳和自身时间所以所有节点虽然互相一致但 KDC 认为时间偏差太大kinit 照样失败。这个坑排查起来最费时间建议第一步先把 FreeIPA 服务器上的 timedatectl 输出看清楚。2.2 DNS 正反解与 FQDN 主机名Kerberos 对名字有洁癖Kerberos 的主体往往长这样hdfs/hdp01.example.comHADOOP.COM。服务端在验证时会根据请求来源 IP 反查主机名再去匹配 keytab 里的主体。这就要求正向、反向解析都精确且 Ambari 上报的 hostname 和 DNS 解析结果保持一致。实际排查中我用的命令host hdp01.example.com dig -x 192.168.1.10如果反解出来的名字和 Ambari 里注册的主机名不一致向导生成的 keytab 就会指向错误主体服务启动直接报 Server not found in Kerberos database。做法是把每台节点的 /etc/hosts 里多余的硬映射清干净/etc/resolv.conf 指向 FreeIPA 自带的 DNS 或内部 DNS。Ambari 注册主机时如果用的是短名或者 IP现在就要改成 FQDN 再继续否则 keytab 生成时会出 hdfs/hdp01HADOOP.COM 这种短主体后面的组件全部对不上。FQDN 还有大小写问题Kerberos realm 严格大小写敏感主机名被 Ambari 改大小写后也会造成匹配失败建议全部统一小写。2.3 在 FreeIPA 里预置 Ambari 的管理员主体Ambari 的 Kerberos 向导需要管理员凭据去 KDC 上批量创建、删除 principal、导出 keytab。生产环境直接拿 FreeIPA 自带 admin 的密码交给 Ambari 不太合适建议单独建一个专用主体kinit admin ipa user-add ambari-ipa-admin --firstAmbari --lastAdmin ipa passwd ambari-ipa-admin ipa role-add-member --rolesadmin --usersambari-ipa-admin这里有个运维细节要注意密码策略最好设置成不过期或者至少在到期前有提醒。因为 Ambari 配置里存的是这个账号的明文密码密码一过期整个再启用流程就全部卡住扩容时也会被反复问为什么加不了新主机。如果后续有自动化脚本需要免交互操作 KDC可以给 ambari-ipa-admin 单独导一个用户 keytabipa-getkeytab -s ipa-server.example.com -p ambari-ipa-adminHADOOP.COM -k /etc/security/keytabs/ambari-ipa-admin.keytab后面写脚本调用 kinit -kt 这个 keytab 就能代替明文密码安全性和便利性都兼顾。2.4 节点加入 IPA 域以及 Ambari Server 到 KDC 的 SSH 免密所有集群节点都需要执行 ipa-client-install 加入域装完检查 /etc/krb5.conf 里 default_realm 是否正确/etc/sssd/sssd.conf 里是否用 IPA 作为 id_provider。这一步一定放在 Ambari 向导之前否则向导在生成 keytab 阶段会自动尝试装客户端经常因为 SSSD 缓存、SELinux 等问题半路失败报错指向不明确。另外Ambari 向导在多数实现里就是通过 SSH 到 KDC 主机执行 kadmin.local 或 ipa-getkeytab所以 Ambari Server 必须能免密登录 FreeIPA 服务器ssh-copy-id ambariipa-server.example.com还需要保证 Ambari 使用的账号在 FreeIPA 主机上有 sudo 权限至少能执行 kadmin.local。这一步漏掉的典型现象是向导卡在 Unable to contact KDC 或者 Permission denied (publickey)很多人在这一步浪费大量时间以为是 realm 配错了其实是 SSH 通道没打通。3. Ambari 开启 Kerberos 的六步操作详解3.1 进入向导前的状态检查登录 Ambari Admin左侧菜单找到 Kerberos点击 Enable Kerberos。这一步之前务必确认集群没有任何黄红灯报警也没有未完成的滚动重启任务。Ambari 在开启 Kerberos 的过程中会重写几乎所有组件的安全配置如果集群本身还有服务没恢复正常向导跑到一半就会因为某个组件启动失败而回滚回滚过程又是一次全集群重启非常浪费时间。还要在 Hosts 页面确认所有主机名都是 FQDN。有些环境早期为了省事用短主机名注册后面再改成本很麻烦而且 Kerberos 一旦开启短主机名主体无法匹配就会被拒绝访问。最后尽量选一个维护窗口来做这件事因为向导的最终阶段会按依赖关系重启整个集群NameNode 和 HDFS 的停机时间直接影响线上读写。3.2 选择 KDC 类型MIT、IPA 还是 ADAmbari 的 Kerberos 向导里通常会有几种类型可供选择。我整理了一个简单的对照表选项适用场景实际说明MIT KDC通用场景没有专门的 IPA 选项时选它FreeIPA 底层就是 MIT Kerberos效果等价但需要确认 Ambari 能以 kadmin.local 方式在 KDC 上操作FreeIPA (IPA)部分较新版本 Ambari 直接支持 IPA 协议向导会调用 ipa 命令而不是 kadmin创建主体和 keytab 更贴合 IPA 的习惯Active Directory集群身份由 AD 管理KDC 是 AD 域控适合企业里已有成熟 AD 体系、不想额外部署 FreeIPA 的情况如果向导里有 IPA 选项直接选 IPA没有就选 MIT KDC。选 MIT 之后Ambari 会尝试 ssh 到 KDC 主机执行 kadmin.local所以上一节提到的 SSH 免密和 sudo 权限必须有。选错类型最常见的报错是 Missing required principal 或者 Kerberos 管理端口连接失败因为 IPA 默认管理方式和纯 MIT 不完全一样。3.3 填写 Realm、KDC 主机和管理员凭据这页是整个向导里信息量最大的一页配置项大致如下配置项建议值说明Kerberos RealmHADOOP.COM必须全大写和 FreeIPA 里配置的 realm 完全一致KDC Hostipa-server.example.com可以填多个逗号分隔Kadmin Hostipa-server.example.com管理端主机Ambari 将通过它执行创建主体的操作Admin Principalambari-ipa-adminHADOOP.COM前面在 FreeIPA 里创建的专用主体Admin Password该主体的密码向导会把密码暂存用于批量操作这里有一个必须记住的点Realm 全大写不是风格问题而是 Kerberos 协议规范里默认约定。如果填成小写 hadoop.com后面主体验证会乱套。KDC Host 和 Kadmin Host 在 FreeIPA 场景通常都是同一台机器但如果你把 FreeIPA 的 DNS 服务也放在这台机器上不要顺手把 DNS 服务地址填进 KDC HostKDC 监听的是 88 端口和 DNS 完全是两回事。3.4 生成 principal 清单和 keytab 压缩包配置填完向导会让你选择 principal 生成方式。一般用自动生成Ambar 会基于集群服务清单生成 CSV 文件里面每条记录是一个服务主体。CSV 大致长这样hostname,service_name,principal,keytab_name hdp01.example.com,hdfs,hdfs/hdp01.example.comHADOOP.COM,hdfs.service.keytab hdp01.example.com,HTTP,HTTP/hdp01.example.comHADOOP.COM,spnego.service.keytab不用手工维护这个文件Ambari 会基于集群里部署的服务自动补全。确认无误后向导会在 KDC 上批量创建主体、生成 keytab最后给你一个可下载的压缩包通常叫 kerberos-keytabs.zip。下载到 Ambari Server 本地解压到临时目录比如 /tmp/keytabs/。这里要注意Ambari 下载 keytab 这个动作只完成了生成它不会自动把 keytab 复制到每台集群节点。这是新手最容易误解的地方以为向导结束就万事大吉结果重启后所有组件都因为找不到本地 keytab 而失败。3.5 手动分发 keytab 的节奏与权限拿到解压后的 keytab 目录我会用一个简单的循环脚本往各个节点分发for host in hdp01.example.com hdp02.example.com hdp03.example.com; do rsync -av --delete /tmp/keytabs/${host}/ root${host}:/etc/security/keytabs/ done分发完毕在每个节点上统一调整属主和权限这是整个过程中最容易被忽略、但又最能避免后续奇怪问题的一步mkdir -p /etc/security/keytabs chown root:hadoop /etc/security/keytabs/*.keytab chmod 600 /etc/security/keytabs/*.keytab不同服务以不同系统用户运行例如 HDFS 相关进程是 hdfs 用户Hive 是 hive 用户HBase 是 hbase 用户。如果 keytab 属主是 root 且权限 600服务进程可能读不到。更稳妥的做法是针对每个 keytab 单独设置属主hdfs.service.keytab 给 hdfshive.service.keytab 给 hivespnego.service.keytab 给 root 或对应的 web 服务用户。少用 644 这种开放权限安全加固本来就是为了收紧权限别在这里开大口子。3.6 按依赖顺序重启集群服务分发完成后向导会提示需要重启集群服务。Ambari 提供 Restart All Required 的按钮但我个人不建议一把梭。多个服务同时重启一旦底层依赖没起来所有上层服务的报错混在一起根本没法排查。我的习惯是按下表顺序来顺序服务原因1ZooKeeper所有依赖 ZK 做选主和协调的服务都要等它先起来2HDFSNameNode 和 DataNode 依赖 ZK 选主也是绝大多数服务的底层存储3YARNResourceManager 依赖 HDFS任务提交才能恢复正常4HBase依赖 HDFS 和 ZooKeeper必须在前两者稳定后启动5Hive、Oozie依赖 HDFS 和 YARN跑在更上层6Ranger、Knox如果部署了这些安全组件最后再起来它们要加载前序服务的元数据重启完先看 HDFS 页面里 DataNode 是不是全部都 Alive再往后推其他服务。如果某个组件起不来Ambari 会把它标红此时点击该组件查看日志是最直接的定位方式。4. 实战中拦截过我的四个报错与排查链路4.1 报错一hdfs/_HOST 主体缺失或 keytab 与主机名不匹配现象是 HDFS 服务启动失败DataNode 日志里出现java.io.IOException: Login failed for UGI hdfs/hdp01HADOOP.COM (auth:KERBEROS) Caused by: GSSException: Server not found in Kerberos database (7) - UNKNOWN_SERVER当时第一反应是确认 keytab 里到底有没有对应主体。在出问题的节点上执行klist -kt /etc/security/keytabs/hdfs.service.keytab结果发现 keytab 里的主体是 hdfs/hdp01HADOOP.COM没有全限定域名。问题的根源是 Ambari 里注册的主机名是短名而 FreeIPA 的 DNS 区域里根本没有 hdp01 这个主机条目。Kerberos 服务端在验证时按完整 FQDN 反查两个名字对不上直接拒绝。解决办法把 Ambari 主机名统一改成 FQDN然后在 FreeIPA 上重新生成该主机的服务 keytab。ipa-getkeytab -s ipa-server.example.com -p hdfs/hdp01.example.comHADOOP.COM -k /etc/security/keytabs/hdfs.service.keytab重新分发后重启 HDFS。这个报错给了一个教训Ambari 注册主机名的工作一定要在启用 Kerberos 之前完成后面再改要牵连所有服务主体非常伤。4.2 报错二Clock skew too greatJVM 缓存时间造成的假象kinit 时报错kinit: Clock skew too great while getting initial credentials这个报错本身好解决问题在于为什么所有节点都同步了 NTP还是会报。我那次的情况是 ambari-agent 所在节点的 NTP 服务虽然起了但 chronyd 的 makestep 策略没有生效系统时间一直慢 3 分钟。执行 chronyc makestep 手动校准后以为没事了结果 kinit 还是报 skew。后来发现是改动系统时间后那个节点上已经运行的 JVM 进程里某些组件缓存了旧的上下文新建的 LoginContext 还在用旧时间窗口。处理办法很粗暴但有效校准时间后把 HDFS、YARN、HBase 相关服务再重启一遍。注意要先确认所有节点时间一致再重启否则重启过程中时间差又会出现反而加剧问题。建议在每台节点上做一个定时脚本每分钟执行 chronyc makestep 或者用 NTP 的配置选项让它自动微调别等偏差变成小时级才处理。另外FreeIPA 服务器本身的时间不要依赖集群节点去同步它应该是 KDC 时间源的上游所有节点向它看齐层级清晰才不容易乱。4.3 报错三Hive 启动时报 Unable to obtain password属主权限是元凶HiveServer2 启动失败日志里出现Unable to obtain password from user javax.security.sasl.SaslException: GSS initiate failedHive 的认证失败看着像 KDC 问题但排查后发现 keytab 完全没问题。手动在 Hive 节点上执行kinit -kt /etc/security/keytabs/hive.service.keytab hive/hdp01.example.comHADOOP.COM能成功拿到 TGT。那问题就出在 HiveServer2 进程读不到 keytab。检查进程用户发现 HiveServer2 以 hive 用户运行而 hive.service.keytab 的属主是 root权限 600hive 用户根本没有读权限。修复很简单chown hive:hadoop /etc/security/keytabs/hive.service.keytab chmod 400 /etc/security/keytabs/hive.service.keytab这个案例说明排查链路很重要先验证 keytab 本身再验证进程能不能读到最后才去翻 KDC 日志。有时候组件启动脚本还会因为 hive-site.xml 里的 principal 和 keytab 路径写得不对而失败重点检查这几个属性property namehive.server2.authentication/name valueKERBEROS/value /property property namehive.server2.authentication.kerberos.principal/name valuehive/hdp01.example.comHADOOP.COM/value /property property namehive.server2.authentication.kerberos.keytab/name value/etc/security/keytabs/hive.service.keytab/value /property4.4 报错四HTTP principal 缺失组件 Web UI 无法登录Kerberos 开启后HDFS NameNode UI、YARN ResourceManager UI 这类 Web 控制台也需要认证。如果引导过程中漏掉了 HTTP 主体或者 CSV 里没有生成浏览器访问 Web UI 会一直弹认证框输什么都没用。排查时先看组件配置里是否引用了 SPNEGO keytabklist -kt /etc/security/keytabs/spnego.service.keytab如果没有 HTTP/hdp01.example.comHADOOP.COM手工补一个ipa-getkeytab -s ipa-server.example.com -p HTTP/hdp01.example.comHADOOP.COM -k /etc/security/keytabs/spnego.service.keytab然后检查各组件的 web 认证配置比如 HDFS 的 dfs.web.authentication.kerberos.principal 和 dfs.web.authentication.kerberos.keytab。Ambari 在自动生成 CSV 时通常都会包含 HTTP 主体但老版本 HDP 的 Ambari 偶尔会因为服务清单不完整而漏掉所以这个检查我建议放到验证清单里固定执行。4.5 排查这类问题的一个固定方法论Kerberos 相关报错千奇百怪但排查路径其实可以固定下来。我总结为四个动作先看组件日志和 ambari-server 日志。Ambari Server 日志在 /var/log/ambari-server/ambari-server.logAgent 日志在节点上的 /var/log/ambari-agent/ambari-agent.log因为向导很多操作是靠 Agent 在节点上执行的。手动 kinit -kt keytab principal验证 keytab 本身是否可用。检查配置文件里的 principal、realm、keytab 路径、文件属主和权限。最后再翻 KDC 日志FreeIPA 的 /var/log/krb5kdc.log 里会记录 AS_REQ、TGS_REQ 的成功和失败信息能看到具体的错误码。按这个顺序做90% 的问题不用翻到 KDC 日志就能定位。直接看 KDC 日志容易陷入细节因为一次正常访问会产生大量认证记录反而干扰判断。5. 开启完成之后的验证与收尾5.1 从 kinit 到 HDFS 到 beeline 的完整验证链服务全部起来后不能只看 Ambari 页面绿了就直接收工要实际走一遍认证链路。先验证用户侧kinit adminHADOOP.COM klist预期能看到一条 TGT 票据过期时间一般是 10 小时后。再验证 HDFS 的 Kerberos 握手sudo -u hdfs kinit -kt /etc/security/keytabs/hdfs.service.keytab hdfs/hdp01.example.comHADOOP.COM hdfs dfs -ls /能列出目录说明 HDFS RPC 已经接受 Kerberos 票据。接着验证 HiveServer2beeline -u jdbc:hive2://hdp01.example.com:10000/default;principalhive/hdp01.example.comHADOOP.COM;authkerberos -n 进入 beeline 后执行 show databases能正常返回说明 Hive 的 Kerberos 也通了。最后在 FreeIPA 侧确认服务主体状态ipa service-find --server hdp01.example.com能看到 hdfs、HTTP、yarn、hive 等主体全部注册成功。加一步FreeIPA Web UI 里翻一下 Kerberos 域的状态确认没有异常锁定。Ambari 上此时所有服务应该都是绿色DataNode Live 数量等于节点数。5.2 收尾配置auth_to_local 映射与 keytab 属主开完 Kerberos 之后很容易出现一个现象用 IPA 里的用户 testuser 访问 HDFS文件显示属主是 nobody。原因很简单NameNode 需要把 testuserHADOOP.COM 这种主体映射成本地 Linux 用户 testuser默认规则如果没配好就映射成匿名用户。在 Ambari 的 HDFS - Config - Advanced core-site.xml 里加property namehadoop.security.auth_to_local/name valueRULE:[1:$1$0](.*HADOOP\.COM)s/.*// DEFAULT/value /property这条规则的意思是对于主体名里只有一级用户名且 realm 是 HADOOP.COM 的直接把 后面的 realm 去掉作为本地用户名其他情况走默认规则。保存后重启 HDFS再验证 testuser 访问文件时的属主显示。auth_to_local 规则直接影响多租户场景下用户能否对得上 HDFS 目录权限建议在集群上线前就调好否则后面每个用户都要手工映射非常痛苦。keytab 属主也一并确认。整理下来的常用映射如下keytab 文件建议属主权限hdfs.service.keytabhdfs:hadoop600yarn.service.keytabyarn:hadoop600hive.service.keytabhive:hadoop600hbase.service.keytabhbase:hadoop600spnego.service.keytabroot:hadoop440spnego 是多个 Web UI 公共使用的权限可以稍微放宽到 440但不要用 644。如果服务进程读不到 keytab直接参照这个表修正属主比在 kerberos 原理里找原因要快得多。5.3 扩容、续期、SSSD 缓存后续运维要盯住的点集群后面一定会扩容。新节点加入时先在 Ambari 里添加主机再把它加进 IPA 域ipa-client-install --mkhomedir然后重新跑一遍 Enable Kerberos 向导。向导会检测已经存在的主体不会重复创建只会补新节点缺的 keytab。如果 Ambari 需要公网接口来执行这些操作务必先在 FreeIPA 里给新节点创建主机记录并允许 DNS 更新。主体续期这块FreeIPA 的服务主体默认不会过期但用户主体和部分系统主体可能设置了有效期。建议用脚本定期检查ipa user-status ambari-ipa-admin一旦发现状态接近过期及时续期或者直接重置密码。用 ipa-getkeytab -r 重导 keytab 时-r 参数可以保留原 kvno避免因为版本号变化导致已经分发的 keytab 全部失效。SSSD 缓存也是日常容易踩的坑。用户改了密码之后如果仍然用旧密码能登录多半是 SSSD 缓存了凭据。处理办法systemctl restart sssd更彻底一点就清缓存数据库rm -rf /var/lib/sss/db/* systemctl restart sssd注意清这台节点会导致一段时间的域用户认证不可用建议一台一台来别在业务高峰操作。5.4 踩过这一整套流程之后我的一些感受整套走下来最大的收获是把 Kerberos 的票据、主体、keytab、时钟、DNS这几个概念和实际集群拓扑对上了号。开头我以为最难的是 FreeIPA 安装或者 Ambari 向导后来才发现最花时间的永远是对不对得上的问题——keytab 权限、realm 大小写、主机名解析、时间同步任何一个不一致都会让一次看似正常的组件启动瞬间失败。如果公司有条件建议在非生产环境多走两遍配合 KDC 日志来看每一步的认证流量加上 Ambari 的日志定位排查效率会高很多。最后再给个实用建议整套配置完成后把 /etc/security/keytabs 这个目录纳入节点备份清单同时把 ambari-ipa-admin 这个管理员账号的密码存进公司密码管理库不然后面扩容的时候你会到处找密码甚至不得不重置管理员密码连带影响所有基于它的自动化脚本。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

鸿蒙ArkTS Text组件宽高自适应:从布局约束到实战避坑 2026/9/26 12:53:17

鸿蒙ArkTS Text组件宽高自适应:从布局约束到实战避坑

最近写鸿蒙ArkTS布局的时候,我几乎每天都在跟Text组件的尺寸问题较劲。很多刚入门的朋友总会问:“为什么我给Text设了一个宽度,内容长了它还是往外冒?”或者“我想要Text根据文本长度自动撑开高度,但它在父容器里就是纹…

阅读更多 →
Superpowers:本地化AI开发增强工具链深度解析 2026/9/26 12:53:17

Superpowers:本地化AI开发增强工具链深度解析

1. 项目概述:Superpowers 不是超能力,而是开发者工具链的“认知增强层”最近在几个技术社区和开发者的 Slack 频道里,“superpowers”这个词出现频率陡增——不是漫威电影里的变种人设定,也不是某款新出的健身 App,而是…

阅读更多 →
VScode 插件 Vue VSCode Snippets 配 TaoToken:settings.json 骨架与模板生成验证 2026/9/26 12:53:10

VScode 插件 Vue VSCode Snippets 配 TaoToken:settings.json 骨架与模板生成验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Jev类型安全AI接入层:从零构建强类型契约的工程实践 2026/9/26 12:53:10

Jev类型安全AI接入层:从零构建强类型契约的工程实践

1. 这个“哑巴模型”到底什么来头第一次看到“Jev”这个词在技术群里刷屏的时候,我正蹲在工位上啃三明治。群里有人甩了张截图,说“这玩意儿居然能跑通全链路类型校验”,底下跟了一串“求官网”“求密钥”“怎么接入”。我当时的第一反应是&a…

阅读更多 →
Cursor + MCP 配置指南:搭建AI半自动开发环境 2026/9/26 12:53:10

Cursor + MCP 配置指南:搭建AI半自动开发环境

先说个背景:我平时会在社交账号上分享一些开发环境的折腾记录,上一篇写到第六篇的时候,评论区问得最多的就是“为啥你的 Cursor 看起来像在自动驾驶,我的一问三不知”。其实核心差异不在模型,也不在技巧,而…

阅读更多 →
史上最全VSCode插件避坑指南:TaoToken统一Key接入settings.json配置与验证 2026/9/26 12:53:03

史上最全VSCode插件避坑指南:TaoToken统一Key接入settings.json配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉