我正在尝试使用 Ansible 在 Kubernetes 集群服务器 (K3S) 上安装 Unifi,但在尝试定义持久卷声明时遇到了麻烦。
我正在使用Kubernetes.Core 模块,我将我的任务定义为:
- name: Define storage space for Unifi
kubernetes.core.k8s:
state: present
definition:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: unifi-cluster-pvc
namespace: default
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 100Mi
但是,当我运行我的剧本时,我收到以下错误:
TASK [unifi : Define storage space for Unifi]
***********************************************************************
fatal: [central.example.com]: FAILED! => {"changed": false, "msg":
"Failed to create object: b'{\"kind\":\"Status\",\"apiVersion\":\"v1\",
\"metadata\":{},\"status\":\"Failure\",\"message\":\"PersistentVolumeClaim
\\\\\"unifi-cluster-pvc\\\\\" is invalid: spec.resources[storage]: Required
value\",\"reason\":\"Invalid\",\"details\":{\"name\":\"unifi-cluster-pvc\",
\"kind\":\"PersistentVolumeClaim\",\"causes\":[{\"reason\":\"FieldValueRequired\",
\"message\":\"Required value\",\"field\":\"spec.resources[storage]\"}]},\"code\":422}\\n'",
"reason": "Unprocessable Entity"}
有谁可以解释发生了什么事吗?
因为如果我创建一个名为test.yml
以下内容的 yaml 文件:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: unifi-cluster-pvc
namespace: default
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 100Mi
并运行命令:kubectl apply -f test.yml
在我的控制器上
然后我收到回消息:
persistentvolumeclaim/unifi-cluster-pvc created
该错误表明
resource
需要该块来创建 PVC。似乎您错过了pvc定义文件在块中的缩进,因为它是. 您可以按如下所述更新任务
resources
resources
spec
有关 pvc 定义的更多详细信息,请查看有关持久卷声明的 Kubernetes 官方文档。