From 5feab863291f2c9f55bee244d09329d819545f4e Mon Sep 17 00:00:00 2001 From: Davanum Srinivas Date: Mon, 2 Jul 2018 08:40:54 -0400 Subject: [PATCH] Remove --cadvisor-port - has been deprecated since v1.10 Signed-off-by: Davanum Srinivas --- cmd/kubelet/app/options/BUILD | 1 - cmd/kubelet/app/options/options.go | 11 ----- cmd/kubelet/app/server.go | 2 +- pkg/kubelet/cadvisor/BUILD | 2 - pkg/kubelet/cadvisor/cadvisor_linux.go | 46 +------------------- pkg/kubelet/cadvisor/cadvisor_unsupported.go | 2 +- pkg/kubelet/cadvisor/cadvisor_windows.go | 2 +- test/e2e_node/environment/conformance.go | 2 +- 8 files changed, 5 insertions(+), 63 deletions(-) diff --git a/cmd/kubelet/app/options/BUILD b/cmd/kubelet/app/options/BUILD index 8ce00b4a2c..c941a0e49b 100644 --- a/cmd/kubelet/app/options/BUILD +++ b/cmd/kubelet/app/options/BUILD @@ -34,7 +34,6 @@ go_library( "//pkg/util/taints:go_default_library", "//pkg/version/verflag:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/util/validation:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/logs:go_default_library", diff --git a/cmd/kubelet/app/options/options.go b/cmd/kubelet/app/options/options.go index 54e38238a4..bdf81990c6 100644 --- a/cmd/kubelet/app/options/options.go +++ b/cmd/kubelet/app/options/options.go @@ -27,7 +27,6 @@ import ( "github.com/spf13/pflag" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - utilvalidation "k8s.io/apimachinery/pkg/util/validation" utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/apiserver/pkg/util/flag" "k8s.io/kubernetes/pkg/apis/componentconfig" @@ -121,9 +120,6 @@ type KubeletFlags struct { // is true and upon the initial registration of the node. RegisterWithTaints []core.Taint - // cAdvisorPort is the port of the localhost cAdvisor endpoint (set to 0 to disable) - CAdvisorPort int32 - // WindowsService should be set to true if kubelet is running as a service on Windows. // Its corresponding flag only gets registered in Windows builds. WindowsService bool @@ -239,8 +235,6 @@ func NewKubeletFlags() *KubeletFlags { HostNetworkSources: []string{kubetypes.AllSource}, HostPIDSources: []string{kubetypes.AllSource}, HostIPCSources: []string{kubetypes.AllSource}, - // TODO(#56523:v1.12.0): Remove --cadvisor-port, it has been deprecated since v1.10 - CAdvisorPort: 0, // TODO(#58010:v1.13.0): Remove --allow-privileged, it is deprecated AllowPrivileged: true, // prior to the introduction of this flag, there was a hardcoded cap of 50 images @@ -253,9 +247,6 @@ func ValidateKubeletFlags(f *KubeletFlags) error { if f.DynamicConfigDir.Provided() && !utilfeature.DefaultFeatureGate.Enabled(features.DynamicKubeletConfig) { return fmt.Errorf("the DynamicKubeletConfig feature gate must be enabled in order to use the --dynamic-config-dir flag") } - if f.CAdvisorPort != 0 && utilvalidation.IsValidPortNum(int(f.CAdvisorPort)) != nil { - return fmt.Errorf("invalid configuration: CAdvisorPort (--cadvisor-port) %v must be between 0 and 65535, inclusive", f.CAdvisorPort) - } if f.NodeStatusMaxImages < -1 { return fmt.Errorf("invalid configuration: NodeStatusMaxImages (--node-status-max-images) must be -1 or greater") } @@ -401,8 +392,6 @@ func (f *KubeletFlags) AddFlags(mainfs *pflag.FlagSet) { // DEPRECATED FLAGS fs.StringVar(&f.BootstrapKubeconfig, "experimental-bootstrap-kubeconfig", f.BootstrapKubeconfig, "") fs.MarkDeprecated("experimental-bootstrap-kubeconfig", "Use --bootstrap-kubeconfig") - fs.Int32Var(&f.CAdvisorPort, "cadvisor-port", f.CAdvisorPort, "The port of the localhost cAdvisor endpoint (set to 0 to disable)") - fs.MarkDeprecated("cadvisor-port", "The default will change to 0 (disabled) in 1.11, and the cadvisor port will be removed entirely in 1.12") fs.DurationVar(&f.MinimumGCAge.Duration, "minimum-container-ttl-duration", f.MinimumGCAge.Duration, "Minimum age for a finished container before it is garbage collected. Examples: '300ms', '10s' or '2h45m'") fs.MarkDeprecated("minimum-container-ttl-duration", "Use --eviction-hard or --eviction-soft instead. Will be removed in a future version.") fs.Int32Var(&f.MaxPerPodContainerCount, "maximum-dead-containers-per-container", f.MaxPerPodContainerCount, "Maximum number of old instances to retain per container. Each container takes up some disk space.") diff --git a/cmd/kubelet/app/server.go b/cmd/kubelet/app/server.go index aa7dfdb197..15534fbbc8 100644 --- a/cmd/kubelet/app/server.go +++ b/cmd/kubelet/app/server.go @@ -633,7 +633,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan if kubeDeps.CAdvisorInterface == nil { imageFsInfoProvider := cadvisor.NewImageFsInfoProvider(s.ContainerRuntime, s.RemoteRuntimeEndpoint) - kubeDeps.CAdvisorInterface, err = cadvisor.New(s.Address, uint(s.CAdvisorPort), imageFsInfoProvider, s.RootDirectory, cadvisor.UsingLegacyCadvisorStats(s.ContainerRuntime, s.RemoteRuntimeEndpoint)) + kubeDeps.CAdvisorInterface, err = cadvisor.New(imageFsInfoProvider, s.RootDirectory, cadvisor.UsingLegacyCadvisorStats(s.ContainerRuntime, s.RemoteRuntimeEndpoint)) if err != nil { return err } diff --git a/pkg/kubelet/cadvisor/BUILD b/pkg/kubelet/cadvisor/BUILD index 1177305c65..7199ed3dfd 100644 --- a/pkg/kubelet/cadvisor/BUILD +++ b/pkg/kubelet/cadvisor/BUILD @@ -31,12 +31,10 @@ go_library( "//vendor/github.com/google/cadvisor/info/v2:go_default_library", ] + select({ "@io_bazel_rules_go//go/platform:linux": [ - "//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/cache/memory:go_default_library", "//vendor/github.com/google/cadvisor/container:go_default_library", "//vendor/github.com/google/cadvisor/fs:go_default_library", - "//vendor/github.com/google/cadvisor/http:go_default_library", "//vendor/github.com/google/cadvisor/manager:go_default_library", "//vendor/github.com/google/cadvisor/metrics:go_default_library", "//vendor/github.com/google/cadvisor/utils/sysfs:go_default_library", diff --git a/pkg/kubelet/cadvisor/cadvisor_linux.go b/pkg/kubelet/cadvisor/cadvisor_linux.go index 6418beb187..795408b6d4 100644 --- a/pkg/kubelet/cadvisor/cadvisor_linux.go +++ b/pkg/kubelet/cadvisor/cadvisor_linux.go @@ -21,24 +21,20 @@ package cadvisor import ( "flag" "fmt" - "net" "net/http" "os" "path" - "strconv" "time" "github.com/golang/glog" "github.com/google/cadvisor/cache/memory" cadvisormetrics "github.com/google/cadvisor/container" "github.com/google/cadvisor/events" - cadvisorhttp "github.com/google/cadvisor/http" cadvisorapi "github.com/google/cadvisor/info/v1" cadvisorapiv2 "github.com/google/cadvisor/info/v2" "github.com/google/cadvisor/manager" "github.com/google/cadvisor/metrics" "github.com/google/cadvisor/utils/sysfs" - "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/kubernetes/pkg/kubelet/types" ) @@ -105,7 +101,7 @@ func containerLabels(c *cadvisorapi.ContainerInfo) map[string]string { } // New creates a cAdvisor and exports its API on the specified port if port > 0. -func New(address string, port uint, imageFsInfoProvider ImageFsInfoProvider, rootPath string, usingLegacyStats bool) (Interface, error) { +func New(imageFsInfoProvider ImageFsInfoProvider, rootPath string, usingLegacyStats bool) (Interface, error) { sysFs := sysfs.NewRealSysFs() ignoreMetrics := cadvisormetrics.MetricSet{ @@ -140,10 +136,6 @@ func New(address string, port uint, imageFsInfoProvider ImageFsInfoProvider, roo Manager: m, } - err = cadvisorClient.exportHTTP(address, port) - if err != nil { - return nil, err - } return cadvisorClient, nil } @@ -151,42 +143,6 @@ func (cc *cadvisorClient) Start() error { return cc.Manager.Start() } -func (cc *cadvisorClient) exportHTTP(address string, port uint) error { - // Register the handlers regardless as this registers the prometheus - // collector properly. - mux := http.NewServeMux() - err := cadvisorhttp.RegisterHandlers(mux, cc, "", "", "", "") - if err != nil { - return err - } - - cadvisorhttp.RegisterPrometheusHandler(mux, cc, "/metrics", containerLabels) - - // Only start the http server if port > 0 - if port > 0 { - serv := &http.Server{ - Addr: net.JoinHostPort(address, strconv.Itoa(int(port))), - Handler: mux, - } - - // TODO(vmarmol): Remove this when the cAdvisor port is once again free. - // If export failed, retry in the background until we are able to bind. - // This allows an existing cAdvisor to be killed before this one registers. - go func() { - defer runtime.HandleCrash() - - err := serv.ListenAndServe() - for err != nil { - glog.Infof("Failed to register cAdvisor on port %d, retrying. Error: %v", port, err) - time.Sleep(time.Minute) - err = serv.ListenAndServe() - } - }() - } - - return nil -} - func (cc *cadvisorClient) ContainerInfo(name string, req *cadvisorapi.ContainerInfoRequest) (*cadvisorapi.ContainerInfo, error) { return cc.GetContainerInfo(name, req) } diff --git a/pkg/kubelet/cadvisor/cadvisor_unsupported.go b/pkg/kubelet/cadvisor/cadvisor_unsupported.go index 501c743d35..ce81ff0efa 100644 --- a/pkg/kubelet/cadvisor/cadvisor_unsupported.go +++ b/pkg/kubelet/cadvisor/cadvisor_unsupported.go @@ -31,7 +31,7 @@ type cadvisorUnsupported struct { var _ Interface = new(cadvisorUnsupported) -func New(address string, port uint, imageFsInfoProvider ImageFsInfoProvider, rootPath string, usingLegacyStats bool) (Interface, error) { +func New(imageFsInfoProvider ImageFsInfoProvider, rootPath string, usingLegacyStats bool) (Interface, error) { return &cadvisorUnsupported{}, nil } diff --git a/pkg/kubelet/cadvisor/cadvisor_windows.go b/pkg/kubelet/cadvisor/cadvisor_windows.go index eb416a141d..eeded9b776 100644 --- a/pkg/kubelet/cadvisor/cadvisor_windows.go +++ b/pkg/kubelet/cadvisor/cadvisor_windows.go @@ -33,7 +33,7 @@ type cadvisorClient struct { var _ Interface = new(cadvisorClient) // New creates a cAdvisor and exports its API on the specified port if port > 0. -func New(address string, port uint, imageFsInfoProvider ImageFsInfoProvider, rootPath string, usingLegacyStats bool) (Interface, error) { +func New(imageFsInfoProvider ImageFsInfoProvider, rootPath string, usingLegacyStats bool) (Interface, error) { client, err := winstats.NewPerfCounterClient() return &cadvisorClient{ rootPath: rootPath, diff --git a/test/e2e_node/environment/conformance.go b/test/e2e_node/environment/conformance.go index fc53559fd7..b029c6f424 100644 --- a/test/e2e_node/environment/conformance.go +++ b/test/e2e_node/environment/conformance.go @@ -99,7 +99,7 @@ func containerRuntime() error { } // Setup cadvisor to check the container environment - c, err := cadvisor.New("", 0 /*don't start the http server*/, cadvisor.NewImageFsInfoProvider("docker", ""), "/var/lib/kubelet", false) + c, err := cadvisor.New(cadvisor.NewImageFsInfoProvider("docker", ""), "/var/lib/kubelet", false) if err != nil { return printError("Container Runtime Check: %s Could not start cadvisor %v", failed, err) }