[解決済み] WaitForFirstConsumer PersistentVolumeClaim バインドする前に最初のコンシューマが作成されるのを待つ。
2022-02-04 09:20:44
質問
汚染された単一ノードに新しいk8sをセットアップしました。しかし
PersistentVolume
を作成しようとすると、うまく作成できません。
詳細は以下の通りです。
は
StorageClass
は公式ページからのコピーです。
https://kubernetes.io/docs/concepts/storage/storage-classes/#local
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
は
StatefulSet
があります。
kind: StatefulSet
apiVersion: apps/v1beta1
metadata:
name: postgres
spec:
serviceName: postgres
replicas: 1
...
volumeClaimTemplates:
- metadata:
name: postgres-data
spec:
storageClassName: local-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
ランニングについて
StorageClass
:
$ kubectl describe storageclasses.storage.k8s.io
Name: local-storage
IsDefaultClass: No
Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{},"name":"local-storage"},"provisioner":"kubernetes.io/no-provisioner","volumeBindingMode":"WaitForFirstConsumer"}
Provisioner: kubernetes.io/no-provisioner
Parameters: <none>
AllowVolumeExpansion: <unset>
MountOptions: <none>
ReclaimPolicy: Delete
VolumeBindingMode: WaitForFirstConsumer
Events: <none>
ランニングについて
PersistentVolumeClaim
:
$ kubectl describe pvc
Name: postgres-data-postgres-0
Namespace: default
StorageClass: local-storage
Status: Pending
Volume:
Labels: app=postgres
Annotations: <none>
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Filesystem
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal WaitForFirstConsumer <invalid> (x2 over <invalid>) persistentvolume-controller waiting for first consumer to be created before binding
K8sのバージョン。
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.4", GitCommit:"c27b913fddd1a6c480c229191a087698aa92f0b1", GitTreeState:"clean", BuildDate:"2019-02-28T13:37:52Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.1", GitCommit:"eec55b9ba98609a46fee712359c7b5b365bdd920", GitTreeState:"clean", BuildDate:"2018-12-13T10:31:33Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"linux/amd64"}
解決方法は?
アプリがPodを待っている間に、Podが
PersistentVolume
によって
PersistentVolumeClaim
.
しかし
PersistentVolume
を使用する前に、ユーザーが準備する必要があります。
私の以前のYAMLには
PersistentVolume
のようにします。
kind: PersistentVolume
apiVersion: v1
metadata:
name: postgres-data
labels:
type: local
spec:
storageClassName: local-storage
capacity:
storage: 1Gi
local:
path: /data/postgres
persistentVolumeReclaimPolicy: Retain
accessModes:
- ReadWriteOnce
storageClassName: local-storage
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: app
operator: In
values:
- postgres
ローカルパス
/data/postgres
を使用する前に準備する必要があります。
Kubernetesは自動で作成しません。
関連
-
[解決済み] kubectlで現在のコンテキストのconfigの詳細を表示するにはどうすればよいですか?
-
[解決済み] Nginx Ingress: サービス "ingress-nginx-controller-admission" が見つかりません。
-
Kubernetesジョブコントローラーのソースコード解析
-
kubernate が nginx-ingress-controller をデプロイし、ingress ポリシーを定義する。
-
[解決済み] PodがTerminatingステータスで立ち往生している
-
[解決済み] Kubernetes: すべてのポッドとそのノードをリストアップする
-
[解決済み] ヘッドレスサービスとは何か、何をするのか、何を達成するのか、そしてその正当な使用例とは何か?
-
[解決済み】ポッドとデプロイの違いは何ですか?
-
[解決済み] kubernetes dashboardにサインインする方法を教えてください。
-
[解決済み] 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の理解
-
Minikubeを使ったwindows10へのkubernetesのインストール
-
Kubernetesジョブコントローラーのソースコード解析
-
[解決済み] kubernetesのデプロイメントで失敗したPodを再起動する方法
-
[解決済み] ヘッドレスサービスとは何か、何をするのか、何を達成するのか、そしてその正当な使用例とは何か?
-
[解決済み] イングレスとロードバランサーの比較
-
[解決済み】"ImagePullBackOff "をデバッグするにはどうしたらいいですか?
-
[解決済み] 別のネームスペースにあるサービス
-
[解決済み] Kubernetes上でファイルから生成されたシークレットを更新するにはどうすればよいですか?