遵循k8s/controller-runtime/client示例代码(请参见此处),代码如下
var c client.Client
func main() {
// Using a typed object.
pod := &corev1.Pod{
ObjectMeta: metav1.ObjectMeta{
Namespace: "namespace",
Name: "name",
},
Spec: corev1.PodSpec{
Containers: []corev1.Container{
{
Image: "nginx",
Name: "nginx",
},
},
},
}
// c is a created client.
_ = c.Create(context.Background(), pod) // nil deref here
}
我在_ = c.Create(context.Background(), pod)
上得到了一个nullptr解引用。对我来说这是有意义的,因为我声明了c
,但是从来没有初始化过它。然而示例代码也做了这个。这里发生了什么?
1条答案
按热度按时间col17t5w1#
初始化客户端的正确方法可在此处找到:https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.14.4/pkg/client#example-New