首页 文章

关于IBM Bluemix容器上的Kubernetes的Postgres

提问于
浏览
1

我正在尝试在Bluemix Container服务上部署Postgres(Kubernetes)

我创建了Image并通过以下yaml文件部署它:

apiVersion: v1
kind: Service
metadata:
  name: tripbru-postgres
  labels:
    app: tripbruREST
spec:
  ports:
    - port: 5432
      targetPort: 5432
      nodePort: 31432
  selector:
    app: tripbruREST
    tier: frontend
  type: NodePort
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: tripbru-postgres
  labels:
    app: tripbruREST
spec:
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: tripbruREST
        tier: postgres
    spec:
      containers:
      - image: registry.ng.bluemix.net/eliza/postgres:9.5
        name: postgres
        env:
        - name: POSTGRES_PASSWORD
          value: MYPASSWORD
        ports:
        - containerPort: 5432
          name: postgres
        volumeMounts:
        - name: pg-data
          mountPath: /var/lib/postgresql/data
        - name: tz-config
          mountPath: /etc/localtime
      volumes:
      - name: pg-data
        emptyDir: {}
      - name: tz-config
        hostPath:
          path: /usr/share/zoneinfo/Europe/Madrid

这有效地部署了它:

icordoba$ kubectl get services
NAME               CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
kubernetes         10.10.10.1     <none>        443/TCP          1d
tripbru-postgres   10.10.10.232   <nodes>       5432:31432/TCP   1d

但我无法连接到端口31432上的节点IP地址 . 我测试过Postgres正在运行使用:

kubectl exec -it tripbru-postgres-3667814974-pzmsk bash

我进入docker实例并检查Postgres运行正常 .

我相信我错过了一些东西 . 我还需要任何其他yaml文件吗?谢谢 .

1 回答

  • 1

    我使用“Pod”解决了它而不是部署 . 我还更改了hostPath并注意了短暂的“emptyDir”卷格式(这是Bluemix在免费Kubernetes服务中的测试,因此我无法使用实际卷) . 这是工作的yaml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: postgres
      labels:
        name: postgres
    spec:
      containers:
        - name: postgres
          image: registry.ng.bluemix.net/eliza/postgres:9.5
          env:
            - name: POSTGRES_PASSWORD
              value: MYPASSWORD
          ports:
            - containerPort: 5432
          volumeMounts:
            - name: pg-data
              mountPath: /var/lib/postgresql/data
            - name: tz-config
              mountPath: /etc/localtime
      volumes:
      - name: pg-data
        #emptyDir: {}
        hostPath:
          path: "/opt/tripbruPostgres"
      - name: tz-config
        hostPath:
          path: /usr/share/zoneinfo/Europe/Madrid
    

    (注意我仍然不知道我的“部署”方法出了什么问题,但使用Pod工作,因为我现阶段不需要复制)

相关问题