tbd_
tbd_

Reputation: 1248

Kubernetes Pod can't connect to local postgres server with Hasura image

I'm following this tutorial to connect a hasura kubernetes pod to my local postgres server.

When I create the deployment, the pod's container fails to connect to postgres (CrashLoopBackOff and keeps retrying), but doesn't give any reason why. Here are the logs:

{"type":"pg-client","timestamp":"2020-05-03T06:22:21.648+0000","level":"warn","detail":{"message":"postgres connection failed, retrying(0)."}}

My deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: hasura
    hasuraService: custom
  name: hasura
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hasura
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: hasura
    spec:
      containers:
      - image: hasura/graphql-engine:v1.2.0
        imagePullPolicy: IfNotPresent
        name: hasura
        env:
        - name: HASURA_GRAPHQL_DATABASE_URL
          value: postgres://USER:@localhost:5432/my_db
        - name: HASURA_GRAPHQL_ENABLE_CONSOLE
          value: "true"
        ports:
        - containerPort: 8080
          protocol: TCP
        resources: {}

I'm using postgres://USER:@localhost:5432/MY_DB as the postgres url - is "localhost" the correct address here?

I verified that the above postgres url works when I try (no password):

> psql postgres://USER:@localhost:5432/my_db
psql (12.2)
Type "help" for help.

> my_db=#

How else can I troubleshoot it? The logs aren't very helpful...

Upvotes: 0

Views: 1370

Answers (1)

Nick
Nick

Reputation: 1948

If I got you correctly, the issue is that the Pod (from "inside" the Minikube ) can not access Postgres installed on Host machine (the one that runs Minikube itself) via localhost.

If that is the case, please check this thread .

... Minikube VM can access your host machine’s localhost on 192.168.99.1 (127.0.0.1 from Minikube would still be a Minicube's localhost).

Technically, for the Pod the localhost is Pod itself. The Host machine and Minikube are connected via bridge. You can find out exact ip addresses and routes with the infconfig and route -n on your Minikube Host.

Upvotes: 1

Related Questions