Skip to content

Commit

Permalink
Cherry pick of kubernetes#5456 onto release-1.9
Browse files Browse the repository at this point in the history
  • Loading branch information
mikesplain authored and JBOClara committed Jul 25, 2018
1 parent cb54c6a commit b12c037
Show file tree
Hide file tree
Showing 9 changed files with 83 additions and 1 deletion.
6 changes: 5 additions & 1 deletion nodeup/pkg/model/kube_proxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -158,14 +158,18 @@ func (b *KubeProxyBuilder) buildPod() (*v1.Pod, error) {
resourceLimits["memory"] = memoryLimit
}

if c.ConntrackMaxPerCore == nil {
defaultConntrackMaxPerCore := int32(131072)
c.ConntrackMaxPerCore = &defaultConntrackMaxPerCore
}

flags, err := flagbuilder.BuildFlagsList(c)
if err != nil {
return nil, fmt.Errorf("error building kubeproxy flags: %v", err)
}
image := c.Image

flags = append(flags, []string{
"--conntrack-max-per-core=131072",
"--kubeconfig=/var/lib/kube-proxy/kubeconfig",
"--oom-score-adj=-998",
`--resource-container=""`}...)
Expand Down
4 changes: 4 additions & 0 deletions pkg/apis/kops/componentconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,10 @@ type KubeProxyConfig struct {
ProxyMode string `json:"proxyMode,omitempty" flag:"proxy-mode"`
// FeatureGates is a series of key pairs used to switch on features for the proxy
FeatureGates map[string]string `json:"featureGates,omitempty" flag:"feature-gates"`
// Maximum number of NAT connections to track per CPU core (default: 131072)
ConntrackMaxPerCore *int32 `json:"conntrackMaxPerCore,omitempty" flag:"conntrack-max-per-core"`
// Minimum number of conntrack entries to allocate, regardless of conntrack-max-per-core
ConntrackMin *int32 `json:"conntrackMin,omitempty" flag:"conntrack-min"`
}

// KubeAPIServerConfig defines the configuration for the kube api
Expand Down
4 changes: 4 additions & 0 deletions pkg/apis/kops/v1alpha1/componentconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,10 @@ type KubeProxyConfig struct {
ProxyMode string `json:"proxyMode,omitempty" flag:"proxy-mode"`
// FeatureGates is a series of key pairs used to switch on features for the proxy
FeatureGates map[string]string `json:"featureGates,omitempty" flag:"feature-gates"`
// Maximum number of NAT connections to track per CPU core (default: 131072)
ConntrackMaxPerCore *int32 `json:"conntrackMaxPerCore,omitempty" flag:"conntrack-max-per-core"`
// Minimum number of conntrack entries to allocate, regardless of conntrack-max-per-core
ConntrackMin *int32 `json:"conntrackMin,omitempty" flag:"conntrack-min"`
}

