1

我正在尝试将 Python-Arango连接到应用程序。我已经使用本教程在 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 库将我的应用程序连接到数据库时,我收到与证书相关的错误:

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 文件中明确提到过。我还在python代码中设置了验证标志为False,如下所示

db = client.db(name='testDB', verify=False, username='root', password='')

然而,它并没有像预期的那样绕过验证。

我想了解我可能错过的内容——无论是在设置过程中还是在 Python 调用中——这不会让我绕过这个 SSL 证书错误问题,或者是否可以设置证书。我试过这个 Arango教程来设置证书,但它没有给我成功。

谢谢。

4

1 回答 1

0

我能想到的唯一解决方法是选择不安全的路线。arango-cluster-ca我没有在arango 集群配置文件的字段中,而是将该spec.tls.caSecretName字段设置为None. 它让我可以毫无问题地连接 http。

仍然想知道是否有一些解决方法可以通过 https 连接它,所以我仍然愿意回答,否则我会关闭它。

于 2021-07-14T13:48:31.543 回答