0.7版本

由于vpa代码是使用vender模式,所以在本地调试有点麻烦

1.把github上autoscaler代码下载到$GOPATH下的这里

本地调试vpa_vpa

2.用goland打开autoscaler下的vertical-pod-autoscaler

本地调试vpa_vpa_02

3.关掉gomod

本地调试vpa_vpa_03

4.修改下createKubeConfig方法

本地调试vpa_vpa_04

func createKubeConfig(kubeApiQps float32, kubeApiBurst int) *rest.Config {
var K8sConfig string
if home := homedir.HomeDir(); home != "" {
K8sConfig = filepath.Join(home, ".kube", "config")
} else {
K8sConfig = "config"
}
config, err := clientcmd.BuildConfigFromFlags("", K8sConfig)
if err != nil {
panic(err)
}
config.QPS = kubeApiQps
config.Burst = kubeApiBurst
return config
}

这里还有个问题

由于vpa使用的client-go版本没有下面这个方法,所以我给换成了clien-go1.19版本

clientcmd.BuildConfigFromFlags

直接吧1.19版本的client-go复制到这里了

本地调试vpa_vpa_05


在启动就能启动成功了

本地调试vpa_vpa_06

5.本地打包

本地调试vpa_vpa_07

0.9版本

0.9版本么这么复杂,只需要修改下createKubeConfig方法就好,已经是mod模式