From 0f881d612071f2a90465f8fd4ffc943080271049 Mon Sep 17 00:00:00 2001 From: Wojciech Tyczynski Date: Tue, 17 May 2016 14:13:28 +0200 Subject: [PATCH] Use protobufs by default to communicate with apiserver --- cmd/kube-controller-manager/app/options/options.go | 3 ++- cmd/kube-proxy/app/options/options.go | 3 ++- cmd/kubelet/app/options/options.go | 3 ++- cmd/kubemark/hollow-node.go | 2 +- docs/admin/kube-controller-manager.md | 4 ++-- docs/admin/kube-proxy.md | 4 ++-- docs/admin/kube-scheduler.md | 4 ++-- docs/admin/kubelet.md | 4 ++-- pkg/apis/componentconfig/v1alpha1/defaults.go | 3 +++ plugin/cmd/kube-scheduler/app/options/options.go | 2 +- 10 files changed, 19 insertions(+), 13 deletions(-) diff --git a/cmd/kube-controller-manager/app/options/options.go b/cmd/kube-controller-manager/app/options/options.go index 61b0ffc34bef1..40d85a122877e 100644 --- a/cmd/kube-controller-manager/app/options/options.go +++ b/cmd/kube-controller-manager/app/options/options.go @@ -82,6 +82,7 @@ func NewCMServer() *CMServer { IncrementTimeoutHostPath: 30, }, }, + ContentType: "application/vnd.kubernetes.protobuf", KubeAPIQPS: 20.0, KubeAPIBurst: 30, LeaderElection: leaderelection.DefaultLeaderElectionConfiguration(), @@ -148,7 +149,7 @@ func (s *CMServer) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&s.Master, "master", s.Master, "The address of the Kubernetes API server (overrides any value in kubeconfig)") fs.StringVar(&s.Kubeconfig, "kubeconfig", s.Kubeconfig, "Path to kubeconfig file with authorization and master location information.") fs.StringVar(&s.RootCAFile, "root-ca-file", s.RootCAFile, "If set, this root certificate authority will be included in service account's token secret. This must be a valid PEM-encoded CA bundle.") - fs.StringVar(&s.ContentType, "kube-api-content-type", s.ContentType, "ContentType of requests sent to apiserver. Passing application/vnd.kubernetes.protobuf is an experimental feature now.") + fs.StringVar(&s.ContentType, "kube-api-content-type", s.ContentType, "Content type of requests sent to apiserver.") fs.Float32Var(&s.KubeAPIQPS, "kube-api-qps", s.KubeAPIQPS, "QPS to use while talking with kubernetes apiserver") fs.Int32Var(&s.KubeAPIBurst, "kube-api-burst", s.KubeAPIBurst, "Burst to use while talking with kubernetes apiserver") fs.DurationVar(&s.ControllerStartInterval.Duration, "controller-start-interval", s.ControllerStartInterval.Duration, "Interval between starting controller managers.") diff --git a/cmd/kube-proxy/app/options/options.go b/cmd/kube-proxy/app/options/options.go index 9f342829da669..5bb1a697828f7 100644 --- a/cmd/kube-proxy/app/options/options.go +++ b/cmd/kube-proxy/app/options/options.go @@ -53,6 +53,7 @@ func NewProxyConfig() *ProxyServerConfig { api.Scheme.Convert(&v1alpha1.KubeProxyConfiguration{}, &config) return &ProxyServerConfig{ KubeProxyConfiguration: config, + ContentType: "application/vnd.kubernetes.protobuf", KubeAPIQPS: 5.0, KubeAPIBurst: 10, ConfigSyncPeriod: 15 * time.Minute, @@ -78,7 +79,7 @@ func (s *ProxyServerConfig) AddFlags(fs *pflag.FlagSet) { fs.BoolVar(&s.MasqueradeAll, "masquerade-all", s.MasqueradeAll, "If using the pure iptables proxy, SNAT everything") fs.StringVar(&s.ClusterCIDR, "cluster-cidr", s.ClusterCIDR, "The CIDR range of pods in the cluster. It is used to bridge traffic coming from outside of the cluster. If not provided, no off-cluster bridging will be performed.") fs.BoolVar(&s.CleanupAndExit, "cleanup-iptables", s.CleanupAndExit, "If true cleanup iptables rules and exit.") - fs.StringVar(&s.ContentType, "kube-api-content-type", s.ContentType, "ContentType of requests sent to apiserver. Passing application/vnd.kubernetes.protobuf is an experimental feature now.") + fs.StringVar(&s.ContentType, "kube-api-content-type", s.ContentType, "Content type of requests sent to apiserver.") fs.Float32Var(&s.KubeAPIQPS, "kube-api-qps", s.KubeAPIQPS, "QPS to use while talking with kubernetes apiserver") fs.Int32Var(&s.KubeAPIBurst, "kube-api-burst", s.KubeAPIBurst, "Burst to use while talking with kubernetes apiserver") fs.DurationVar(&s.UDPIdleTimeout.Duration, "udp-timeout", s.UDPIdleTimeout.Duration, "How long an idle UDP connection will be kept open (e.g. '250ms', '2s'). Must be greater than 0. Only applicable for proxy-mode=userspace") diff --git a/cmd/kubelet/app/options/options.go b/cmd/kubelet/app/options/options.go index 33fcaff275a07..31a681f4df38b 100644 --- a/cmd/kubelet/app/options/options.go +++ b/cmd/kubelet/app/options/options.go @@ -136,6 +136,7 @@ func NewKubeletServer() *KubeletServer { SyncFrequency: unversioned.Duration{Duration: 1 * time.Minute}, SystemCgroups: "", ReconcileCIDR: true, + ContentType: "application/vnd.kubernetes.protobuf", KubeAPIQPS: 5.0, KubeAPIBurst: 10, ExperimentalFlannelOverlay: experimentalFlannelOverlay, @@ -246,7 +247,7 @@ func (s *KubeletServer) AddFlags(fs *pflag.FlagSet) { fs.Var(&s.SystemReserved, "system-reserved", "A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for non-kubernetes components. Currently only cpu and memory are supported. See http://releases.k8s.io/HEAD/docs/user-guide/compute-resources.md for more detail. [default=none]") fs.Var(&s.KubeReserved, "kube-reserved", "A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for kubernetes system components. Currently only cpu and memory are supported. See http://releases.k8s.io/HEAD/docs/user-guide/compute-resources.md for more detail. [default=none]") fs.BoolVar(&s.RegisterSchedulable, "register-schedulable", s.RegisterSchedulable, "Register the node as schedulable. No-op if register-node is false. [default=true]") - fs.StringVar(&s.ContentType, "kube-api-content-type", s.ContentType, "ContentType of requests sent to apiserver. Passing application/vnd.kubernetes.protobuf is an experimental feature now.") + fs.StringVar(&s.ContentType, "kube-api-content-type", s.ContentType, "Content type of requests sent to apiserver.") fs.Float32Var(&s.KubeAPIQPS, "kube-api-qps", s.KubeAPIQPS, "QPS to use while talking with kubernetes apiserver") fs.Int32Var(&s.KubeAPIBurst, "kube-api-burst", s.KubeAPIBurst, "Burst to use while talking with kubernetes apiserver") fs.BoolVar(&s.SerializeImagePulls, "serialize-image-pulls", s.SerializeImagePulls, "Pull images one at a time. We recommend *not* changing the default value on nodes that run docker daemon with version < 1.9 or an Aufs storage backend. Issue #10959 has more details. [default=true]") diff --git a/cmd/kubemark/hollow-node.go b/cmd/kubemark/hollow-node.go index bfac4bb03b0b8..15c381fbfae6c 100644 --- a/cmd/kubemark/hollow-node.go +++ b/cmd/kubemark/hollow-node.go @@ -61,7 +61,7 @@ func (c *HollowNodeConfig) addFlags(fs *pflag.FlagSet) { fs.StringVar(&c.NodeName, "name", "fake-node", "Name of this Hollow Node.") fs.IntVar(&c.ServerPort, "api-server-port", 443, "Port on which API server is listening.") fs.StringVar(&c.Morph, "morph", "", fmt.Sprintf("Specifies into which Hollow component this binary should morph. Allowed values: %v", knownMorphs.List())) - fs.StringVar(&c.ContentType, "kube-api-content-type", "application/json", "ContentType of requests sent to apiserver. Passing application/vnd.kubernetes.protobuf is an experimental feature now.") + fs.StringVar(&c.ContentType, "kube-api-content-type", "application/vnd.kubernetes.protobuf", "ContentType of requests sent to apiserver.") } func (c *HollowNodeConfig) createClientFromFile() (*client.Client, error) { diff --git a/docs/admin/kube-controller-manager.md b/docs/admin/kube-controller-manager.md index bd3e1fcfbf587..058864517a646 100644 --- a/docs/admin/kube-controller-manager.md +++ b/docs/admin/kube-controller-manager.md @@ -76,7 +76,7 @@ kube-controller-manager --google-json-key="": The Google Cloud Platform Service Account JSON Key to use for authentication. --horizontal-pod-autoscaler-sync-period=30s: The period for syncing the number of pods in horizontal pod autoscaler. --kube-api-burst=30: Burst to use while talking with kubernetes apiserver - --kube-api-content-type="": ContentType of requests sent to apiserver. Passing application/vnd.kubernetes.protobuf is an experimental feature now. + --kube-api-content-type="application/vnd.kubernetes.protobuf": Content type of requests sent to apiserver. --kube-api-qps=20: QPS to use while talking with kubernetes apiserver --kubeconfig="": Path to kubeconfig file with authorization and master location information. --leader-elect[=false]: Start a leader election client and gain leadership before executing the main loop. Enable this when running replicated components for high availability. @@ -112,7 +112,7 @@ kube-controller-manager --terminated-pod-gc-threshold=12500: Number of terminated pods that can exist before the terminated pod garbage collector starts deleting terminated pods. If <= 0, the terminated pod garbage collector is disabled. ``` -###### Auto generated by spf13/cobra on 17-May-2016 +###### Auto generated by spf13/cobra on 21-May-2016 diff --git a/docs/admin/kube-proxy.md b/docs/admin/kube-proxy.md index 9f9cb02df9b2a..833cefc86f3da 100644 --- a/docs/admin/kube-proxy.md +++ b/docs/admin/kube-proxy.md @@ -67,7 +67,7 @@ kube-proxy --iptables-masquerade-bit=14: If using the pure iptables proxy, the bit of the fwmark space to mark packets requiring SNAT with. Must be within the range [0, 31]. --iptables-sync-period=30s: How often iptables rules are refreshed (e.g. '5s', '1m', '2h22m'). Must be greater than 0. --kube-api-burst=10: Burst to use while talking with kubernetes apiserver - --kube-api-content-type="": ContentType of requests sent to apiserver. Passing application/vnd.kubernetes.protobuf is an experimental feature now. + --kube-api-content-type="application/vnd.kubernetes.protobuf": Content type of requests sent to apiserver. --kube-api-qps=5: QPS to use while talking with kubernetes apiserver --kubeconfig="": Path to kubeconfig file with authorization information (the master location is set by the master flag). --log-flush-frequency=5s: Maximum number of seconds between log flushes @@ -79,7 +79,7 @@ kube-proxy --udp-timeout=250ms: How long an idle UDP connection will be kept open (e.g. '250ms', '2s'). Must be greater than 0. Only applicable for proxy-mode=userspace ``` -###### Auto generated by spf13/cobra on 21-Apr-2016 +###### Auto generated by spf13/cobra on 20-May-2016 diff --git a/docs/admin/kube-scheduler.md b/docs/admin/kube-scheduler.md index 892a8a1f70ac5..ccfa085d4504d 100644 --- a/docs/admin/kube-scheduler.md +++ b/docs/admin/kube-scheduler.md @@ -60,7 +60,7 @@ kube-scheduler --google-json-key="": The Google Cloud Platform Service Account JSON Key to use for authentication. --hard-pod-affinity-symmetric-weight=1: RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule corresponding to every RequiredDuringScheduling affinity rule. --hard-pod-affinity-symmetric-weight represents the weight of implicit PreferredDuringScheduling affinity rule. --kube-api-burst=100: Burst to use while talking with kubernetes apiserver - --kube-api-content-type="": ContentType of requests sent to apiserver. Passing application/vnd.kubernetes.protobuf is an experimental feature now. + --kube-api-content-type="application/vnd.kubernetes.protobuf": Content type of requests sent to apiserver. --kube-api-qps=50: QPS to use while talking with kubernetes apiserver --kubeconfig="": Path to kubeconfig file with authorization and master location information. --leader-elect[=false]: Start a leader election client and gain leadership before executing the main loop. Enable this when running replicated components for high availability. @@ -75,7 +75,7 @@ kube-scheduler --scheduler-name="default-scheduler": Name of the scheduler, used to select which pods will be processed by this scheduler, based on pod's annotation with key 'scheduler.alpha.kubernetes.io/name' ``` -###### Auto generated by spf13/cobra on 5-May-2016 +###### Auto generated by spf13/cobra on 20-May-2016 diff --git a/docs/admin/kubelet.md b/docs/admin/kubelet.md index 2ad24fdfebc7e..5e95cc36d26ee 100644 --- a/docs/admin/kubelet.md +++ b/docs/admin/kubelet.md @@ -108,7 +108,7 @@ kubelet --image-gc-high-threshold=90: The percent of disk usage after which image garbage collection is always run. Default: 90% --image-gc-low-threshold=80: The percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. Default: 80% --kube-api-burst=10: Burst to use while talking with kubernetes apiserver - --kube-api-content-type="": ContentType of requests sent to apiserver. Passing application/vnd.kubernetes.protobuf is an experimental feature now. + --kube-api-content-type="application/vnd.kubernetes.protobuf": Content type of requests sent to apiserver. --kube-api-qps=5: QPS to use while talking with kubernetes apiserver --kube-reserved=: A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for kubernetes system components. Currently only cpu and memory are supported. See http://releases.k8s.io/HEAD/docs/user-guide/compute-resources.md for more detail. [default=none] --kubeconfig="/var/lib/kubelet/kubeconfig": Path to a kubeconfig file, specifying how to authenticate to API server (the master location is set by the api-servers flag). @@ -160,7 +160,7 @@ kubelet --volume-stats-agg-period=1m0s: Specifies interval for kubelet to calculate and cache the volume disk usage for all pods and volumes. To disable volume calculations, set to 0. Default: '1m' ``` -###### Auto generated by spf13/cobra on 18-May-2016 +###### Auto generated by spf13/cobra on 21-May-2016 diff --git a/pkg/apis/componentconfig/v1alpha1/defaults.go b/pkg/apis/componentconfig/v1alpha1/defaults.go index a199b04ac9a15..bab6bb3e32f80 100644 --- a/pkg/apis/componentconfig/v1alpha1/defaults.go +++ b/pkg/apis/componentconfig/v1alpha1/defaults.go @@ -80,6 +80,9 @@ func SetDefaults_KubeSchedulerConfiguration(obj *KubeSchedulerConfiguration) { if obj.AlgorithmProvider == "" { obj.AlgorithmProvider = "DefaultProvider" } + if obj.ContentType == "" { + obj.ContentType = "application/vnd.kubernetes.protobuf" + } if obj.KubeAPIQPS == 0 { obj.KubeAPIQPS = 50.0 } diff --git a/plugin/cmd/kube-scheduler/app/options/options.go b/plugin/cmd/kube-scheduler/app/options/options.go index 542bf85757a78..b54bc1e2e7fa8 100644 --- a/plugin/cmd/kube-scheduler/app/options/options.go +++ b/plugin/cmd/kube-scheduler/app/options/options.go @@ -63,7 +63,7 @@ func (s *SchedulerServer) AddFlags(fs *pflag.FlagSet) { var unusedBindPodsBurst int32 fs.Int32Var(&unusedBindPodsBurst, "bind-pods-burst", 0, "unused, use --kube-api-burst") fs.MarkDeprecated("bind-pods-burst", "flag is unused and will be removed. Use kube-api-burst instead.") - fs.StringVar(&s.ContentType, "kube-api-content-type", s.ContentType, "ContentType of requests sent to apiserver. Passing application/vnd.kubernetes.protobuf is an experimental feature now.") + fs.StringVar(&s.ContentType, "kube-api-content-type", s.ContentType, "Content type of requests sent to apiserver.") fs.Float32Var(&s.KubeAPIQPS, "kube-api-qps", s.KubeAPIQPS, "QPS to use while talking with kubernetes apiserver") fs.Int32Var(&s.KubeAPIBurst, "kube-api-burst", s.KubeAPIBurst, "Burst to use while talking with kubernetes apiserver") fs.StringVar(&s.SchedulerName, "scheduler-name", s.SchedulerName, "Name of the scheduler, used to select which pods will be processed by this scheduler, based on pod's annotation with key 'scheduler.alpha.kubernetes.io/name'")