私は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にあなたのサービスを公開し、そのポート上のサービスにアクセスして試すことができ
おかげ
私はNodePortに私のサービスを変換するが、問題はまだ同じです。 –
これを試してみてください: kubectl公開サービスpostgres --port = 80 --type = LoadBalancerそしてkubectlを実行してサービスが公開されているポート番号を確認してください –
あなたはConverged TypeをLoadBalancerに指定していますか?私は試して、公開ポートが32395であることを確認します。そして、nodePort = 32395でNodePortを再試行します。しかし、問題はまだ同じです。ありがとう。 –