// KubeAPIServerConfig defines the configuration for the kube api
Expand Down
6 changes: 6 additions & 0 deletions pkg/apis/kops/v1alpha1/zz_generated.conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,7 @@ func Convert_kops_CNINetworkingSpec_To_v1alpha1_CNINetworkingSpec(in *kops.CNINe
func autoConvert_v1alpha1_CalicoNetworkingSpec_To_kops_CalicoNetworkingSpec(in *CalicoNetworkingSpec, out *kops.CalicoNetworkingSpec, s conversion.Scope) error {
out.CrossSubnet = in.CrossSubnet
out.LogSeverityScreen = in.LogSeverityScreen
out.MTU = in.MTU
out.PrometheusMetricsEnabled = in.PrometheusMetricsEnabled
out.PrometheusMetricsPort = in.PrometheusMetricsPort
out.PrometheusGoMetricsEnabled = in.PrometheusGoMetricsEnabled
Expand All @@ -410,6 +411,7 @@ func Convert_v1alpha1_CalicoNetworkingSpec_To_kops_CalicoNetworkingSpec(in *Cali
func autoConvert_kops_CalicoNetworkingSpec_To_v1alpha1_CalicoNetworkingSpec(in *kops.CalicoNetworkingSpec, out *CalicoNetworkingSpec, s conversion.Scope) error {
out.CrossSubnet = in.CrossSubnet
out.LogSeverityScreen = in.LogSeverityScreen
out.MTU = in.MTU
out.PrometheusMetricsEnabled = in.PrometheusMetricsEnabled
out.PrometheusMetricsPort = in.PrometheusMetricsPort
out.PrometheusGoMetricsEnabled = in.PrometheusGoMetricsEnabled
Expand Down Expand Up @@ -2135,6 +2137,8 @@ func autoConvert_v1alpha1_KubeProxyConfig_To_kops_KubeProxyConfig(in *KubeProxyC
out.Enabled = in.Enabled
out.ProxyMode = in.ProxyMode
out.FeatureGates = in.FeatureGates
out.ConntrackMaxPerCore = in.ConntrackMaxPerCore
out.ConntrackMin = in.ConntrackMin
return nil
}

Expand All @@ -2156,6 +2160,8 @@ func autoConvert_kops_KubeProxyConfig_To_v1alpha1_KubeProxyConfig(in *kops.KubeP
out.Enabled = in.Enabled
out.ProxyMode = in.ProxyMode
out.FeatureGates = in.FeatureGates
out.ConntrackMaxPerCore = in.ConntrackMaxPerCore
out.ConntrackMin = in.ConntrackMin
return nil
}

Expand Down
18 changes: 18 additions & 0 deletions pkg/apis/kops/v1alpha1/zz_generated.deepcopy.go
Original file line number Diff line number Diff line change
Expand Up @@ -2121,6 +2121,24 @@ func (in *KubeProxyConfig) DeepCopyInto(out *KubeProxyConfig) {
(*out)[key] = val
}
}
if in.ConntrackMaxPerCore != nil {
in, out := &in.ConntrackMaxPerCore, &out.ConntrackMaxPerCore
if *in == nil {
*out = nil
} else {
*out = new(int32)
**out = **in
}
}
if in.ConntrackMin != nil {
in, out := &in.ConntrackMin, &out.ConntrackMin
if *in == nil {
*out = nil
} else {
*out = new(int32)
**out = **in
}
}
return
}

Expand Down
4 changes: 4 additions & 0 deletions pkg/apis/kops/v1alpha2/componentconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,10 @@ type KubeProxyConfig struct {
ProxyMode string `json:"proxyMode,omitempty" flag:"proxy-mode"`
// FeatureGates is a series of key pairs used to switch on features for the proxy
FeatureGates map[string]string `json:"featureGates,omitempty" flag:"feature-gates"`
// Maximum number of NAT connections to track per CPU core (default: 131072)
ConntrackMaxPerCore *int32 `json:"conntrackMaxPerCore,omitempty" flag:"conntrack-max-per-core"`
// Minimum number of conntrack entries to allocate, regardless of conntrack-max-per-core
ConntrackMin *int32 `json:"conntrackMin,omitempty" flag:"conntrack-min"`
}

// KubeAPIServerConfig defines the configuration for the kube api
Expand Down
6 changes: 6 additions & 0 deletions pkg/apis/kops/v1alpha2/zz_generated.conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -431,6 +431,7 @@ func Convert_kops_CNINetworkingSpec_To_v1alpha2_CNINetworkingSpec(in *kops.CNINe
func autoConvert_v1alpha2_CalicoNetworkingSpec_To_kops_CalicoNetworkingSpec(in *CalicoNetworkingSpec, out *kops.CalicoNetworkingSpec, s conversion.Scope) error {
out.CrossSubnet = in.CrossSubnet
out.LogSeverityScreen = in.LogSeverityScreen
out.MTU = in.MTU
out.PrometheusMetricsEnabled = in.PrometheusMetricsEnabled
out.PrometheusMetricsPort = in.PrometheusMetricsPort
out.PrometheusGoMetricsEnabled = in.PrometheusGoMetricsEnabled
Expand All @@ -446,6 +447,7 @@ func Convert_v1alpha2_CalicoNetworkingSpec_To_kops_CalicoNetworkingSpec(in *Cali
func autoConvert_kops_CalicoNetworkingSpec_To_v1alpha2_CalicoNetworkingSpec(in *kops.CalicoNetworkingSpec, out *CalicoNetworkingSpec, s conversion.Scope) error {
out.CrossSubnet = in.CrossSubnet
out.LogSeverityScreen = in.LogSeverityScreen
out.MTU = in.MTU
out.PrometheusMetricsEnabled = in.PrometheusMetricsEnabled
out.PrometheusMetricsPort = in.PrometheusMetricsPort
out.PrometheusGoMetricsEnabled = in.PrometheusGoMetricsEnabled
Expand Down Expand Up @@ -2399,6 +2401,8 @@ func autoConvert_v1alpha2_KubeProxyConfig_To_kops_KubeProxyConfig(in *KubeProxyC
out.Enabled = in.Enabled
out.ProxyMode = in.ProxyMode
out.FeatureGates = in.FeatureGates
out.ConntrackMaxPerCore = in.ConntrackMaxPerCore
out.ConntrackMin = in.ConntrackMin
return nil
}

Expand All @@ -2420,6 +2424,8 @@ func autoConvert_kops_KubeProxyConfig_To_v1alpha2_KubeProxyConfig(in *kops.KubeP
out.Enabled = in.Enabled
out.ProxyMode = in.ProxyMode
out.FeatureGates = in.FeatureGates
out.ConntrackMaxPerCore = in.ConntrackMaxPerCore
out.ConntrackMin = in.ConntrackMin
return nil
}

Expand Down
18 changes: 18 additions & 0 deletions pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go
Original file line number Diff line number Diff line change
Expand Up @@ -2229,6 +2229,24 @@ func (in *KubeProxyConfig) DeepCopyInto(out *KubeProxyConfig) {
(*out)[key] = val
}
}
if in.ConntrackMaxPerCore != nil {
in, out := &in.ConntrackMaxPerCore, &out.ConntrackMaxPerCore
if *in == nil {
*out = nil
} else {
*out = new(int32)
**out = **in
}
}
if in.ConntrackMin != nil {
in, out := &in.ConntrackMin, &out.ConntrackMin
if *in == nil {
*out = nil
} else {
*out = new(int32)
**out = **in
}
}
return
}

Expand Down
18 changes: 18 additions & 0 deletions pkg/apis/kops/zz_generated.deepcopy.go
Original file line number Diff line number Diff line change
Expand Up @@ -2408,6 +2408,24 @@ func (in *KubeProxyConfig) DeepCopyInto(out *KubeProxyConfig) {
(*out)[key] = val
}
}
if in.ConntrackMaxPerCore != nil {
in, out := &in.ConntrackMaxPerCore, &out.ConntrackMaxPerCore
if *in == nil {
*out = nil
} else {
*out = new(int32)
**out = **in
}
}
if in.ConntrackMin != nil {
in, out := &in.ConntrackMin, &out.ConntrackMin
if *in == nil {
*out = nil
} else {
*out = new(int32)
**out = **in
}
}
return
}

Expand Down

0 comments on commit b12c037

Please sign in to comment.