我有家庭實驗室。
Window Host和Vmware workstation
1 Master Node
3 Worker Nodes
所有節點都安裝了 Windows 驅動器并可用 /external
我想運行 jenkins、nexus、nessus 等多種工具,并想在外部驅動器中使用持久卷,這樣即使我創建了新的 EKS 集群,卷也會永遠留在那里,我可以重用它們
所以我想知道什么是最好的使用它
- 我可以創建單個
hostPathPV 然后每個 pod 可以從中宣告 20GB - 或者我必須為每個吊艙創建 PV
hostPath,然后在 POD 中宣告它
那么 PV 和 PVC 是否存在 1:1 的關系?或者一個 PV 可以在 diff 檔案夾中有多個宣告?
- 此外,如果重新創建 CLuster 并從相同的 hostPath 創建 PV,我的資料會在那里嗎?
uj5u.com熱心網友回復:
您可以使用local音量代替hostPathSC/PVC/PC 進行試驗。首先,創建 StorageClass:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: shared
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
然后在每個節點上提供 PersistentVolume 可用,這是一個節點的示例:
apiVersion: v1
kind: PersistentVolume
metadata:
name: shared-pv-1
spec:
capacity:
storage: 20Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: shared
local:
path: <path to the shared folder>
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <your node name>
以及允許您在 pod 中安裝配置卷的宣告:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: shared-pv-1
spec:
storageClassName: shared
volumeMode: Filesystem
resources:
requests:
storage: 20Gi
accessModes:
- ReadWriteOnce
這是一個掛載卷并寫入的示例 pod:
apiVersion: v1
kind: Pod
metadata:
name: busybox-1
spec:
restartPolicy: Never
volumes:
- name: shared
persistentVolumeClaim:
claimName: shared-pv-1
containers:
- name: busybox-1
image: busybox
imagePullPolicy: IfNotPresent
volumeMounts:
- name: shared
mountPath: /data
command: ["ash","-c","while :; do echo \"$(date)\tmessage from busybox-1.\" >> /data/message.txt; sleep 1; done"]
For local volume, by default the data written will require manual cleanup and deletion. A positive side effect for you as you would like the content to persist. If you like go further to experiment CSI alike local volume, you can use this Local Persistence Volume Static Provisioner.
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/331133.html
標籤:Kubernetes Kubernetes-pod 持久卷
