gpt4 book ai didi

kubernetes 客户端运行错误 : an empty namespace may not be set during creation

转载 作者:行者123 更新时间:2023-12-02 12:03:39 58 4
gpt4 key购买 nike

使用 Kubernetes client-go 以编程方式创建 pod 给我以下错误:an empty namespace may not be set during creation
从这个例子开始:
https://github.com/feiskyer/go-examples/blob/master/kubernetes/pod-create/pod.go

#go

handler := clientset.CoreV1().Pods("").PodInterface

pod := apiv1.Pod{
TypeMeta: metav1.TypeMeta{
Kind: "Pod",
APIVersion: "v1",
},
ObjectMeta: metav1.ObjectMeta{
Name: "my-pod",
Namespace: "my-namespace",
},
Spec: apiv1.PodSpec{
Containers: []apiv1.Container{
{
Name: "my-container",
Image: "my-container",
},
},
},
}

result, err := handler.Create(pod)

期待 : Pod 已创建。
实际 : 创建失败并出现 k8s 错误:创建期间可能未设置空命名空间

最佳答案

要解决上述问题,我必须在以下行中指定命名空间:

handler := clientset.CoreV1().Pods("my-namespace").PodInterface

这修复了错误,因为不允许在命名空间之外创建 pod。因此,即使在 pod 对象中提供了命名空间,也必须将其指定为“作为标志”。

因此,它应该类似于(请参阅命令中的标志 --namespace):
#my-pod-file-definition.yaml
----------------------------
apiVersion: v1
kind: Pod
metadata:
name: my-pod
namespace: my-namespace
spec:
containers:
- name: my-container
image: my-image
kubectl apply -f my-pod-file-definition.yaml --namespace=my-namespace

关于kubernetes 客户端运行错误 : an empty namespace may not be set during creation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57111380/

58 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com