Hashicorp Vault作为Kubernetes上的状态集
我正试着以库伯内特斯的身份管理保险库 我有一个基于此的工作领事集群: 我的Vault sts文件如下所示:Hashicorp Vault作为Kubernetes上的状态集,kubernetes,hashicorp-vault,Kubernetes,Hashicorp Vault,我正试着以库伯内特斯的身份管理保险库 我有一个基于此的工作领事集群: 我的Vault sts文件如下所示: kind: StatefulSet metadata: name: vault spec: serviceName: vault replicas: 2 template: metadata: labels: app: vault spec: affinity: podAntiAffinity:
kind: StatefulSet
metadata:
name: vault
spec:
serviceName: vault
replicas: 2
template:
metadata:
labels:
app: vault
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- vault
topologyKey: kubernetes.io/hostname
containers:
- name: vault
image: "vault:0.9.0"
ports:
- containerPort: 8200
name: http
- containerPort: 8201
name: backend
args:
- "server -config=/vault/config/vault-server.json"
securityContext:
capabilities:
add:
- IPC_LOCK
volumeMounts:
- name: config
mountPath: /vault/config
- name: tls
mountPath: /etc/tls
volumes:
- name: config
configMap:
name: vault
- name: tls
secret:
secretName: vault
我的配置文件如下所示
{
"disable_mlock": true,
"listener": [
{
"tcp": {
"tls_disable": true
}
}
],
"storage": {
"consul": {
"address": "consul.default.svc.cluster.local:8500",
"path": "vault",
"token": "7e21f292-e7e7-f879-210c-4af2ae483cac"
}
}
}
当我应用StatefulSet时,我得到一个绑定错误
Error initializing listener of type tcp: listen tcp 127.0.0.1:8200: bind: address already in use
我尝试添加一个具有127.0.0.1和0.0.0.0的侦听器,并使用不同的端口。pod正在读取配置文件,因为在禁用之前我一直收到TLS警告
关于pod上绑定到localhost的内容有什么想法吗?任何疑难解答帮助都将不胜感激问题在于Docker容器在开发模式下启动vault 从 我将statefulSet yaml中的cmd和参数行添加/更改为
command: ["vault", "server"]
args:
- "-config=/vault/config/vault-server.json"
这将摆脱开发模式,并使用服务器模式
请注意,这不是一个生产就绪的示例,它只是为了学习问题在于Docker容器在开发模式下启动vault 从 我将statefulSet yaml中的cmd和参数行添加/更改为
command: ["vault", "server"]
args:
- "-config=/vault/config/vault-server.json"
这将摆脱开发模式,并使用服务器模式
请注意,这不是一个可用于生产的示例,它只是用于学习您可以尝试此替换此:
args:
-“server-config=/vault/config/vault server.json”
将此添加到yaml文件
命令:[“vault”、“服务器”、“-config”、“/vault/config/config.json”]
您可以尝试此
替换此:
args:
-“server-config=/vault/config/vault server.json”
在yaml文件
中添加此命令:[“vault”、“服务器”、“-config”、“/vault/config/config.json”]
如果您在本地运行
docker run-p 8200:8200-p 8201:8201 vault:0.9.0服务器-config=/和/等等
,它会像您预期的那样启动吗?您会在所有POD上,还是只有一个POD上出现此错误?而且,无论是一直还是间歇性地,如果只使用Docker,那么让“disable\u mlock”(禁用锁)运行有点奇怪:是的,
当容器被显式地授予IPC\u锁时(但我怀疑这与您的绑定问题有任何关系),这是多余的,但我不认为这是问题所在如果你在本地运行docker run-p 8200:8200-p 8201:8201 vault:0.9.0 server-config=/和/等等
,它会像你预期的那样启动吗?你会在所有的pod上,还是只有一个pod上出现这个错误?而且,如果只使用Docker,那么当容器被显式地授予了IPC锁(但我怀疑这与你的绑定问题有任何关系)时,让“disable\u mlock”(禁用锁):是的,
)按预期运行会有点奇怪,两个pod的行为相同,这是多余的,但我不认为这是问题所在