kubernetesでstatefulsetを使用してpvcを設定する方法は?

iooi

GKEで、statefulsetリソースを次のように設定しました

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: redis
spec:
  serviceName: "redis"
  selector:
    matchLabels:
      app: redis
  updateStrategy:
    type: RollingUpdate
  replicas: 3
  template:
    metadata:
      labels:
        app: redis
    spec:
      containers:
      - name: redis
        image: redis
        resources:
          limits:
            memory: 2Gi
        ports:
          - containerPort: 6379
        volumeMounts:
          - name: redis-data
            mountPath: /usr/share/redis
      volumes:
        - name: redis-data
          persistentVolumeClaim:
            claimName: redis-data-pvc

塩ビを使いたいのでこれを作りました。(この手順は、ステートフルセットの展開前に実行されました)

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: redis-data-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

kubernetesのリソースを確認するとき

kubectl get pvc
NAME             STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
redis-data-pvc   Bound    pvc-6163d1f8-fb3d-44ac-a91f-edef1452b3b9   10Gi       RWO            standard       132m

デフォルトのストレージクラスはstandardです。

kubectl get storageclass
NAME                 PROVISIONER
standard (default)   kubernetes.io/gce-pd

ただし、statafulsetの展開ステータスを確認する場合。それはいつも間違っています。

# Describe its pod details
...
Events:
  Type     Reason                  Age                From                     Message
  ----     ------                  ----               ----                     -------
  Warning  FailedScheduling        22s                default-scheduler        persistentvolumeclaim "redis-data-pvc" not found
  Warning  FailedScheduling        17s (x2 over 20s)  default-scheduler        pod has unbound immediate PersistentVolumeClaims (repeated 2 times)
  Normal   Created                 2s (x2 over 3s)    kubelet                  Created container redis
  Normal   Started                 2s (x2 over 3s)    kubelet                  Started container redis
  Warning  BackOff                 0s (x2 over 1s)    kubelet                  Back-off restarting failed container

なぜredis-data-pvc名前が見つからないのですか?

ジョナス

あなたがしたことは、うまくいくはずです。PersistentVolumeClaimStatefulSetが同じ名前空間にあることを確認してください


そうは言っても、これはより簡単なソリューションであり、より多くのレプリカに簡単にスケールアップできます。

StatefulSetおよびPersistentVolumeClaimを使用する場合は、代わりにStatefulSetvolumeClaimTemplates:フィールドを使用してください

volumeClaimTemplates:各レプリカのためのユニークなPVCを作成するために使用される、と彼らは例えばで終わるユニークなネーミングを持つことになる-0数字ですStatefulSetでの複製に使用されます。

したがって、代わりに、次のようなSatefuleSetマニフェストを使用します。

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: redis
spec:
  serviceName: "redis"
  selector:
    matchLabels:
      app: redis
  updateStrategy:
    type: RollingUpdate
  replicas: 3
  template:
    metadata:
      labels:
        app: redis
    spec:
      containers:
      - name: redis
        image: redis
        resources:
          limits:
            memory: 2Gi
        ports:
          - containerPort: 6379
        volumeMounts:
          - name: redis-data
            mountPath: /usr/share/redis
  volumeClaimTemplates:                     // this will be used to create PVC
  - metadata:
      name: redis-data
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 10Gi

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

iOS迅速でxibを使用してUINavigationControllerをrootviewcontrollerとして設定する方法は?

分類Dev

Kubernetes RBACを使用してリソースをすべてに設定することは可能ですか?

分類Dev

formikでstateを使用してinitialValuesを設定する方法はありますか?

分類Dev

kubeadmを使用してkubernetesシングルノードクラスターで/ var / log / containerを設定する方法

分類Dev

traefik入力コントローラーを使用してkubernetesベアメタルでhttpsを設定する方法

分類Dev

nodejsでsequelizeを使用してモデル検証を設定する方法は?

分類Dev

AccessibilityServiceを使用して設定でボタンをクリックする方法は?

分類Dev

JAVAでTypeSafeを使用して設定からマップを解析する方法は?

分類Dev

React-nativeでPickerを使用してStateを設定する方法は?

分類Dev

DNSを使用してRancher + Kubernetesを設定するための最良のアプローチは何ですか

分類Dev

