使用配置文件连接到 kubernetes 服务器时处理错误

Handling error while connecting to kubernetes server using config file

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

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)

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