delphi dll是否可用var参数_0592-5.16.1-如何配置Kerberos高可用

作者:唐辉

1.文档编写目的

对于一个启用了Kerberos的正式生产系统,还需要考虑KDC的高可用。而Kerberos服务是支持配置为主备模式的,数据同步是通过kprop服务将主节点的数据同步到备节点。本文主要讲述如何在CDH5.16.1中配置Kerberos服务的高可用。在前面的文章中Fayson介绍过《0087-如何配置Kerberos服务的高可用》,但无论是CDH还是OS版本到较低,本文也主要是为了更新文档。

  • 内容概述

1.备节点安装Kerberos服务

2.主备节点Kerberos配置修改

3.主节点数据同步至备节点并配置同步任务

  • 测试环境

1.CM和CDH版本为CDH 5.16.1

2.操作系统为RedHat7.2

3.采用root用户

2.备节点安装Kerberos服务

yum install -y krb5-server openldap-clients krb5-workstation krb5-libs
ec9e7c42eaddd957f56ffa250861d47a.png

注意:此处只安装服务,暂不做相应配置及启动服务。

3.主Kerberos节点操作

1.修改/etc/krb5.conf的配置文件,在realms配置下增加备Kerberos的配置

[realms] CLOUDERA.COM = { kdc = cdh4.macro.com admin_server = cdh4.macro.com kdc = cdh3.macro.com admin_server = cdh3.macro.com }
739772196c11e96cee2733241db87326.png

2.将修改后的/etc/krb5.conf文件同步到集群的所有Kerberos客户端节点相应目录

scp -rp /etc/krb5.conf cdh1:/etc/scp -rp /etc/krb5.conf cdh2:/etc/scp -rp /etc/krb5.conf cdh3:/etc/
09623681560266ef59f50e12a0dd5b1b.png

3.保存配置,然后重启krb5kdc和kadmin服务

systemctl restart krb5kdcsystemctl restart kadmin
dd3b95d1a337bb025e608947f0dfd44e.png

4.创建主从同步账号,并为账号生成keytab文件

kadmin.localkadmin.local: addprinc -randkey host/cdh4.macro.comkadmin.local: addprinc -randkey host/cdh3.macro.com kadmin.local: kadmin.local: ktadd host/cdh4.macro.comkadmin.local: ktadd host/cdh3.macro.com
3e3440aee043bd4006c5078c8b39074f.png

使用随机生成秘钥的方式创建同步账号,并使用ktadd命令生成同步账号的keytab文件,默认文件生成在/etc/krb5.keytab下,生成多个账号则在krb5.keytab基础上追加。

5.复制以下文件到备Kerberos服务器相应目录

将/etc目录下的krb5.conf和krb5.keytab文件拷贝至备Kerberos服务器的/etc目录下

将/var/kerberos/krb5kdc目录下的.k5.CLOUDERA.COM、kadm5.acl和krb5.conf文件拷贝至备Kerberos服务器的/var/kerberos/krb5kdc目录

cd /var/kerberos/krb5kdcscp -rp /etc/krb5.conf /etc/krb5.keytab cdh3:/etc/scp kadm5.acl kdc.conf .k5.MACRO.COM cdh3:/var/kerberos/krb5kdc/
da962bcd8d45a3e51c713e3b5c4d1c2d.png

备节点查看

79188e562073f0876cf4d15ad9985fb6.png

4.备Kerberos节点操作

1.需要申明用来同步的用户,在/var/kerberos/krb5kdc/kpropd.acl配置文件中添加对应账户,如果配置文件不存在则新增

[root@cdh3 ~]# vim /var/kerberos/krb5kdc/kpropd.aclhost/cdh3.macro.com@MACRO.COMhost/cdh4.macro.com@MACRO.COM
f3f7b380ecfb92d20c81452c8f200449.png

2.启动kprop服务并加入系统自启动

systemctl enable kpropsystemctl start kpropsystemctl status kprop
d5230549f7ce63790e4c00cfbc0ffceb.png

备节点上已经准备好数据传输。接下来在主节点上使用kdb5_util将Kerberos库导出,然后通过kprop命令向备节点同步数据。

5.节点数据同步至备节点

1.在主节点上使用kdb5_util命令导出Kerberos数据库文件

kdb5_util dump /var/kerberos/krb5kdc/master.dump
64af4dc22ef818bccd125b1bd3c1f330.png

导出成功后生成master.dump和master.dump.dump_ok两个文件。

2.在主节点上使用kprop命令将master.dump文件同步至备节点

