如何解决使用动态创建的pvc的deploymentRes
我正在尝试使用client-go在群集上创建pod和其他资源。
据我了解,使用client-go在群集上创建内容的最佳方法是使用动态创建版本(在示例中,有一个dynamic-create-update-delete示例)。因为我可以将yaml放入非结构化。非结构化然后创建资源。
当我使用kind: Deployment
创建广告连播时,这对我来说工作正常,但是当我尝试使用kind: PersistentVolumeClaim
创建广告连播时,出现错误:
恐慌:版本“ v1”中的PersistentVolumeClaim不能作为部署处理:将(v1.PersistentVolumeClaim).v1.PersistentVolumeClaimSpec转换为(apps.Deployment).apps.DeploymentSpec:副本不在src中
如果我正确理解错误,则发生这种情况是因为我用resource: "deployments"
声明了DeploymentRes
deploymentRes := schema.GroupVersionResource{Group: "apps",Version: "v1",Resource: "deployments"}
然后使用以下内容创建:
client.Resource(deploymentRes).Namespace(namespace).Create(context.TODO(),deployment,metav1.CreateOptions{})
这里的问题是,当我要创建pvc时,找不到Resource: "deployments"
而不是放置什么。我尝试放入persistentvolumeclaim
,但得到了错误提示:
“紧急:服务器找不到请求的资源”
如果您知道有什么可以帮助您的信息,或者将我带入正确的方向,将非常有帮助!
谢谢!
解决方法
这里的问题是,当我想创建 pvc 时,我找不到要放置什么来代替 Resource: "deployments"
你的假设是正确的。你只漏掉了两点:
-
Group
参数应为""
(空字符串) -
Resource
参数应为"persistentvolumeclaims"
(复数形式)
pvcRes := schema.GroupVersionResource{Group: "",Version: "v1",Resource: "persistentvolumeclaims"}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。