我正在尝试从其他Pod访问已部署的Postgresql Pod。
内部pod1正在运行一个简单的Postgresql容器。另一方面,我在pod2中运行一个保管库容器。
我正在尝试配置Vault以添加数据库引擎:
vault write database/config/my-postgresql-database \
plugin_name=postgresql-database-plugin \
allowed_roles="my-role" \
connection_url="postgresql://{{username}}@postgresql:5432/" \
username="postgres"
但是,我遇到此错误:
Error writing data to database/config/my-postgresql-database: Error making API request.
URL: PUT https://vault.ra-sec.svc/v1/database/config/my-postgresql-database
Code: 400. Errors:
* error creating database object: error verifying connection: pq: SSL is not enabled on the server
似乎存在与连接有关的问题。
您能提供一些解决方案吗?
答案 0 :(得分:0)
这就是我在openshift环境中使用PostgreSQL DB设置保管库的方式。
为保险柜配置config.hcl
定义Vault服务器的配置文件。
#config.hcl
disable_mlock = true
storage "postgresql" {
connection_url = "postgres://vault:vault@postgresql:5432/postgres?sslmode=disable"
}
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = 1
}
其中 postgresql是为PostgreSQL DB配置的服务名称
启动脚本
通过将以下命令配置为启动脚本的一部分来运行服务器。
vault server -config=/etc/service/vault-server/config.hcl
设置PostgreSQL数据库
您可以使用Openshift提供的 PostgreSQL永久模板(希望您使用相同的模板)。在postgreSQL POD /容器中执行以下命令,以允许从保管库进行连接。
CREATE TABLE vault_kv_store (
parent_path TEXT COLLATE "C" NOT NULL,
path TEXT COLLATE "C",
key TEXT COLLATE "C",
value BYTEA,
CONSTRAINT pkey PRIMARY KEY (path, key)
);
CREATE INDEX parent_path_idx ON vault_kv_store (parent_path);
为保管库设置数据库:https://www.vaultproject.io/docs/configuration/storage/postgresql.html
此操作后,请确保为PostgreSQL创建服务,以便同一命名空间中的其他POD可以使用Openshift服务名称来发现它们。
希望这会有所帮助!缺少的一切都让我知道。