在k8s里部署LDAP服务
LDAP服务由ladpadmin和ldapserver两个无状态服务组成
adpadmin服务(通过该服务的外部接口能访问LDAP服务)
容器配置:
镜像名称:osixia/phpldapadmin:latest (首先在本地pull该镜像,再上传到环境上)
CPU请求:0.5Core
CPU上限:1Core
内存请求:1GiB
内存上限:2GiB
挂载路径:/var/lib/ldap(持久化数据)
键值对:
PHPLDAPADMIN_LDAP_HOSTS:ldapserver
PHPLDAPADMIN_HTTPS:false
访问配置:
访问类型:集群内访问
访问端口:HTTP协议/80容器端口
访问类型:集群外访问
访问端口:HTTP协议/80容器端口/32000节点端口
ldapserver服务(重要)
容器配置:
镜像名称:osixia/openldap:latest (首先在本地pull该镜像,再上传到环境上)
CPU请求:0.5Core
CPU上限:1Core
内存请求:1GiB
内存上限:2GiB
挂载路径:/var/lib/ldap(持久化数据)
访问配置:
ldapserver (要与ldapadmin里的PHPLDAPADMIN_LDAP_HOSTS的值一样!!)
访问类型:集群内访问
访问端口1:TCP协议/389容器端口
访问端口2:UDP协议/389容器端口
ldapservernodeport
访问类型:外部访问
访问端口1:TCP协议/389容器端口/30089
ldap服务器设置
服务器地址:ladpserver的外部访问IP (要有内部的访问权限才能从外网进去访问LDAP服务器) 解决方法:从内部打开一个端口,然后通过外部ip:port进行访问
端口:外部访问的端口号这里为30089
账号:cn=admin,dc=example,dc=org
密码:admin
BaseDN:dc=example,dc=org
账号字段:cn
姓名字段:sn
邮箱字段:mail
往LDAP数据库添加数据:
进入LDAP服务import
代码格式:
创建base:
# Entry 1: dc=example,dc=org
dn: dc=example,dc=org
dc: example
o: Example Inc.
objectclass: top
objectclass: dcObject
objectclass: organization
新增成员:
dn: cn=aaa,dc=example,dc=org
cn: aaa
mail: email
objectclass: top
objectclass: inetOrgPerson
sn:: 5rWZ5ZWGdGVzdA==
uid:: 5rWZ5ZWGdGVzdA==
userpassword: 123456
也可以直接从另一个LDAP里export数据,复制黏贴,注意要修改BaseDN
从后端mongo数据库删除LDAP数据
首先远程连接环境ip
查看mongo的pod
kubectl get pod | grep 'mongo'
进入pod服务:kubectl exec -it infra-mongo-mongo-v1-0-0 mongo
re.status() 可以查看数据的状态
在Docker上部署LDAP服务
首先在你自己的环境里docker pull 两个镜像
docker pull osixia/openldap (openldap构建ldap服务)
docker pull osixia/phpldapadmin (admin是用来管理ldap数据库的)
运行镜像(参数也可以不填,都为默认)
docker run -p 30389:389 -p 30636:636 \
--name myfirstldap \
--network bridge \
--hostname openldap \
--env LDAP_ORGANISATION="mylitboy" \
--env LDAP_DOMAIN="mylitboy.com" \
--env LDAP_ADMIN_PASSWORD="ldap123" \
--detach osixia/openldap
配置LDAP组织者:--env LDAP_ORGANISATION="firstldap"
配置LDAP域:--env LDAP_DOMAIN="firstldap.org" (这里也就是dc=firstldap,dc=org)
配置LDAP密码:--env LDAP_ADMIN_PASSWORD="admin123"
默认登录用户名:admin
(389端口是用来从外部进入ldap访问数据的,像我这样是把389映射到30389上了,外部就通过port30389来读取数据)
docker ps 查看一下是否运行起来了
docker stop
openldap运行起来之后,来启动ldapadmin进行管理
docker run -d --privileged -p 10086:80 \
--name myphpldapadmin \
--env PHPLDAPADMIN_HTTPS=false \
--env PHPLDAPADMIN_LDAP_HOSTS=172.17.0.4 \
--detach osixia/phpldapadmin
配置的Ldap地址:--env PHPLDAPADMIN_LDAP_HOSTS=172.17.0.4 (这个ip用docker inspect --format '{{ .NetworkSettings.IPAddress }}'
配置不开启HTTPS:--env PHPLDAPADMIN_HTTPS=false(默认是true,就是https访问,远程读取时会有些麻烦,没特殊需要建议http)
(如果选择https方式,一定要映射443端口,我这里http所以可以是80,对应的10086就是之后访问ldap服务的port了)
docker ps查看一下是否启动成功
然后通过172.17.0.4:10086来访问服务 (都要看你自己的配置来)
点击login登录
账号: cn=admin,dc=firstldap,dc=org (看之前openldap的配置)
密码: admin123
登录后是这样的,通过import可以导入数据,导入格式在上面有讲