gpt4 book ai didi

ruby-on-rails - Kubernetes:自动为服务进行端口转发

转载 作者:行者123 更新时间:2023-11-29 13:18:35 27 4
gpt4 key购买 nike

我有一个使用 postgres 数据库的 Rails 项目。我想使用 Kubernetes 构建一个数据库服务器,rails 服务器将连接到这个数据库。

例如这里是我定义的postgres.yml

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

我通过以下命令运行它:kubectl run -f postgres.yml

但是当我尝试运行 rails server 时。我总是遇到以下异常:

PG::Error
invalid encoding name: utf8

我尝试转发端口,rails 服务器成功连接到数据库服务器:

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

然后运行以下命令:

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

我认为这个解决方案不好。我如何在我的 postgres.yml 中定义,这样我就不需要像上面那样手动进行端口转发。

谢谢

最佳答案

您可以尝试在 NodePort 上公开您的服务,然后访问该端口上的服务。

在这里查看 https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport

关于ruby-on-rails - Kubernetes:自动为服务进行端口转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45514325/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com