我有一个运行数据库的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的服务。
答案 0 :(得分:3)
Helm挂钩将创建一个新的Pod作为该挂钩的一部分。您不能使用127.0.0.1
或localhost
从另一个Pod连接到Pod,因为它们位于不同的网络名称空间中。您应该使用<PODIP>:9042
,或者如果某项服务暴露了Pod,请使用服务名称,即<service-name>.<namespace-name>.svc.cluster.local:9042
替代头盔挂钩,您可以使用initcontainer,其中可以使用127.0.0.1
或localhost
。