2017-08-04 11 views
1

私はpostgresデータベースを使用しているレールプロジェクトを持っています。私はKubernetesを使用してデータベースサーバを構築したいと考えており、このデータベースにはレールサーバが接続します。ここで例えばKubernetes:サービスのために自動的にポートフォワーディング

は、以下のコマンドで

apiVersion: v1 
kind: Service 
metadata: 
    name: postgres 
spec: 
    selector: 
    app: postgres 
    ports: 
    - name: "5432" 
    port: 5432 
    targetPort: 5432 
--- 
apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: postgres 
spec: 
    replicas: 1 
    strategy: 
    type: Recreate 
    template: 
    metadata: 
     labels: 
     app: mysql 
    spec: 
     containers: 
     - env: 
     - name: POSTGRES_DB 
      value: hades_dev 
     - name: POSTGRES_PASSWORD 
      value: "1234" 
     name: postgres 
     image: postgres:latest 
     ports: 
     - containerPort: 5432 
     resources: {} 
     stdin: true 
     tty: true 
     volumeMounts: 
     - mountPath: /var/lib/postgresql/data/ 
      name: database-hades-volume 
     restartPolicy: Always 
     volumes: 
     - name: database-hades-volume 
     persistentVolumeClaim: 
      claimName: database-hades-volume 
--- 
apiVersion: v1 
kind: PersistentVolumeClaim 
metadata: 
    name: database-hades-volume 
spec: 
    accessModes: 
    - ReadWriteOnce 
    resources: 
    requests: 
     storage: 100Mi 

私はこれを実行するpostgres.ymlを私に定義される:kubectl run -f postgres.yml

しかし、私はrailsサーバーを実行しようとします。私はこのことを考える

kubectl port-forward postgres-3681891707-8ch4l 5432:5432 

:次に、以下のコマンドを実行します

$ kubectl get pods 
NAME      READY  STATUS RESTARTS AGE 
postgres-3681891707-8ch4l 1/1  Running 0   1m 

PG::Error 
invalid encoding name: utf8 

私はポートを転送しようと、サーバーが正常にデータベース・サーバーに接続レール:私は常に次の例外を満たし解決策は良くありません。 postgres.ymlではどのように定義すればよいので、上記のように手動でポートフォワーディングする必要はありません。あなたはNodePortにあなたのサービスを公開し、そのポート上のサービスにアクセスして試すことができ

おかげ

答えて

1
+0

私はNodePortに私のサービスを変換するが、問題はまだ同じです。 –

+0

これを試してみてください: kubectl公開サービスpostgres --port = 80 --type = LoadBalancerそしてkubectlを実行してサービスが公開されているポート番号を確認してください –

+0

あなたはConverged TypeをLoadBalancerに指定していますか?私は試して、公開ポートが32395であることを確認します。そして、nodePort = 32395でNodePortを再試行します。しかし、問題はまだ同じです。ありがとう。 –

関連する問題