2017-11-27 4 views
0

KubernetesでStatefulSetとしてVaultを実行しようとしています。KubernetesのStatefulSetとしてのHashicorp Vault

私はこれに基づいて作業領事クラスタを持っている: https://github.com/kelseyhightower/consul-on-kubernetes

私のSTSは、Vaultのファイルには、次のようになります。

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" 
     } 
    } 
} 

のように見えますステートフルセットを適用すると、バインドエラーが発生する

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のリスナを別のポートで追加しようとしました。ポッドは、私が無効にするまでTLSの警告を受け取っていたので、設定ファイルを読み込んでいます。

ポッドのローカルホストにバインドされているものについてのアイデアはありますか?任意のトラブルシューティングのヘルプは問題がドッカーコンテナた

+0

を学ぶことがあり、これは生産準備の例ではありませんのでご注意ください-p 8200:8200 -p 8201:8201ボールト:0.9.0サーバー-config = /と/それはあなたの期待通りに始まりますか? –

+0

あなたはすべてのポッドにそのエラーを表示しますか?すべての時間、または断続的に? –

+0

また、 '' disable_mockock ''を持つのはちょっと変わっています:本当に、 '' IPC_LOCK'が明示的に与えられているときはtrueですが、バインドに関する質問とは何の関係もありません) –

答えて

3

をいただければ幸い私は追加https://github.com/hashicorp/docker-vault/blob/master/0.X/Dockerfile#L69

# By default you'll get a single-node development server that stores everything 
# in RAM and bootstraps itself. Don't use this configuration for production. 
CMD ["server", "-dev"] 

から

は/

にstatefulSetのYAMLにcmdと引数の行を変更DEVモードでボールトを開始します
command: ["vault", "server"] 
args: 
    - "-config=/vault/config/vault-server.json" 

これはdevモードを削除し、サーバーモードを使用します。あなたは `ドッキングウィンドウの実行を実行する場合

だけ

関連する問題