如何连接到官方掌舵图创建的OpenLDAP?

时间:2020-04-12 07:35:27

标签: kubernetes ldap kubernetes-helm openldap

使用Helm 3安装的OpenLDAP:

helm install openldap stable/openldap

收到此消息:

NAME: openldap
LAST DEPLOYED: Sun Apr 12 13:54:45 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
OpenLDAP has been installed. You can access the server from within the k8s cluster using:

  openldap.default.svc.cluster.local:389


You can access the LDAP adminPassword and configPassword using:

  kubectl get secret --namespace default openldap -o jsonpath="{.data.LDAP_ADMIN_PASSWORD}" | base64 --decode; echo
  kubectl get secret --namespace default openldap -o jsonpath="{.data.LDAP_CONFIG_PASSWORD}" | base64 --decode; echo


You can access the LDAP service, from within the cluster (or with kubectl port-forward) with a command like (replace password and domain):
  ldapsearch -x -H ldap://openldap.default.svc.cluster.local:389 -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w $LDAP_ADMIN_PASSWORD


Test server health using Helm test:
  helm test openldap


You can also consider installing the helm chart for phpldapadmin to manage this instance of OpenLDAP, or install Apache Directory Studio, and connect using kubectl port-forward.

但是我不能使用此命令在k8s集群中的ldap服务器上搜索内容:

export LDAP_ADMIN_PASSWORD=[REAL_PASSWORD_GET_ABOVE]
ldapsearch -x -H ldap://openldap.default.svc.cluster.local:389 -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w $LDAP_ADMIN_PASSWORD

错误

ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)

我也登录到Pod来运行

kubectl exec -it openldap -- /bin/bash
# export LDAP_ADMIN_PASSWORD=[REAL_PASSWORD_GET_ABOVE]
# ldapsearch -x -H ldap://openldap.default.svc.cluster.local:389 -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w $LDAP_ADMIN_PASSWORD

一样。

1 个答案:

答案 0 :(得分:1)

如注释中所述:

注意: 已安装OpenLDAP。您可以使用以下方法从k8s集群中访问服务器:

openldap.default.svc.cluster.local:389

您可以使用以下命令访问LDAP adminPassword和configPassword:

kubectl get secret --namespace default openldap -o jsonpath="{.data.LDAP_ADMIN_PASSWORD}" | base64 --decode; echo kubectl get secret --namespace default openldap -o jsonpath="{.data.LDAP_CONFIG_PASSWORD}" | base64 --decode; echo

您可以使用类似(替换密码和域)的命令从群集内(或使用kubectl port-forward)访问LDAP服务: ldapsearch -x -H ldap://openldap.default.svc.cluster.local:389 -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w $LDAP_ADMIN_PASSWORD

使用Helm测试测试服务器运行状况: helm test openldap

您还可以考虑为phpldapadmin安装helm图表以管理此OpenLDAP实例,或者安装Apache Directory Studio,然后使用kubectl port-forward进行连接。

您可以这样做:

$ kubectl port-forward services/openldap 3389:389 
Forwarding from 127.0.0.1:3389 -> 389
Forwarding from [::1]:3389 -> 389
Handling connection for 3389

在Kubernetes集群之外的另一个shell中:

$ kubectl get secret --namespace default openldap -o jsonpath="{.data.LDAP_ADMIN_PASSWORD}" | base64 --decode; echo
l3dkQByvzKKboCWQRyyQl96ulnGLScIx
$ ldapsearch -x -H ldap://localhost:3389 -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w  l3dkQByvzKKboCWQRyyQl96ulnGLScIx

@Totem

的评论中已经提到了它