Postgres развертывание с использованием Kubernetes не работает - PullRequest
0 голосов
/ 31 марта 2020

Я новичок в Azure Kubernetes Service (AKS), я создал файл развертывания для postgres следующим образом

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: postgres-pv-claim
  labels:
    app: postgres
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: postgres
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: postgres
    spec:
      containers:
        - name: postgres
          image: postgres:xx.xx
          imagePullPolicy: "IfNotPresent"
          ports:
            - containerPort: 5432
          env:
            - name: POSTGRES_DB
                value: postgresdb
            -   name: POSTGRES_USER
                value: postgresadmin
            - name: POSTGRES_PASSWORD
                value: admin123
          volumeMounts:
            - mountPath: /var/lib/postgresql/data
              name: postgredb
      volumes:
        - name: postgredb
          persistentVolumeClaim:
            claimName: postgres-pv-claim

apiVersion: v1
kind: Service
metadata:
  name: postgres
  labels:
    app: postgres
spec:
  type: NodePort
  ports:
   - port: 5432
  selector:
   app: postgres

и после развертывания службы postgres на AKS, служба создана .

abc@Azure:~$ kubectl get svc
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   10.0.0.1       <none>        443/TCP          6h45m
postgres     NodePort    10.0.165.161   <none>        5432:30692/TCP   9m8s

Но когда я попытался войти в PSQL с помощью psql -h localhost -U postgresadmin --password -p 30692 postgresdb, это показывает, что соединение отказано.

abc@Azure:~$ psql -h localhost -U postgresadmin --password -p 30692 postgresdb
Password:
psql: error: could not connect to server: could not connect to server: Connection refused
        Is the server running on host "localhost" (::1) and accepting
        TCP/IP connections on port 30692?
could not connect to server: Connection refused
        Is the server running on host "localhost" (127.0.0.1) and accepting
        TCP/IP connections on port 30692?

1 Ответ

1 голос
/ 31 марта 2020

По вашей проблеме, кажется, вы хотите выставить PostgreSQL для Inte rnet. Как я вижу, вы сделали две ошибки.

Во-первых, это файл YMAL, вам нужно изменить службу на следующую:

apiVersion: v1
kind: Service
metadata:
  name: postgres
  labels:
    app: postgres
spec:
  type: LoadBalancer
  ports:
   - port: 5432
     targetPort: 5432
  selector:
   app: postgres

Во-вторых, это команда connect. Я думаю, что вы подключаете PostgreSQL в облачной оболочке Azure, поэтому вам нужно использовать внешний IP-адрес службы для подключения:

psql -h external-IP -U postgresadmin --password -p 5432 postgresdb
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...