Openshift:广告连播之间的可见性

时间:2018-07-12 15:38:40

标签: kubernetes openshift

我正在尝试从其他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

似乎存在与连接有关的问题。

您能提供一些解决方案吗?

1 个答案:

答案 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服务名称来发现它们。

希望这会有所帮助!缺少的一切都让我知道。