kubernetes - 如何连接到官方 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
相同。
解决方案
正如注释中所述:
注意: 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的评论中也提到了它
推荐阅读
- oracle - 在 oracle 中创建物化视图时出错 - ORA-12052
- regex - Powershell Regex 新电子邮件标准
- electron - Electron 无法在 mac 中自动更新版本 big sur
- angular - 如何在 Angular Formly 表单上显示超链接
- spring - Spring Security Microsoft Oauth2 登录错误
- jupyter-notebook - Jupiter notebook 在绘制我的图像之前正在打印文字(顺序不正确)
- bash - 开机后自动运行脚本 - 树莓派
- python - Pyautogui click() 和 moveTo() 不起作用 mac os bigsur
- flutter - 在标题和文本字段之间填充不呈现?
- python - gerrit 的 Rest api 给出响应,但用于获取修订的 Python-gerrit-api 包给出状态 404