首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python驱动程序访问EKS上的Scylla

用Python驱动程序访问EKS上的Scylla
EN

Stack Overflow用户
提问于 2021-02-22 16:35:07
回答 1查看 236关注 0票数 0

我是库伯奈特斯的新手。最近,我被要求在AWS上设置Scylla。我按照教程在EKS (http://operator.docs.scylladb.com/master/eks.html)上部署Scylla。一切都很顺利。

然后,我在另一个相关教程(http://operator.docs.scylladb.com/master/generic.html)中访问了数据库部分。

我能够运行前两个步骤的命令:

代码语言:javascript
复制
kubectl exec -n scylla -it scylla-cluster-us-east-1-us-east-1a-0 -- cqlsh
> DESCRIBE KEYSPACES;
代码语言:javascript
复制
kubectl -n scylla describe service scylla-cluster-client

然而,我不知道如何执行最后一步,它说:

在Kubernetes集群中运行的

Pods可以使用此服务连接到Scylla。下面是一个使用Python驱动程序的示例:

从cassandra.cluster导入集群=群集(‘scylla-cluster-client.scylla.svc’)会话= cluster.connect()

脚本无法解析scylla-cluster-client.scylla.svc。因此,我也尝试了不同的is,但遇到了cassandra.cluster.NoHostAvailable错误。

此外,我发现在通过

代码语言:javascript
复制
kubectl exec -n scylla -it scylla-cluster-us-east-1-us-east-1a-0 -- /bin/bash

有人能帮我解决使用Python驱动程序的连接问题吗?

如果你能告诉我:

为什么scylla集群-client.scylla.svc对我不起作用? drivers?

  • Which
  1. kubectl exec -n ...和Cassandra的IP之间有什么不同?我注意到有来自Kubernetes的集群IP、来自Kubernetes的内部IP和来自AWS的EC2机器的公共IP。如果需要公共IP,是否需要在AWS上打开端口(例如9042)?如何使其更安全?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-22 20:12:44

  1. scylla-cluster-client.scylla.svc是一个k8s可解析的DNS地址,因此只能从托管在同一个集群(和命名空间)的pods中工作。您不能从outside
  2. kubectl exec中使用它,因为它在其中一个Scylla上运行命令,因此本质上是在Scylla节点本身上运行该命令,并在该节点上连接到localhost。相反,scylla-cluster-client.scylla.svc正在远程连接(但在k8s网络中)
  3. ,您不需要使用IP --使用scylla-cluster-client.scylla.svc DNS名称。如果您想使用IP地址,可以使用k8s API手动解析DNS名称或读取Scylla的IP地址--但实际上没有理由这样做。如果您想要从集群之外进行连接,您将需要一个公共服务或类似的东西--基本上是一个k8s托管代理。理论上,你可以允许公共舱,但这是高度inadvisable.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66319670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档