ポッドにはバインドされていないPersistentVolumeClaimsがあります質問する

ポッドにはバインドされていないPersistentVolumeClaimsがあります質問する

何らかの理由で、デプロイメントをプッシュすると、ポッドでエラーが発生します。

ポッドにはバインドされていないPersistentVolumeClaimsがあります

以下は私の YAML です:

これはクラウド ソリューションではなく、ローカルで実行されます。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.16.0 ()
  creationTimestamp: null
  labels:
    io.kompose.service: ckan
  name: ckan
spec:
  replicas: 1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: ckan
    spec:
      containers:
        image: slckan/docker_ckan
        name: ckan
        ports:
        - containerPort: 5000
        resources: {}
        volumeMounts:
            - name: ckan-home
              mountPath: /usr/lib/ckan/
              subPath: ckan
      volumes:
      - name: ckan-home
        persistentVolumeClaim:
          claimName: ckan-pv-home-claim
      restartPolicy: Always
status: {}

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: ckan-pv-home-claim
  labels:
    io.kompose.service: ckan
spec:
  storageClassName: ckan-home-sc
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 100Mi
  volumeMode: Filesystem
---
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: ckan-home-sc
provisioner: kubernetes.io/no-provisioner
mountOptions:
  - dir_mode=0755
  - file_mode=0755
  - uid=1000
  - gid=1000

ベストアンサー1

定義する必要があります永続ボリューム消費されるディスクスペースを提供する永続ボリュームクレーム

storageClassKubernetesを使用すると、「ダイナミックボリュームプロビジョニング」ローカル ファイル システムでは動作しません。


問題を解決するには:

  • を提供する永続ボリュームクレームの制約を満たす(サイズ >= 100Mi)
  • storageClassから削除永続ボリュームクレームまたは空の値("")を指定します
  • 削除するストレージクラスクラスターから

これらのピースはどのように一緒に演奏されるのでしょうか?

デプロイメント状態記述の作成時に、アプリケーションに必要なストレージの種類 (量、速度など) がわかっているのが一般的です。
デプロイメントを多目的にするには、ストレージへの強い依存を避ける必要があります。Kubernetes のボリューム抽象化により、標準化された方法でストレージを提供および使用できます。

永続ボリュームクレームアプリケーションのデプロイメントと同時にストレージ制約を提供するために使用されます。

永続ボリュームクラスタ全体のボリュームインスタンスをすぐに使用できるように提供します(「bound」)。1つのPersistentVolumeは1つしかし、そのクレームの複数のインスタンスが複数のノードで実行される可能性があるため、そのボリュームはアクセスした複数のノードによって。

StorageClass なしの PersistentVolumeとみなされる静的

「ダイナミックボリュームプロビジョニング」並んで1つのストレージクラスクラスタがオンデマンドでPersistentVolumeをプロビジョニングできるようにします。これを機能させるには、指定されたストレージプロバイダがサポートしている必要があります。プロビジョニング- これにより、クラスターは「新しい」プロビジョニングを要求できます。永続ボリューム不満があるとき永続ボリュームクレーム浮き出る。


PersistentVolumeの例

物事をどのように指定するかを知るには、Kubernetesバージョン用のAPIなので、次の例はK8S 1.17 の API リファレンス:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: ckan-pv-home
  labels:
    type: local
spec:
  capacity:
    storage: 100Mi
  hostPath:
    path: "/mnt/data/ckan"

永続ボリューム仕様複数の属性を定義できます。hostPathボリュームのコンテンツとしてローカル ディレクトリをマップするボリュームを選択しました。容量により、リソース スケジューラは、リソースのニーズに応じてこのボリュームを適用可能なものとして認識できます。


追加リソース:

おすすめ記事