如何在不使用持久卷(PV)的情况下在openshift中部署hashicorp保管库?
在openshift集群中,以普通用户(而非集群管理员)的身份,需要部署Vault服务器。我遵循了URL,但是它在vault.yaml文件中具有持久卷(/ vault / file),这需要我的帐户具有创建持久性容器的权限,但是我没有足够的权限来保护我的帐户。所以我删除了vault-config.json中的pv安装路径,如下所示,但我看到了以下错误。
{"backend":
{"file":
{"path": "/tmp/file"}
},
...
...
}
是否有可能在没有PV的情况下创建Vault服务器,例如以本地用户身份使用本地文件路径(/ tmp / file)作为后端存储?
在没有PV的情况下在openshift中部署Vault的替代方法是什么,以部署hashicorp Vault?
下面是使用pv运行时的错误,
--> Scaling vault-1 to 1
--> FailedCreate: vault-1 Error creating: pods "vault-1-" is forbidden: unable to validate against any security context constraint: [spec.containers[0].securityContext.privileged: Invalid value: true: Privileged containers are not allowed]
error: update acceptor rejected vault-1: pods for rc 'dev-poc-environment/vault-1' took longer than 600 seconds to become available
如何在不使用的情况下在openshift中部署hashicorp库持久卷(PV)?
您可以使用[[内存中的后端存储]],如here所述。因此,您的vault config看起来像这样:$cat config.hcl
disable_mlock = true
storage "inmem" {}
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = 0
tls_cert_file = "/etc/service/vault-server/vault-server.crt"
tls_key_file = "/etc/service/vault-server/vault-server.key"
}
ui = true
max_lease_ttl = "7200h"
default_lease_ttl = "7200h"
api_addr = "http://127.0.0.1:8200"
但是,此。数据/秘密不是持久的
另一种方法是将文件路径添加到存储中
,以便将所有加密的机密存储在所提到的路径中。所以现在您的配置更改为storage "file" {
path = "ANY-PATH"
}
这里要指出的要点:
此模型有什么问题? 容器重新启动时,所有数据将丢失,因为容器不存储数据。
无高可用性–文件系统后端不支持高可用性可用性。?使数据高度可用的任何事情,这可以通过使用dedicated backend storage使用数据库来实现。]为简单起见,让我们将PostgreSQL作为后端存储。那么
什么是理想的解决方案
storage "postgresql" {
connection_url = "postgres://user123:secret123!@localhost:5432/vault"
}
所以现在配置看起来像这样:,使用提供的模板创建postgresSQL容器,并使用上述config.hcl中解释的服务名称将其指向保管库。>希望这会有所帮助!
$ cat config.hcl disable_mlock = true storage "postgresql" { connection_url = "postgres://vault:vault@vault-postgresql:5432/postgres?sslmode=disable" } listener "tcp" { address = "0.0.0.0:8200" tls_disable = 0 tls_cert_file = "/etc/service/vault-server/vault-server.crt" tls_key_file = "/etc/service/vault-server/vault-server.key" } ui = true max_lease_ttl = "7200h" default_lease_ttl = "7200h" api_addr = "http://127.0.0.1:8200"
因此选择。特别是后端存储可帮助您持久保存数据,即使容器重新启动
正在openshift中寻找解决方案