如何执行脚本以在 Kubernetes 集群上部署的 postgres 中导入 csv 文件?
How to execute scripts to import csv files inside a postgres deployed on a Kubernetes cluster?
我正在尝试在我的 Kubernetes 集群上部署 Postgres,我已经成功地做到了这一点,但是我不知道如何导入 csv 格式的数据。我已经有了获取数据路径并在 postgres 本地实例中创建数据库的脚本,但是当我在 Kubernetes 集群上部署 postgres 时,这些脚本将无法工作,因为我在 pod 中看不到这些脚本。
我一直在寻找一种解决方案来从主机到 pod 内部执行脚本,或者我可以将脚本和数据的目录暴露给 postgres pod。
我找到了主机路径解决方案,但我不知道如何为部署定义多个卷。 (我正在使用 Rook 集群来配置卷)
也许是一种在 Rook 卷旁边定义主机路径卷的方法,这样我就可以访问主机路径内的脚本和 csv 文件,然后在 Rook 卷内创建数据库。
我不知道这是否有意义,但如果有人帮助我,我将不胜感激。
如果您使用 official docker image, or an image that is derived from it but didn't destroy its entrypoint, then they have documentation about /docker-entrypoint-initdb.d/*.sql
,tl;dr 为
kind: ConfigMap
spec:
import_csv.sql: |
COPY my_table FROM '/whatever/path/you/want.csv' FORMAT csv /* etc */
---
kind: Pod
spec:
containers:
- volumeMounts:
- name: my-initdb-configmap
mountPath: /docker-entrypoint-initdb.d
readOnly: true
# ...
类型交易
我正在尝试在我的 Kubernetes 集群上部署 Postgres,我已经成功地做到了这一点,但是我不知道如何导入 csv 格式的数据。我已经有了获取数据路径并在 postgres 本地实例中创建数据库的脚本,但是当我在 Kubernetes 集群上部署 postgres 时,这些脚本将无法工作,因为我在 pod 中看不到这些脚本。
我一直在寻找一种解决方案来从主机到 pod 内部执行脚本,或者我可以将脚本和数据的目录暴露给 postgres pod。 我找到了主机路径解决方案,但我不知道如何为部署定义多个卷。 (我正在使用 Rook 集群来配置卷) 也许是一种在 Rook 卷旁边定义主机路径卷的方法,这样我就可以访问主机路径内的脚本和 csv 文件,然后在 Rook 卷内创建数据库。 我不知道这是否有意义,但如果有人帮助我,我将不胜感激。
如果您使用 official docker image, or an image that is derived from it but didn't destroy its entrypoint, then they have documentation about /docker-entrypoint-initdb.d/*.sql
,tl;dr 为
kind: ConfigMap
spec:
import_csv.sql: |
COPY my_table FROM '/whatever/path/you/want.csv' FORMAT csv /* etc */
---
kind: Pod
spec:
containers:
- volumeMounts:
- name: my-initdb-configmap
mountPath: /docker-entrypoint-initdb.d
readOnly: true
# ...
类型交易