Kubernetes 库伯内特斯吊舱';t访问服务暴露的其他播客

Kubernetes 库伯内特斯吊舱';t访问服务暴露的其他播客,kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,库伯内特斯是新来的 为了构建我们的测试环境,我尝试在Kubernetes中设置一个PostgreSQL实例,该实例可供测试集群中的其他POD访问 pod和服务在语法上都有效并且正在运行。两者都显示在kubectl get[svc/pods]的输出中。但是当另一个pod试图访问数据库时,它超时了 以下是吊舱的规格: # this defines the postgres server apiVersion: v1 kind: Pod metadata: name: postgres lab

库伯内特斯是新来的

为了构建我们的测试环境,我尝试在Kubernetes中设置一个PostgreSQL实例,该实例可供测试集群中的其他POD访问

pod和服务在语法上都有效并且正在运行。两者都显示在
kubectl get[svc/pods]
的输出中。但是当另一个pod试图访问数据库时,它超时了

以下是吊舱的规格:

# this defines the postgres server
apiVersion: v1
kind: Pod
metadata:
  name: postgres
  labels:
    app: postgres
spec:
  hostname: postgres
  restartPolicy: OnFailure
  containers:
    - name: postgres
      image: postgres:9.6.6
      imagePullPolicy: IfNotPresent
      ports:
      - containerPort: 5432
        protocol: TCP
以下是服务的定义:

# this defines a "service" that makes the postgres server publicly visible
apiVersion: v1
kind: Service
metadata:
  name: postgres
spec:
  selector:
    app: postgres
  type: ClusterIP
  ports:
  - port: 5432
    protocol: TCP
我肯定其中至少有一个有问题,但我对库伯内特斯不够熟悉,不知道是哪个

如果相关的话,我们运行的是Google Kubernetes引擎


谢谢你的帮助

如何从其他pod中命中postgresdb?pod和postgres在同一名称空间中吗?您如何尝试从应用程序连接到Postgres?您使用的是哪个DNS/主机名?@Fiunchino是的,两个POD位于同一个开发人员命名空间中。对于我们的应用程序,我们在Python中使用了SQLAlchemy。我们还使用了
tenstity
包来处理重试,因此我们最终从
tenstity
中得到了一个与超时相关的错误。您可以共享连接字符串吗?您可以尝试执行到一个容器中(最好是python容器)并尝试卷曲postgres:5432吗?另外-服务是否应该在集群外部公开?出于测试目的,您可以尝试删除类型:clusterphow您是否从其他pod中命中了postgres db?pod和postgres是否在同一名称空间中?您如何尝试从应用程序连接到Postgres?您使用的是哪个DNS/主机名?@Fiunchino是的,两个POD位于同一个开发人员命名空间中。对于我们的应用程序,我们在Python中使用了SQLAlchemy。我们还使用了
tenstity
包来处理重试,因此我们最终从
tenstity
中得到了一个与超时相关的错误。您可以共享连接字符串吗?您可以尝试执行到一个容器中(最好是python容器)并尝试卷曲postgres:5432吗?另外-服务是否应该在集群外部公开?出于测试目的,您可以尝试删除type:ClusterIP