mirror of https://github.com/k3s-io/k3s
kube-proxy: allow running in userns
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>k3s-v1.14.6
parent
bfb3806701
commit
9c7db00892
|
@ -65,6 +65,7 @@ go_library(
|
||||||
"//staging/src/k8s.io/component-base/config:go_default_library",
|
"//staging/src/k8s.io/component-base/config:go_default_library",
|
||||||
"//staging/src/k8s.io/kube-proxy/config/v1alpha1:go_default_library",
|
"//staging/src/k8s.io/kube-proxy/config/v1alpha1:go_default_library",
|
||||||
"//vendor/github.com/fsnotify/fsnotify:go_default_library",
|
"//vendor/github.com/fsnotify/fsnotify:go_default_library",
|
||||||
|
"//vendor/github.com/opencontainers/runc/libcontainer/system:go_default_library",
|
||||||
"//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
|
"//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
|
||||||
"//vendor/github.com/spf13/cobra:go_default_library",
|
"//vendor/github.com/spf13/cobra:go_default_library",
|
||||||
"//vendor/github.com/spf13/pflag:go_default_library",
|
"//vendor/github.com/spf13/pflag:go_default_library",
|
||||||
|
|
|
@ -47,6 +47,7 @@ import (
|
||||||
utilnode "k8s.io/kubernetes/pkg/util/node"
|
utilnode "k8s.io/kubernetes/pkg/util/node"
|
||||||
utilsysctl "k8s.io/kubernetes/pkg/util/sysctl"
|
utilsysctl "k8s.io/kubernetes/pkg/util/sysctl"
|
||||||
"k8s.io/utils/exec"
|
"k8s.io/utils/exec"
|
||||||
|
rsystem "github.com/opencontainers/runc/libcontainer/system"
|
||||||
|
|
||||||
"k8s.io/klog"
|
"k8s.io/klog"
|
||||||
)
|
)
|
||||||
|
@ -230,6 +231,12 @@ func newProxyServer(
|
||||||
|
|
||||||
iptInterface.AddReloadFunc(proxier.Sync)
|
iptInterface.AddReloadFunc(proxier.Sync)
|
||||||
|
|
||||||
|
var connTracker Conntracker
|
||||||
|
if !rsystem.RunningInUserNS(){
|
||||||
|
// if we are in userns, sysctl does not work and connTracker should be kept nil
|
||||||
|
connTracker = &realConntracker{}
|
||||||
|
}
|
||||||
|
|
||||||
return &ProxyServer{
|
return &ProxyServer{
|
||||||
Client: client,
|
Client: client,
|
||||||
EventClient: eventClient,
|
EventClient: eventClient,
|
||||||
|
@ -241,7 +248,7 @@ func newProxyServer(
|
||||||
Broadcaster: eventBroadcaster,
|
Broadcaster: eventBroadcaster,
|
||||||
Recorder: recorder,
|
Recorder: recorder,
|
||||||
ConntrackConfiguration: config.Conntrack,
|
ConntrackConfiguration: config.Conntrack,
|
||||||
Conntracker: &realConntracker{},
|
Conntracker: connTracker,
|
||||||
ProxyMode: proxyMode,
|
ProxyMode: proxyMode,
|
||||||
NodeRef: nodeRef,
|
NodeRef: nodeRef,
|
||||||
MetricsBindAddress: config.MetricsBindAddress,
|
MetricsBindAddress: config.MetricsBindAddress,
|
||||||
|
|
|
@ -33,6 +33,7 @@ go_library(
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
|
||||||
"//vendor/k8s.io/klog:go_default_library",
|
"//vendor/k8s.io/klog:go_default_library",
|
||||||
|
"//vendor/github.com/opencontainers/runc/libcontainer/system:go_default_library",
|
||||||
"//vendor/k8s.io/utils/exec:go_default_library",
|
"//vendor/k8s.io/utils/exec:go_default_library",
|
||||||
] + select({
|
] + select({
|
||||||
"@io_bazel_rules_go//go/platform:android": [
|
"@io_bazel_rules_go//go/platform:android": [
|
||||||
|
|
|
@ -25,6 +25,7 @@ import (
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
rsystem "github.com/opencontainers/runc/libcontainer/system"
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
utilerrors "k8s.io/apimachinery/pkg/util/errors"
|
utilerrors "k8s.io/apimachinery/pkg/util/errors"
|
||||||
|
@ -179,7 +180,10 @@ func NewCustomProxier(loadBalancer LoadBalancer, listenIP net.IP, iptables iptab
|
||||||
|
|
||||||
err = setRLimit(64 * 1000)
|
err = setRLimit(64 * 1000)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to set open file handler limit: %v", err)
|
if !rsystem.RunningInUserNS() {
|
||||||
|
return nil, fmt.Errorf("failed to set open file handler limit to 64000: %v", err)
|
||||||
|
}
|
||||||
|
klog.Errorf("failed to set open file handler limit to 64000: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
proxyPorts := newPortAllocator(pr)
|
proxyPorts := newPortAllocator(pr)
|
||||||
|
|
Loading…
Reference in New Issue