我正在尝试将Python-Arango library连接到一个应用程序。我已经使用这个tutorial在Kubernetes节点上设置了ArangoDB。我的集群yaml文件如下所示:
---
apiVersion: "database.arangodb.com/v1alpha"
kind: "ArangoDeployment"
metadata:
name: "arango-cluster"
spec:
mode: Cluster
image: arangodb/arangodb:3.7.6
tls:
caSecretName: arango-cluster-ca
agents:
storageClassName: my-local-storage
resources:
requests:
storage: 2Gi
dbservers:
storageClassName: my-local-storage
resources:
requests:
storage: 17Gi
externalAccess:
type: NodePort
nodePort: 31200
安装程序看起来很好,因为我可以访问Web UI以及通过Arango shell。但是,当我使用python-arango库将我的应用程序连接到DB时,我收到一个与证书相关的错误:
Max retries exceeded with url: /_db/testDB/_api/document/demo/10010605 (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),))
当执行kubectl get secrets
时,我在那里看到了arango-cluster-ca
,我已经在上面的YAML文件中明确提到了这一点。
db = client.db(name='testDB', verify=False, username='root', password='')
然而,它并没有像预期的那样绕过验证。
我想知道我可能错过了什么-无论是在安装过程中,还是在Python调用中-这让我无法绕过这个SSL证书错误问题,或者是否可以设置证书。我尝试了这个Arango tutorial来设置证书,但它没有给予我成功。
- 谢谢-谢谢
1条答案
按热度按时间oxcyiej71#
我能想到的唯一解决办法是选择不安全的路由。我没有在arango集群配置文件的
spec.tls.caSecretName
字段中设置arango-cluster-ca
,而是将该字段设置为None
。它允许我与http连接,没有任何问题。仍然想知道是否有一些变通办法,让它通过https连接,所以我仍然开放的答案,否则我会关闭这个。