首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将google云函数连接到kubernetes集群中的cassandra数据库

如何将google云函数连接到kubernetes集群中的cassandra数据库
EN

Stack Overflow用户
提问于 2019-03-28 20:50:00
回答 1查看 252关注 0票数 0

我使用kubernetes (使用terraform)在google云平台上部署了一个cassandra集群。

cassandra集群工作得很好,我正在用kubectl exec -it cassandra-0 bash运行一些命令,数据正在传播到所有其他节点,一切都运行得很好。

当我运行host cassandra时,我看到以下内容:

代码语言:javascript
复制
cassandra.default.svc.cluster.local has address 10.32.1.4
cassandra.default.svc.cluster.local has address 10.32.1.5
cassandra.default.svc.cluster.local has address 10.32.3.12

在此之前,一切都是正确的。

但是现在我有一个我不知道如何解决的问题。我有一个Google Cloud函数,我想连接到这个数据库并插入一些数据。

做这件事最好的方法是什么?我想我不应该把数据库暴露在互联网上。但是当我尝试将云函数连接到cassandra.default.svc.cluster.local时,我看不到服务器。

我在cassandra服务上使用cluster_ip = "None"

更新:添加了以下信息:

我的Google Cloud函数是这样的:

代码语言:javascript
复制
exports.helloGET = function helloGET (req, res) {
    const cassandra = require('cassandra-driver');
    const client = new cassandra.Client({ contactPoints: ['cassandra.default.svc.cluster.local'], localDataCenter: 'DC1', keyspace: 'my_bd_name' });

    const query = 'SELECT * FROM User';
    client.execute(query)
        .then(result => console.log('Users: ', dump(result.rows)));

    res.send('Cassandra loaded... :' + dump(result.rows));
};
EN

回答 1

Stack Overflow用户

发布于 2019-03-28 21:18:19

预计会有一个完整的SRV record

服务器记录

SRV记录是为属于普通或无头服务的命名端口创建的。对于每个命名端口,SRV记录的格式为_my-port-name._my-port-protocol.my-svc.my-namespace.svc.cluster.local。对于常规服务,将解析为端口号和域名:my-svc.my-namespace.svc.cluster.local。对于无头服务,它解析为多个应答,每个应答对应一个支持该服务的pod,并包含auto-generated-name.my-svc.my-namespace.svc.cluster.local形式的pod的端口号和域名。

在您的示例中,您创建了一个无头服务(没有集群IP,因为您使用的是cluster_ip = "None"),并且需要找到auto-generated-name.cassandra.default.svc.cluster.localauto-generated-name

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55398097

复制
相关文章

相似问题

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