Kubernetes- Ingressを設定する方法は?

分類Dev

gulp-modernizrを使用して設定ファイルを設定する方法は?

分類Dev

設定設定を使用して通知を無効にする方法は?

分類Dev

Pythonを使用してMacOSでプロキシ設定を設定する方法

分類Dev

AKSでkubectlを使用してkube-proxy設定を設定する方法

分類Dev

PHPを使用してMongoQueryにlimit()を設定する方法は?

分類Dev

phpseclibを使用してcronジョブを設定する方法は?

分類Dev

ConstraintLayoutを使用してDimensionRatioにmaxHeightを設定する方法は?

分類Dev

Kotlinを使用してAndroidでsetSurfaceTextureListenerを設定する方法

分類Dev

Swiftを使用してXcodeで背景画像を設定する方法

分類Dev

JSONを使用してselect2でoptgroupを設定する方法

分類Dev

HTTPBuilderを使用してGroovyでGET-Responseを設定する方法

分類Dev

NumberFormatter()を使用してswift3でmaximumFractionDigitsを設定する方法

分類Dev

Chaliceを使用してAWSLambdaで「説明」を設定する方法

分類Dev

javascriptを使用してemojiabletextareaで値をnullに設定する方法

分類Dev

Cmakeを使用してLinuxでMKLを設定する方法

分類Dev

JAVAを使用してHTTPGETでutfを設定する方法

分類Dev

Swashbuckleを使用してSwaggerで操作名を設定する方法

分類Dev

SeleniumWebDriverでJavascriptExecuterを使用して属性値を設定する方法

Related 関連記事

  1. 1

    iOS迅速でxibを使用してUINavigationControllerをrootviewcontrollerとして設定する方法は?

  2. 2

    Kubernetes RBACを使用してリソースをすべてに設定することは可能ですか?

  3. 3

    formikでstateを使用してinitialValuesを設定する方法はありますか?

  4. 4

    kubeadmを使用してkubernetesシングルノードクラスターで/ var / log / containerを設定する方法

  5. 5

    traefik入力コントローラーを使用してkubernetesベアメタルでhttpsを設定する方法

  6. 6

    nodejsでsequelizeを使用してモデル検証を設定する方法は?

  7. 7

    AccessibilityServiceを使用して設定でボタンをクリックする方法は?

  8. 8

    JAVAでTypeSafeを使用して設定からマップを解析する方法は?

  9. 9

    React-nativeでPickerを使用してStateを設定する方法は?

  10. 10

    DNSを使用してRancher + Kubernetesを設定するための最良のアプローチは何ですか

  11. 11

    Kubernetes- Ingressを設定する方法は?

  12. 12

    gulp-modernizrを使用して設定ファイルを設定する方法は?

  13. 13

    設定設定を使用して通知を無効にする方法は?

  14. 14

    Pythonを使用してMacOSでプロキシ設定を設定する方法

  15. 15

    AKSでkubectlを使用してkube-proxy設定を設定する方法

  16. 16

    PHPを使用してMongoQueryにlimit()を設定する方法は?

  17. 17

    phpseclibを使用してcronジョブを設定する方法は?

  18. 18

    ConstraintLayoutを使用してDimensionRatioにmaxHeightを設定する方法は?

  19. 19

    Kotlinを使用してAndroidでsetSurfaceTextureListenerを設定する方法

  20. 20

    Swiftを使用してXcodeで背景画像を設定する方法

  21. 21

    JSONを使用してselect2でoptgroupを設定する方法

  22. 22

    HTTPBuilderを使用してGroovyでGET-Responseを設定する方法

  23. 23

    NumberFormatter()を使用してswift3でmaximumFractionDigitsを設定する方法

  24. 24

    Chaliceを使用してAWSLambdaで「説明」を設定する方法

  25. 25

    javascriptを使用してemojiabletextareaで値をnullに設定する方法

  26. 26

    Cmakeを使用してLinuxでMKLを設定する方法

  27. 27

    JAVAを使用してHTTPGETでutfを設定する方法

  28. 28

    Swashbuckleを使用してSwaggerで操作名を設定する方法

  29. 29

    SeleniumWebDriverでJavascriptExecuterを使用して属性値を設定する方法

ホットタグ

アーカイブ