Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hashicorp Vault作为Kubernetes上的状态集_Kubernetes_Hashicorp Vault - Fatal编程技术网

Hashicorp Vault作为Kubernetes上的状态集

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:

我正试着以库伯内特斯的身份管理保险库

我有一个基于此的工作领事集群:

我的Vault sts文件如下所示:

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的行为相同,这是多余的,但我不认为这是问题所在