[解決済み] ポッドにバインドされていないPersistentVolumeClaimsがある
質問
デプロイメントをプッシュすると、なぜかポッドにエラーが発生します。
pod has unbound 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
解決方法は?
を定義する必要があります。 永続的なボリューム によって消費されるディスク領域を提供します。 持続的ボリューム要求 .
を使用する場合
storageClass
Kubernetesが有効にするのは
Dynamic Volume Provisioning"
ローカルファイルシステムで動作していない
あなたの問題を解決するために。
- を提供する。 PersistentVolume 請求項の制約を満たすこと(サイズ >= 100Mi)
-
を削除します。
storageClass
から PersistentVolumeClaim を指定するか、空の値を指定します (""
) - を削除します。 StorageClass をクラスタから削除します。
これらの部品はどのように組み合わされるのですか?
デプロイメント状態記述の作成時に、通常、アプリケーションに必要なストレージの種類(量、速度など)が分かっています。
デプロイメントを汎用的にするためには、ストレージへのハードな依存を避けたいものです。Kubernetesのボリューム抽象化により、標準化された方法でストレージを提供および消費することができます。
その 永続的なボリュームクレイム は、アプリケーションのデプロイメントと同時にストレージの制約を提供するために使用されます。
その
永続的なボリューム
は、すぐに消費できるクラスタ全体のボリュームインスタンスを提供します("
bound
となります。) 1つのPersistentVolumeは、以下のようにバインドされます。
一
クレームがあります。しかし、そのクレームの複数のインスタンスが複数のノードで実行される可能性があるため、そのボリュームは
アクセス
を複数のノードで使用することができます。
A StorageClassを使用しないPersistentVolume は、次のように見なされます。 静的 .
Dynamic Volume Provisioning"。 並べて と a StorageClass を使用すると、クラスタがオンデマンドでPersistentVolumeをプロビジョニングできるようになります。 この機能を実現するためには、指定されたストレージ・プロバイダが プロビジョニング - これにより、クラスタが "new".のプロビジョニングを要求することができるようになります。 永続的なボリューム を満たさない場合 PersistentVolumeClaim が飛び出す。
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"
は
PersistentVolumeSpec
では、複数の属性を定義することができます。
私が選んだのは
hostPath
ボリュームのコンテンツとしてローカルディレクトリをマップします。この容量によって、リソーススケジューラーは、リソースの必要性という観点から、このボリュームが適用可能であると認識することができます。
追加リソース
関連
-
[解決済み] kubernetes UnexpectedAdmissionError ロールアウト後。
-
[解決済み] Istio Ingressで "no healthy upstream "が発生する。
-
kubenetes: ポッドにバインドされていないPersistentVolumeClaimsがあります。
-
Kubernetesジョブコントローラーのソースコード解析
-
[解決済み] kubernetesのdeployment yamlを変更せずにPodをローリング再起動する方法は?
-
[解決済み] Pod内のコンテナを再起動する
-
[解決済み] KubernetesのClusterIP、NodePort、LoadBalancerのサービスタイプの違いとは?
-
[解決済み] イングレスとロードバランサーの比較
-
[解決済み] Kubernetesでconfigmapが更新されたらPodを再起動する?
-
[解決済み] Kubernetes上でファイルから生成されたシークレットを更新するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ポッドにバインドされていないPersistentVolumeClaimsがある
-
[解決済み] KubernetesのジョブにおけるbackoffLimitの理解
-
[解決済み] Nginx Ingress: サービス "ingress-nginx-controller-admission" が見つかりません。
-
kubernate が nginx-ingress-controller をデプロイし、ingress ポリシーを定義する。
-
[解決済み] kubeadm init は kubelet が実行中または健全でないことを表示します。
-
[解決済み] kubernetesのdeployment yamlを変更せずにPodをローリング再起動する方法は?
-
[解決済み] kubernetesで名前空間を切り替える方法
-
[解決済み] KubernetesのClusterIP、NodePort、LoadBalancerのサービスタイプの違いとは?
-
[解決済み] Kubernetes API - 特定のノード上のPodを取得する
-
[解決済み】kubectl apply vs kubectl create?