2017-11-27 16 views
0

Kubernetes에서 StatefulSet으로 Vault를 실행하려고합니다.Kubernetes의 StatefulSet으로 Hashicorp Vault

나는이에 작업 영사 클러스터를 기반으로 한 : https://github.com/kelseyhightower/consul-on-kubernetes

내 STS는 볼트에 대한 파일은 다음과 같습니다

내 설정 파일이

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

때 보이는

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 

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의 수신기를 추가하려고했습니다. 내가 비활성화 할 때까지 TLS 경고를 받고 있었기 때문에 포드는 설정 파일을 읽었습니다.

포드의 로컬 호스트에 바인딩되는 것에 대한 아이디어가 있습니까? 모든 문제 해결 도움말이 문제는 부두 노동자 컨테이너했다

+0

를 배우는 것이있다, 이것은 생산 준비 예가 아니다 유의하시기 바랍니다 -p 8200 : 8200 -p 8201 : 8201 금고 : 0.9.0 서버 -config = /와/그렇게/로컬', 당신이 기대하는대로 시작합니까? –

+0

그리고 모든 포드에 오류가 있습니까? 그리고 항상 또는 간헐적으로? –

+0

또한 컨테이너가'IPC_LOCK'을 명시 적으로 부여 받았을 때'disable_mlock "을 가지고 약간 이상합니다. (단, 바인드 질문과 관련해서는 아무 것도 없습니다.) –

답변

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 모드를 제거하고 서버 모드를 사용합니다. 당신은`고정 표시기 실행을 실행하면

단지