Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql IBM Bluemix容器上的Kubernetes Postgres_Postgresql_Kubernetes_Containers_Ibm Cloud_Ibm Cloud Kubernetes - Fatal编程技术网

Postgresql IBM Bluemix容器上的Kubernetes Postgres

Postgresql IBM Bluemix容器上的Kubernetes Postgres,postgresql,kubernetes,containers,ibm-cloud,ibm-cloud-kubernetes,Postgresql,Kubernetes,Containers,Ibm Cloud,Ibm Cloud Kubernetes,我正在尝试在Bluemix容器服务(Kubernetes)上部署Postgres 我已经创建了映像,并通过以下yaml文件进行了部署: apiVersion: v1 kind: Service metadata: name: tripbru-postgres labels: app: tripbruREST spec: ports: - port: 5432 targetPort: 5432 nodePort: 31432 selector

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

我已经创建了映像,并通过以下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
这有效地部署了it:

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
我进入docker实例,检查Postgres是否正常运行

我肯定我错过了什么。我需要其他yaml文件吗?谢谢。

我用“吊舱”而不是部署解决了这个问题。我还更改了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是可行的,因为我在这一阶段不需要复制)

您可以添加您尝试连接的方式(从何处,使用什么工具进行测试)?只需从Internet连接即可。我想使用节点的外部IP和端口31432访问Postgres Pod。我已经在本地尝试了Minikube,它可以工作(相同的Yaml文件)。谢谢。请从主机(您的一个节点)检查它,因为看起来您可能必须允许访问bluemix防火墙配置中的某个端口
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