【发布时间】:2021-06-15 17:52:33
【问题描述】:
我正在尝试在 jenkins 命名空间下的 kubernetes 集群上安装 jenkins。当我部署我的 pv 和 pvc 时,pv 仍然可用并且没有绑定到我的 pvc。
这是我的 yamls:
apiVersion: v1
kind: PersistentVolume
metadata:
name: jenkins
labels:
type: jenkins
spec:
storageClassName: standard
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jenkins-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
下面是我的手动存储类。标准类没有改变,应该和kubernetes上的默认标准一样。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{},"name":"manual"},"provisioner":"kubernetes.io/no-provisioner","volumeBindingMode":"WaitForFirstConsumer"}
creationTimestamp: "2021-06-14T14:41:39Z"
name: manual
resourceVersion: "3643100822"
uid: 8254d900-58e5-49e1-a07e-1830096aac87
provisioner: kubernetes.io/no-provisioner
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
【问题讨论】:
-
我看到
storageClassNames 两者都不同.. 这可能是原因吗? -
不幸的是没有。只是尝试将两者都作为手动,然后都作为标准。
-
您还可以添加存储类的规范吗?可能是他们动态地提供存储意味着在内部创建 PVC 会创建一个 PV,因此手动创建的 PV 保持不受约束?您可以运行
kubectl get pv以查看在创建 PVC 时是否创建了任何额外的 PV。 -
已添加规范,我在尝试解决问题时添加了此手册规范
-
我认为问题在于
volumeBindingMode被设置为WaitForFirstConsumer这意味着 PV 将保持未绑定,直到有一个 pod 来使用它。您可以更改它Immediate以立即绑定它,而无需 pod。WaitForFirstConsumer有助于在动态配置的情况下节省资源。您可以阅读docs 了解详细信息。让我知道这是否能解决问题。
标签: jenkins kubernetes