何らかの理由で、デプロイメントをプッシュすると、ポッドでエラーが発生します。
ポッドにはバインドされていない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
定義する必要があります永続ボリューム消費されるディスクスペースを提供する永続ボリュームクレーム。
storageClass
Kubernetesを使用すると、「ダイナミックボリュームプロビジョニング」ローカル ファイル システムでは動作しません。
問題を解決するには:
- を提供する永続ボリュームクレームの制約を満たす(サイズ >= 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
ボリュームのコンテンツとしてローカル ディレクトリをマップするボリュームを選択しました。容量により、リソース スケジューラは、リソースのニーズに応じてこのボリュームを適用可能なものとして認識できます。