如何单独访问 couchdb 实例 Kubernetes OpenWhisk 部署

How to access the couchdb instance separately Kubernetes OpenWhisk deployment

我使用 [1] 在 Kubernetes 集群中部署了一个 Openwhisk 集群,对于我的应用程序,我想访问内部 couchDB 数据库

  1. 从函数内部

  2. 来自外部位置。我在下面添加了 svc 列表

我尝试了几件事,但我似乎无法访问 couchDB 数据库。我将 couchDB 服务从 ClusterIp 更改为 NodePort。对以下方面的任何帮助将不胜感激。假设节点的 IP 是 123.45.67.89

  1. 在函数中使用什么host:port?我以为应该是 123.45.67.89:30641 但是没有成功,

  2. 从外部使用什么host:port(如 curl 调用)?

最好的问候 普拉斯提,

NAME    TYPE    CLUSTER-IP  EXTERNAL-IP PORT(S) AGE
apigateway  NodePort    10.102.34.138   <none> 8080:31305/TCP,9000:31295/TCP    18h
controller  ClusterIP   10.104.235.255  <none>  8080/TCP    18h
couchdb NodePort    10.100.59.247   <none>  5984:30641/TCP  15h
kafka   ClusterIP   10.99.132.46    <none>  9092/TCP    18h
nginx   NodePort    10.104.182.149  <none> 5984:31064/TCP,80:32641/TCP,443:31141/TCP,8443:31389/TCP 10h
zookeeper   ClusterIP   10.102.198.186  <none> 2181/TCP,2888/TCP,3888/TCP   18h

[1] https://github.com/apache/incubator-openwhisk-deploy-kube

我能够解决这个问题,问题不在于 host:port 值。 [1] 中的部署脚本为 CouchDB 创建了一个网络策略,它限制了对 CouchDB 实例的访问。删除网络策略 "couchdb-netpol" 后,问题就解决了,我可以访问 CouchDB 实例。默认情况下,[1] 中的部署将 CouchDB 服务创建为 ClusterIP,您需要将其更改为 NodePort。完成后,当您删除或正确配置 "couchdb-netpol" 网络策略时,以下 host:port 允许访问数据库。

[节点 IP]:[port_given_in_couchdb_NodePort]

123.45.67.89:30641

[1] https://github.com/apache/incubator-openwhisk-deploy-kube