首页 > 解决方案 > 使用配置文件连接到 Kubernetes 服务器时处理错误

问题描述

我故意破坏了我的 .config 文件,该文件负责通过更改用户部分中的内容连接到 kubernetes 服务器,我收到此错误:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x45756e]

goroutine 1 [running]:
k8s.io/client-go/kubernetes.NewForConfig(0x0, 0x0, 0xc42031c120, 0x1c)
        /home/saivamsi/go/src/k8s.io/client-go/kubernetes/clientset.go:371 +0x4e
exit status 2

我这样做是为了测试如果提供了某种无效的配置会发生什么,所以我想通过在接下来的 5 秒内重试连接到服务器来处理这个错误以查看它是否存在。我怎样才能做到这一点?

我正在使用带有此代码的 kubernetes go 客户端来建立连接:

var KubeConfigPath = os.Getenv("HOME") + "/.kube/config2"
var config, ConfigErr = clientcmd.BuildConfigFromFlags("", KubeConfigPath)
var clientset, ClientErr = kubernetes.NewForConfig(config)

标签: gokubernetes-go-client

解决方案


如果您检查来自 BuildConfigFromFlags 的错误是否不为零,则可以避免段错误。如果为 nil 则休眠并重试,否则继续。


推荐阅读