2017-06-29 10 views
0

バージョン1.6.6を使用するGKEクラスタでKubernetesを実行し、1.6.4を持つ別のクラスタを実行しています。どちらもGCE計算ディスクのフェールオーバーに問題があります。ボリュームの取り付けに失敗しました

私は、コンテナ内のkill 1を使用して失敗をシミュレートしていたか、またはGCEノードを直接強制終了していました。時々私は幸運にも、同じノードでポッドが再び作成されることがあります。しかし、ほとんどの場合、これは当てはまりません。

イベントログを見ると、3回マウントしようとしてエラーが表示され、何も実行できません。人間の介入なしには、それは自己を決して矯正しません。私はそれが働くまで、ポッドを何度も殺さなければならない。保守の間、これは巨大な痛みです。

Kubernetesにボリュームを適切にフェールオーバーさせるにはどうすればよいですか?障害発生時に新しいノードを試すように展開するよう指示する方法はありますか? 3回の再試行制限を削除する方法はありますか?

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: dev-postgres 
    namespace: jolene 
spec: 
    revisionHistoryLimit: 0 
    template: 
    metadata: 
     labels: 
     app: dev-postgres 
     namespace: jolene 
    spec: 
     containers: 
     - image: postgres:9.6-alpine 
     imagePullPolicy: IfNotPresent 
     name: dev-postgres 
     volumeMounts: 
     - mountPath: /var/lib/postgresql/data 
      name: postgres-data 
     env: 
      [ ** Removed, irrelevant environment variables ** ] 
     ports: 
      - containerPort: 5432 
     livenessProbe: 
      exec: 
      command: 
      - sh 
      - -c 
      - exec pg_isready 
      initialDelaySeconds: 30 
      timeoutSeconds: 5 
      failureThreshold: 6 
     readinessProbe: 
      exec: 
      command: 
      - sh 
      - -c 
      - exec pg_isready --host $POD_IP 
      initialDelaySeconds: 5 
      timeoutSeconds: 3 
      periodSeconds: 5 
     volumes: 
     - name: postgres-data 
      persistentVolumeClaim: 
      claimName: dev-jolene-postgres 

私はこれをPersistentVolume/PersistentVolumeClaimの有無にかかわらず試しました。

apiVersion: "v1" 
kind: "PersistentVolume" 
metadata: 
    name: dev-jolene-postgres 
spec: 
    capacity: 
    storage: "1Gi" 
    accessModes: 
    - "ReadWriteOnce" 
    claimRef: 
    namespace: jolene 
    name: dev-jolene-postgres 
    gcePersistentDisk: 
    fsType: "ext4" 
    pdName: "dev-jolene-postgres" 

apiVersion: v1 
kind: PersistentVolumeClaim 
metadata: 
    name: dev-jolene-postgres 
    namespace: jolene 
spec: 
    accessModes: 
    - ReadWriteOnce 
    resources: 
    requests: 
     storage: 1Gi 

答えて

1

デフォルトでは、すべてのノードはスケジューリング可能です。したがって、展開時に明示的に言及する必要はありません。再試行の制限について言及できる機能はまだ進行中であり、ここで追跡することができます。https://github.com/kubernetes/kubernetes/issues/16652

関連する問題