Kubernetes-从Job连接到Pod

时间:2020-07-29 09:30:58

标签: kubernetes cassandra

我有一个运行数据库的Pod。我的目标是使用Helm Hooks使用k8s Job初始化数据库。
我已经成功地使用架构脚本设置了工作。

不幸的是,从Job的command连接到现有的Pod时,我遇到了一些问题。

这是我的错误:

Connection error: ('Unable to connect to any servers', {'127.0.0.1': error(111, "Tried connecting to [('127.0.0.1', 9042)]. Last error: Connection refused")}]

在Pod上,我正在运行Cassandra容器,在我的Job上,我使用以下命令:

command: ["/bin/sh", "-c", "cqlsh -f /path/to/schema.cql"]

我是否必须以某种方式定义连接到Pod的方式?我也正在运行Cassandra的服务。

1 个答案:

答案 0 :(得分:3)

Helm挂钩将创建一个新的Pod作为该挂钩的一部分。您不能使用127.0.0.1localhost从另一个Pod连接到Pod,因为它们位于不同的网络名称空间中。您应该使用<PODIP>:9042,或者如果某项服务暴露了Pod,请使用服务名称,即<service-name>.<namespace-name>.svc.cluster.local:9042

替代头盔挂钩,您可以使用initcontainer,其中可以使用127.0.0.1localhost