Folosesc furnizorul local Rancher și am o cerință pentru a crea stocare locală pe toate nodurile. Folosesc local-path-storage.yaml pentru a furniza controlerul, clasa de stocare etc.
Eu creez un PVC ca mai jos
apiVersion: v1
fel: PersistentVolumeClaim
metadate:
nume: local-path-pvc
specificație:
Moduri de acces:
- ReadWriteOnce
volumMod: Sistem de fișiere
resurse:
cereri:
stocare: 2Gi
storageClassName: cale locală
Văd că PV de mai jos este creat automat:
apiVersion: v1
articole:
- apiVersion: v1
fel: PersistentVolume
metadate:
adnotari:
pv.kubernetes.io/provisioned-by: rancher.io/local-path
CreationTimestamp: "2022-05-01T19:00:08Z"
finalizatoare:
- kubernetes.io/pv-protection
nume: pvc-8b96804e-06f7-4e5c-a7e5-ace8564fe053
resourceVersion: "1958451"
uid: b9cbd171-146b-4963-934b-b5815d522a5f
specificație:
Moduri de acces:
- ReadWriteOnce
capacitate:
stocare: 2Gi
revendicareRef:
apiVersion: v1
fel: PersistentVolumeClaim
nume: local-path-control-pvc
namespace: my-system
resourceVersion: "1958366"
uid: 8b96804e-06f7-4e5c-a7e5-ace8564fe053
hostPath:
cale: /opt/data/pvc-8b96804e-06f7-4e5c-a7e5-ace8564fe053_my-system_local-path-control-pvc
tip: DirectoryOrCreate
nodeAffinity:
necesar:
nodeSelectorTerms:
- matchExpressions:
- cheie: kubernetes.io/hostname
operator: In
valori:
- master0
persistentVolumeReclaimPolicy: Ștergeți
storageClassName: cale locală
volumMod: Sistem de fișiere
stare:
faza: Legat
PVC-ul este asociat cu 2 seturi diferite de demoni. Unul care implementează un pod pe master și celălalt care se implementează pe toate nodurile de lucru. Referința ar fi transmisă după cum urmează
specificație:
containere:
volume:
-nume: test
persistentVolumeClaim:
claimName: local-path-pvc
Întrebarea este cu cele de mai sus, PV este creat automat și nodeAffinity se asociază doar cu master. Dacă elimin referința PVC din implementarea Master, atunci doar unul dintre lucrători primește un PV și nu toți lucrătorii.
Cum mă asigur că toate nodurile primesc un PV local când podurile apar pe ele?
Mulțumiri,
/M