首页 > 解决方案 > 如何连接到官方 helm chart 创建的 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

相同。

标签: kubernetesldapkubernetes-helmopenldap

解决方案


正如注释中所述:

注意: 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 chart 来管理此 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

从另一个 shell,在 Kubernetes 集群之外:

$ 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的评论中也提到了它


推荐阅读