From 8d54a84507c622e1552373d5d125c84ee22d1465 Mon Sep 17 00:00:00 2001 From: louisgong Date: Tue, 24 Dec 2019 18:45:41 +0800 Subject: [PATCH] fix kubemark use fake CRI --- cmd/kubemark/BUILD | 1 + cmd/kubemark/hollow-node.go | 17 ++++++++++++++++- pkg/kubemark/BUILD | 2 +- pkg/kubemark/hollow_kubelet.go | 9 +++++---- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/cmd/kubemark/BUILD b/cmd/kubemark/BUILD index 39d3f3a65a9..d6ecd402046 100644 --- a/cmd/kubemark/BUILD +++ b/cmd/kubemark/BUILD @@ -19,6 +19,7 @@ go_library( "//pkg/api/legacyscheme:go_default_library", "//pkg/kubelet/cadvisor/testing:go_default_library", "//pkg/kubelet/cm:go_default_library", + "//pkg/kubelet/remote:go_default_library", "//pkg/kubelet/remote/fake:go_default_library", "//pkg/kubemark:go_default_library", "//pkg/master/ports:go_default_library", diff --git a/cmd/kubemark/hollow-node.go b/cmd/kubemark/hollow-node.go index 0198536eed5..f1cb3eb2c3c 100644 --- a/cmd/kubemark/hollow-node.go +++ b/cmd/kubemark/hollow-node.go @@ -43,6 +43,7 @@ import ( "k8s.io/kubernetes/pkg/api/legacyscheme" cadvisortest "k8s.io/kubernetes/pkg/kubelet/cadvisor/testing" "k8s.io/kubernetes/pkg/kubelet/cm" + "k8s.io/kubernetes/pkg/kubelet/remote" fakeremote "k8s.io/kubernetes/pkg/kubelet/remote/fake" "k8s.io/kubernetes/pkg/kubemark" "k8s.io/kubernetes/pkg/master/ports" @@ -193,14 +194,28 @@ func run(config *hollowNodeConfig) { NodeName: config.NodeName, } containerManager := cm.NewStubContainerManager() + + endpoint, err := fakeremote.GenerateEndpoint() + if err != nil { + klog.Fatalf("Failed to generate fake endpoint %v.", err) + } fakeRemoteRuntime := fakeremote.NewFakeRemoteRuntime() + if err = fakeRemoteRuntime.Start(endpoint); err != nil { + klog.Fatalf("Failed to start fake runtime %v.", err) + } + defer fakeRemoteRuntime.Stop() + runtimeService, err := remote.NewRemoteRuntimeService(endpoint, 15*time.Second) + if err != nil { + klog.Fatalf("Failed to init runtime service %v.", err) + } hollowKubelet := kubemark.NewHollowKubelet( f, c, client, heartbeatClient, cadvisorInterface, - fakeRemoteRuntime, + fakeRemoteRuntime.ImageService, + runtimeService, containerManager, ) hollowKubelet.Run() diff --git a/pkg/kubemark/BUILD b/pkg/kubemark/BUILD index 201a779b054..eee6b31f2bd 100644 --- a/pkg/kubemark/BUILD +++ b/pkg/kubemark/BUILD @@ -22,7 +22,6 @@ go_library( "//pkg/kubelet/cadvisor:go_default_library", "//pkg/kubelet/cm:go_default_library", "//pkg/kubelet/container/testing:go_default_library", - "//pkg/kubelet/remote/fake:go_default_library", "//pkg/kubelet/types:go_default_library", "//pkg/proxy:go_default_library", "//pkg/proxy/config:go_default_library", @@ -66,6 +65,7 @@ go_library( "//staging/src/k8s.io/client-go/listers/core/v1:go_default_library", "//staging/src/k8s.io/client-go/tools/cache:go_default_library", "//staging/src/k8s.io/client-go/tools/record:go_default_library", + "//staging/src/k8s.io/cri-api/pkg/apis:go_default_library", "//test/utils:go_default_library", "//vendor/k8s.io/klog:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", diff --git a/pkg/kubemark/hollow_kubelet.go b/pkg/kubemark/hollow_kubelet.go index caceaf097e8..64c516700ce 100644 --- a/pkg/kubemark/hollow_kubelet.go +++ b/pkg/kubemark/hollow_kubelet.go @@ -25,6 +25,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" clientset "k8s.io/client-go/kubernetes" + internalapi "k8s.io/cri-api/pkg/apis" kubeletapp "k8s.io/kubernetes/cmd/kubelet/app" "k8s.io/kubernetes/cmd/kubelet/app/options" "k8s.io/kubernetes/pkg/kubelet" @@ -32,7 +33,6 @@ import ( "k8s.io/kubernetes/pkg/kubelet/cadvisor" "k8s.io/kubernetes/pkg/kubelet/cm" containertest "k8s.io/kubernetes/pkg/kubelet/container/testing" - fakeremote "k8s.io/kubernetes/pkg/kubelet/remote/fake" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" "k8s.io/kubernetes/pkg/util/oom" "k8s.io/kubernetes/pkg/volume" @@ -98,13 +98,14 @@ func NewHollowKubelet( client *clientset.Clientset, heartbeatClient *clientset.Clientset, cadvisorInterface cadvisor.Interface, - remoteRuntime *fakeremote.RemoteRuntime, + imageService internalapi.ImageManagerService, + runtimeService internalapi.RuntimeService, containerManager cm.ContainerManager) *HollowKubelet { d := &kubelet.Dependencies{ KubeClient: client, HeartbeatClient: heartbeatClient, - RemoteRuntimeService: remoteRuntime.RuntimeService, - RemoteImageService: remoteRuntime.ImageService, + RemoteRuntimeService: runtimeService, + RemoteImageService: imageService, CAdvisorInterface: cadvisorInterface, Cloud: nil, OSInterface: &containertest.FakeOS{},