[root@cdh4 krb5kdc]# kdb5_util dump /var/kerberos/krb5kdc/master.dump[root@cdh4 krb5kdc]# kprop -f /var/kerberos/krb5kdc/master.dump -d -P 754 cdh3.macro.com32768 bytes sent.55431 bytes sent.Database propagation to cdh3.macro.com: SUCCEEDED
23b8dc117b0aaa5b20ac695da6639cf7.png

有如上图标识则表示数据同步成功。

3.在备节点的/var/kerberos/krb5kdc目录下查看

[root@cdh3 krb5kdc]# cd /var/kerberos/krb5kdc[root@cdh3 krb5kdc]# ll
d8366299465ec822790fcb35060ca39e.png

在备节点的/var/kerberos/krb5kdc目录下增加了如上图标识的文件。

6.节点数据同步至备节点

1.在备节点上测试同步过来的数据是否能启动Kerberos服务

启动krb5kdc服务

[root@cdh3 krb5kdc]# systemctl start krb5kdc[root@cdh3 krb5kdc]# systemctl status krb5kdc
0b4c84875ed5b1f80ba962e3aff04234.png

2.在备节点上验证kadmin服务是否正常

[root@cdh3 krb5kdc]# kadmin.localAuthenticating as principal hdfs/admin@MACRO.COM with password.kadmin.local: addprinc testWARNING: no policy specified for test@MACRO.COM; defaulting to no policyEnter password for principal "test@MACRO.COM": Re-enter password for principal "test@MACRO.COM": Principal "test@MACRO.COM" created.kadmin.local: listprincs
7b39a1faaa01ef614dc29403bda2647d.png

3. kill主服务的krb5kdc服务和kadmin 服务进行验证

[root@cdh4 krb5kdc]# ps -ef | grep krb5[root@cdh4 krb5kdc]# kill -9 27976[root@cdh4 krb5kdc]# ps -ef | grep kadmin[root@cdh4 krb5kdc]# kill -9 27984[root@cdh4 krb5kdc]# ps -ef | grep kadmin[root@cdh4 krb5kdc]# kill -9 27984[root@cdh4 krb5kdc]# kinit test[root@cdh4 krb5kdc]# klist
bb9926142ecda4b1f299ed3c5c34cd9e.png

4.在备用服务器上服务依旧正常,可以正常添加凭证

[root@cdh3 krb5kdc]# kadmin.localAuthenticating as principal hdfs/admin@MACRO.COM with password.kadmin.local: addprinc test111WARNING: no policy specified for test111@MACRO.COM; defaulting to no policyEnter password for principal "test111@MACRO.COM": Re-enter password for principal "test111@MACRO.COM": Principal "test111@MACRO.COM" created.kadmin.local: listprinc
9db7edbe83dc37e81142ec32fa349340.png

5.并且在其他客户端节点初始化刚新增的凭证正常

[root@cdh2 ~]# kinit test111Password for test111@MACRO.COM: [root@cdh2 ~]# klistTicket cache: FILE:/tmp/krb5cc_0Default principal: test111@MACRO.COM
da3a785b4b84fa70b07ed05bd614b43c.png

7.配置主节点crontab任务定时同步数据

1.编写同步脚本

[root@cdh4 ~]# vim /var/kerberos/krb5kdc/kprop_sync.sh #!/bin/bashDUMP=/var/kerberos/krb5kdc/master.dumpPORT=754SLAVE="cdh4.macro.com"TIMESTAMP=`date`echo "Start at $TIMESTAMP"sudo kdb5_utildump $DUMPsudo kprop -f $DUMP -d -P $PORT $SLAVE
98aee89430332500446ca978281525b1.png

2.赋予kprop_sync.sh脚本可执行权限,并测试

[root@cdh4 ~]# chmod 700 /var/kerberos/krb5kdc/kprop_sync.sh[root@cdh4 ~]# sh /var/kerberos/krb5kdc/kprop_sync.sh
b65a745a54630e39e8143456ce73d38b.png

3.配置crontab任务

[root@cdh4 ~]# crontab -e0 * * * * root/var/kerberos/krb5kdc/kprop_sync.sh >/var/kerberos/krb5kdc/lastupdate
a5fe59d81993c956f65bf4e3fb3f0a78.png

退出并保存,启动服务并设置开机启动

[root@cdh4 ~]# systemctl enable crond[root@cdh4 ~]# systemctl start crond
450513bca4964d173d95962b2d3c27b4.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值