我已经使用kubeadm在裸机上配置了kubernetes集群。一切正常,我可以部署一个示例nginx应用。当我想使用volumeClaimTemplates
部署状态集时出现问题,如下所示
volumeClaimTemplates:
- metadata:
name: jackrabbit-volume
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
storageClassName: jackrabbit
和存储类
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
meta.helm.sh/release-name: chart-1591185140
meta.helm.sh/release-namespace: gluu
storageclass.beta.kubernetes.io/is-default-class: "false"
labels:
app.kubernetes.io/managed-by: Helm
storage: jackrabbit
managedFields:
- apiVersion: storage.k8s.io/v1
mountOptions:
- debug
parameters:
fsType: ext4
pool: default
provisioner: kubernetes.io/no-provisioner
reclaimPolicy: Retain
我也尝试添加具有persistentVolume
规格的hostPath
,但仍然无法正常工作。
---- ------ ---- ---- -------
Warning ProvisioningFailed 82s (x3 over 98s) persistentvolume-controller no volume plugin matched
在StorageClass中,您正在使用kubernetes.io/no-provisioner
,这意味着您正在尝试使用本地卷插件。
您的群集还不知道kubernetes.io/no-provisioner
,这就是为什么显示no volume plugin matched
的原因。
根据documentation,此插件不作为内部配置程序包含在kubernetes.io
中。 Here您可以看到一个图表,其中列出了所有预配器,其插件名称(如果它们包含在内部预配器中)以及指向配置示例的链接。
在文档中,我们可以阅读:
您不限于指定“内部”供应商在此处列出(其名称以
kubernetes.io
开头并附带以及Kubernetes)。您还可以运行并指定外部供应商,它们是遵循specification由Kubernetes定义。外部供应商的作者已满他们的代码位于何处,供应者如何进行判断发货,需要如何运行,使用了什么体积的插件(包括Flex)等。存储库kubernetes-sigs/sig-storage-lib-external-provisioner设有一个库,用于编写实现规范的大部分。一些外部供应商在下面列出仓库kubernetes-incubator/external-storage。例如,NFS不提供内部预配器,但是可以使用外部预配器。在某些情况下,第三方存储供应商提供他们自己的外部供应商。
本地外部供应商已在this GitHub存储库中保留,您可以在Getting Started指南中找到如何使用它的指南。