我已经使用helm在k8s中部署了postgresql实例并使用values.yaml创建了一个数据库。现在如何创建表。
global:
postgresql:
auth:
# Added below credentials for testing
postgresPassword: "postgresqladmin"
username: "admin"
password: "admin"
database: "postgresqlDB"
containerPorts:
postgresql: 5432
image:
registry: docker.io
repository: bitnami/postgresql
tag: 15.4.0-debian-11-r10
digest: ""
pullPolicy: IfNotPresent
debug: false
这是安装命令:
helm upgrade --install postgresql -f values.yaml bitnami/postgresql
这是访问数据库的命令(我在安装后使用建议的命令)
kubectl run postgresql-client --rm --tty -i --restart='Never' --image bitnami/postgresql --env="admin" --command -- psql --host postgresql -U admin -d postgresqlDB -p 5432
您有两个选择。
1。访问容器
像这样挂载后,您可以访问您的数据库,然后执行您的sql脚本。
kubectl run -it --rm --image=bitnami/postgresql:15.4.0-debian-11-r10 --restart=从不 postgresql-client -- psql -h postgresql -U admin -d postgresqlDB
2。在您的部署中包含一个脚本:
您创建一个 SQL 脚本来创建表 myscript.sql :
CREATE TABLE my_table (
id serial PRIMARY KEY,
field VARCHAR(255)
);
创建一个 ConfigMap,一个包含以下内容的 YAML 文件(例如 configmap-create-my-table.yaml):
apiVersion: v1
kind: ConfigMap
metadata:
name: create-my-table-configmap
data:
create_table.sql: |
-- create_table.sql
CREATE TABLE my_table (
id serial PRIMARY KEY,
field VARCHAR(255)
);
将此应用到您的集群
kubectl apply -f configmap-create-table.yaml
调整您的舵图:
postgresql:
extraVolumeMounts:
- name: create-my-table-configmap
mountPath: /docker-entrypoint-initdb.d
readOnly: true
extraVolumes:
- name: create-my-table-configmap
configMap:
name: create-my-table-configmap
然后升级它:
helm upgrade --install postgresql -f values.yaml bitnami/postgresql
为了创建表,请尝试以下步骤;
首先你必须使用客户端连接到postgreSQL:
kubectl run -it --rm --image=bitnami/postgresql:15.4.0-debian-11-r10 --namespace=YOUR_NAMESPACE postgresql-client -- bash
现在连接到 postgreSQL 客户端 pod 内的数据库;
psql -h postgresql -U admin -d postgresqlDB
现在使用简单的 SQL 命令,您可以创建表;
CREATE TABLE my_table (
id serial PRIMARY KEY,
name VARCHAR (255),
age INT
);
成功创建表后,您可以使用以下命令退出 PostgreSQL 客户端: ostgreSQL
\q
希望它有效:)