如何解决使用 kube 客户端创建一个 hostPath 持久卷
我正在使用 go k8s kube 客户端。我正在尝试在我的集群中创建一个持久卷。我想使用 hostPath 类型。但是,我在 go 中找不到任何有关如何执行此操作的文档。我有以下代码
vl := v1.PersistentVolume{
Spec: v1.PersistentVolumeSpec{
//VolumeMode: v1.PersistentVolumeMode(),StorageClassName: "manual",AccessModes: []v1.PersistentVolumeAccessMode{
"ReadWriteMany",},Capacity: v1.ResourceList{
v1.ResourceName(v1.ResourceStorage): resource.MustParse("2Gi"),}
vl.Name = "golang-demo-storage"
如果我尝试按原样创建上述持久卷,则会收到一条错误消息,提示 PersistentVolume "golang-demo-storage" is invalid: spec: Required value: must specify a volume type
,这是有道理的,因为我必须定义类型
但是我找不到任何关于结构中实际定义主机路径的文档。
你有什么参考资料可以帮助我吗?
解决方法
所以我看错了字段。我必须查看的字段是 PersistentVolumeSource
处的 PersistentVolumeSpec
。这是对我有用的代码片段
ctx := context.TODO()
vl := v1.PersistentVolume{
TypeMeta: metav1.TypeMeta{Kind: "PersistentVolume"},ObjectMeta: metav1.ObjectMeta{
Name: name,},Spec: v1.PersistentVolumeSpec{
//VolumeMode: v1.PersistentVolumeMode(),StorageClassName: "manual",AccessModes: []v1.PersistentVolumeAccessMode{
"ReadWriteMany",Capacity: v1.ResourceList{
v1.ResourceName(v1.ResourceStorage): resource.MustParse("2Gi"),PersistentVolumeSource : v1.PersistentVolumeSource{
HostPath: &v1.HostPathVolumeSource{
Path: "/demo",}
_,e := clientset.CoreV1().PersistentVolumes().Create(ctx,&vl,metav1.CreateOptions{})
我必须定义一个 PersistentVolumeSource
字段,并且在它的初始化中我传递了我需要的主机路径配置
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。