postgresql - Helm 部署:在 Cloud SQL 中将 Kubernetes 连接到 Postgres DB
问题描述
所以我正在使用 helm 部署我的 spring boot 应用程序。我正在按照我们公司使用的预先存在的公式来尝试完成这项任务,但由于某种原因我无法做到。
我的postgresql-secrets.yml
文件包含以下内容
apiVersion: v1
kind: Secret
metadata:
name: {{ template "codes-chart.fullname" . }}-postgresql
labels:
app: {{ template "codes-chart.name" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
data:
SPRING_DATASOURCE_URL: {{ .Values.secrets.springDatasourceUrl | b64enc }}
SPRING_DATASOURCE_USERNAME: {{ .Values.secrets.springDatasourceUsername | b64enc}}
SPRING_DATASOURCE_PASSWORD: {{ .Values.secrets.springDatasourcePassword | b64enc}}
这会获取 values.yaml 文件中的值
secrets:
springDatasourceUrl: PLACEHOLDER
springDatasourceUsername: PLACEHOLDER
springDatasourcePassword: PLACEHOLDER
占位符在 helm 中使用环境中的变量覆盖被覆盖。
这些秘密envFrom:
在codes-deployment.yaml
envFrom:
- configMapRef:
name: {{ template "codes-chart.fullname" . }}-application
- secretRef:
name: {{ template "codes-chart.fullname" . }}-postgresql
我的helm文件结构如下:
|helm
|-codes
|--configmaps
|---manifest
|----manifest-codes-configmap.yaml
|--templates
|---application-deploy-job.yaml
|---application-manifest-configmap.yaml
|---application-register-job.yaml
|---application-unregister-job.yaml
|---codes-application-configmap.yaml
|---codes-deployment.yaml
|---codes-hpa.yaml
|---codes-ingress.yaml
|---codes-service.yaml
|---postgresql-secret.yaml
|--values.yaml
|--Chart.yaml
问题似乎出在SPRING_DATASOURCE_URL
:如果我使用 cloudsql db 的私有 ip,那么它说它不接受连接
如果我使用 jdbc url 格式:
前任:(jdbc:postgresql://google/<DATABASE_NAME>?cloudSqlInstance=<INSTANCE_CONNECTION_NAME>&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=<POSTGRESQL_USER_NAME>&password=<POSTGRESQL_USER_PASSWORD>)
然后我收到 403 身份验证错误。
我究竟做错了什么?
解决方案
403 禁止:
服务器理解请求,但拒绝执行。权限不足的已验证用户的 403。
403 表示无法提供资源。这可能是因为已知没有任何级别的身份验证是足够的,但也可能是因为用户已经通过身份验证并且没有权限。
让我添加一些例子:
https://www.baeldung.com/kubernetes-helm
https://medium.com/zoom-techblog/from-zero-to-kubernetes-4fd354423e6a
推荐阅读
- swift - Collectionview 没有隐藏在 NavigationBar 下
- docker - Docker Swarm,多个主机不在同一个本地网络中,但可通过 IP 访问
- rest - curl no URL specified 错误,即使正在指定 URL
- angular - ... 在对象数组之前的目的是什么
- python - 在 python 中更改字典并创建一个新字典
- c# - 3D 点和向量 - 为什么我没有 System.Windows.Media.Media3D,我应该使用它吗?
- python - 如何对已在函数中完成的变量进行更改会全局影响变量python
- python - 在 3d 空间中为 python numpy.ndarray 找到最近的邻居
- c# - 如何在程序生成的地牢中修复 AI 的寻路问题?
- c# - UWP 动画重置为 From 状态