4 Commits

Author SHA1 Message Date
skamboj
e22842fbfb Merge pull request #135 from j4ckstraw/use-protobuf
use protobuf and add resourceVersion in listOption
2024-04-08 15:49:26 -04:00
Sachin Kamboj
507a63d8bc Increment the version
Signed-off-by: Sachin Kamboj <skamboj1@bloomberg.net>
2024-04-08 15:41:55 -04:00
skamboj
9f6de28994 Merge branch 'master' into use-protobuf 2024-04-08 10:45:38 -04:00
j4ckstraw
acac9dee8b use protobuf and add resourceVersion in listOption
1. communicate to kube-apiserver with protobuf
2. listOption add resourceVersion=0. without resourceversion,
list will force kube-apiserver retrieve data from etcd.

In a 100+ nodes, 7500+ pods kubernetes cluster, this patch make
kube-apiserver cpu utils reduce 5-10%.

Signed-off-by: j4ckstraw <j4ckstraw@foxmail.com>
2023-06-17 18:42:37 +08:00
3 changed files with 9 additions and 1 deletions

View File

@@ -1,5 +1,5 @@
name ?= goldpinger
version ?= v3.7.0
version ?= v3.10.0
bin ?= goldpinger
pkg ?= "github.com/bloomberg/goldpinger"
tag = $(name):$(version)

View File

@@ -20,10 +20,12 @@ import (
"io/ioutil"
"log"
"os"
"strings"
"time"
"github.com/go-openapi/loads"
"go.uber.org/zap"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
@@ -131,6 +133,10 @@ func main() {
if err != nil {
logger.Fatal("Error getting config ", zap.Error(err))
}
// communicate to kube-apiserver with protobuf
config.AcceptContentTypes = strings.Join([]string{runtime.ContentTypeProtobuf, runtime.ContentTypeJSON}, ",")
config.ContentType = runtime.ContentTypeProtobuf
// create the clientset
clientset, err := kubernetes.NewForConfig(config)
if err != nil {

View File

@@ -107,6 +107,8 @@ func getPodNodeName(p v1.Pod) string {
func GetAllPods() map[string]*GoldpingerPod {
timer := GetLabeledKubernetesCallsTimer()
listOpts := metav1.ListOptions{
ResourceVersion: "0",
LabelSelector: GoldpingerConfig.LabelSelector,
FieldSelector: "status.phase=Running", // only select Running pods, otherwise we will get them before they have IPs
}