Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
6573b800
Commit
6573b800
authored
Mar 07, 2019
by
Darren Shepherd
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Usernetes
parent
652e3de3
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
81 additions
and
21 deletions
+81
-21
server_others.go
cmd/kube-proxy/app/server_others.go
+8
-1
cgroup_manager_linux.go
pkg/kubelet/cm/cgroup_manager_linux.go
+7
-3
container_manager_linux.go
pkg/kubelet/cm/container_manager_linux.go
+15
-3
qos_container_manager_linux.go
pkg/kubelet/cm/qos_container_manager_linux.go
+15
-4
container_manager_linux.go
pkg/kubelet/dockershim/cm/container_manager_linux.go
+5
-1
docker_sandbox.go
pkg/kubelet/dockershim/docker_sandbox.go
+9
-5
kubelet.go
pkg/kubelet/kubelet.go
+8
-2
summary.go
pkg/kubelet/server/stats/summary.go
+9
-1
proxier.go
pkg/proxy/userspace/proxier.go
+5
-1
No files found.
cmd/kube-proxy/app/server_others.go
View file @
6573b800
...
@@ -47,6 +47,7 @@ import (
...
@@ -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"
)
)
...
@@ -258,6 +259,12 @@ func newProxyServer(
...
@@ -258,6 +259,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
,
...
@@ -269,7 +276,7 @@ func newProxyServer(
...
@@ -269,7 +276,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
,
...
...
pkg/kubelet/cm/cgroup_manager_linux.go
View file @
6573b800
...
@@ -28,6 +28,7 @@ import (
...
@@ -28,6 +28,7 @@ import (
libcontainercgroups
"github.com/opencontainers/runc/libcontainer/cgroups"
libcontainercgroups
"github.com/opencontainers/runc/libcontainer/cgroups"
cgroupfs
"github.com/opencontainers/runc/libcontainer/cgroups/fs"
cgroupfs
"github.com/opencontainers/runc/libcontainer/cgroups/fs"
libcontainerconfigs
"github.com/opencontainers/runc/libcontainer/configs"
libcontainerconfigs
"github.com/opencontainers/runc/libcontainer/configs"
rsystem
"github.com/opencontainers/runc/libcontainer/system"
"k8s.io/klog"
"k8s.io/klog"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/sets"
...
@@ -97,8 +98,9 @@ func (l *libcontainerAdapter) newManager(cgroups *libcontainerconfigs.Cgroup, pa
...
@@ -97,8 +98,9 @@ func (l *libcontainerAdapter) newManager(cgroups *libcontainerconfigs.Cgroup, pa
switch
l
.
cgroupManagerType
{
switch
l
.
cgroupManagerType
{
case
libcontainerCgroupfs
:
case
libcontainerCgroupfs
:
return
&
cgroupfs
.
Manager
{
return
&
cgroupfs
.
Manager
{
Cgroups
:
cgroups
,
Cgroups
:
cgroups
,
Paths
:
paths
,
Rootless
:
rsystem
.
RunningInUserNS
(),
Paths
:
paths
,
},
nil
},
nil
}
}
return
nil
,
fmt
.
Errorf
(
"invalid cgroup manager configuration"
)
return
nil
,
fmt
.
Errorf
(
"invalid cgroup manager configuration"
)
...
@@ -368,7 +370,9 @@ func (m *cgroupManagerImpl) Create(cgroupConfig *CgroupConfig) error {
...
@@ -368,7 +370,9 @@ func (m *cgroupManagerImpl) Create(cgroupConfig *CgroupConfig) error {
// in the tasks file. We use the function to create all the required
// in the tasks file. We use the function to create all the required
// cgroup files but not attach any "real" pid to the cgroup.
// cgroup files but not attach any "real" pid to the cgroup.
if
err
:=
manager
.
Apply
(
-
1
);
err
!=
nil
{
if
err
:=
manager
.
Apply
(
-
1
);
err
!=
nil
{
return
err
if
!
rsystem
.
RunningInUserNS
()
{
return
err
}
}
}
// it may confuse why we call set after we do apply, but the issue is that runc
// it may confuse why we call set after we do apply, but the issue is that runc
...
...
pkg/kubelet/cm/container_manager_linux.go
View file @
6573b800
...
@@ -32,6 +32,7 @@ import (
...
@@ -32,6 +32,7 @@ import (
"github.com/opencontainers/runc/libcontainer/cgroups"
"github.com/opencontainers/runc/libcontainer/cgroups"
"github.com/opencontainers/runc/libcontainer/cgroups/fs"
"github.com/opencontainers/runc/libcontainer/cgroups/fs"
"github.com/opencontainers/runc/libcontainer/configs"
"github.com/opencontainers/runc/libcontainer/configs"
rsystem
"github.com/opencontainers/runc/libcontainer/system"
"k8s.io/klog"
"k8s.io/klog"
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
...
@@ -375,7 +376,11 @@ func setupKernelTunables(option KernelTunableBehavior) error {
...
@@ -375,7 +376,11 @@ func setupKernelTunables(option KernelTunableBehavior) error {
klog
.
V
(
2
)
.
Infof
(
"Updating kernel flag: %v, expected value: %v, actual value: %v"
,
flag
,
expectedValue
,
val
)
klog
.
V
(
2
)
.
Infof
(
"Updating kernel flag: %v, expected value: %v, actual value: %v"
,
flag
,
expectedValue
,
val
)
err
=
sysctl
.
SetSysctl
(
flag
,
expectedValue
)
err
=
sysctl
.
SetSysctl
(
flag
,
expectedValue
)
if
err
!=
nil
{
if
err
!=
nil
{
errList
=
append
(
errList
,
err
)
if
rsystem
.
RunningInUserNS
()
{
klog
.
Warningf
(
"Updating kernel flag failed: %v: %v"
,
flag
,
err
)
}
else
{
errList
=
append
(
errList
,
err
)
}
}
}
}
}
}
}
...
@@ -461,13 +466,20 @@ func (cm *containerManagerImpl) setupNode(activePods ActivePodsFunc) error {
...
@@ -461,13 +466,20 @@ func (cm *containerManagerImpl) setupNode(activePods ActivePodsFunc) error {
},
},
}
}
cont
.
ensureStateFunc
=
func
(
_
*
fs
.
Manager
)
error
{
cont
.
ensureStateFunc
=
func
(
_
*
fs
.
Manager
)
error
{
return
ensureProcessInContainerWithOOMScore
(
os
.
Getpid
(),
qos
.
KubeletOOMScoreAdj
,
&
manager
)
err
:=
ensureProcessInContainerWithOOMScore
(
os
.
Getpid
(),
qos
.
KubeletOOMScoreAdj
,
&
manager
)
if
rsystem
.
RunningInUserNS
()
{
// if we are in userns, cgroups might not be available
err
=
nil
}
return
err
}
}
systemContainers
=
append
(
systemContainers
,
cont
)
systemContainers
=
append
(
systemContainers
,
cont
)
}
else
{
}
else
{
cm
.
periodicTasks
=
append
(
cm
.
periodicTasks
,
func
()
{
cm
.
periodicTasks
=
append
(
cm
.
periodicTasks
,
func
()
{
if
err
:=
ensureProcessInContainerWithOOMScore
(
os
.
Getpid
(),
qos
.
KubeletOOMScoreAdj
,
nil
);
err
!=
nil
{
if
err
:=
ensureProcessInContainerWithOOMScore
(
os
.
Getpid
(),
qos
.
KubeletOOMScoreAdj
,
nil
);
err
!=
nil
{
klog
.
Error
(
err
)
if
!
rsystem
.
RunningInUserNS
()
{
klog
.
Error
(
err
)
}
return
return
}
}
cont
,
err
:=
getContainer
(
os
.
Getpid
())
cont
,
err
:=
getContainer
(
os
.
Getpid
())
...
...
pkg/kubelet/cm/qos_container_manager_linux.go
View file @
6573b800
...
@@ -28,6 +28,7 @@ import (
...
@@ -28,6 +28,7 @@ import (
units
"github.com/docker/go-units"
units
"github.com/docker/go-units"
cgroupfs
"github.com/opencontainers/runc/libcontainer/cgroups/fs"
cgroupfs
"github.com/opencontainers/runc/libcontainer/cgroups/fs"
rsystem
"github.com/opencontainers/runc/libcontainer/system"
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
utilfeature
"k8s.io/apiserver/pkg/util/feature"
utilfeature
"k8s.io/apiserver/pkg/util/feature"
"k8s.io/kubernetes/pkg/api/v1/resource"
"k8s.io/kubernetes/pkg/api/v1/resource"
...
@@ -82,7 +83,9 @@ func (m *qosContainerManagerImpl) Start(getNodeAllocatable func() v1.ResourceLis
...
@@ -82,7 +83,9 @@ func (m *qosContainerManagerImpl) Start(getNodeAllocatable func() v1.ResourceLis
cm
:=
m
.
cgroupManager
cm
:=
m
.
cgroupManager
rootContainer
:=
m
.
cgroupRoot
rootContainer
:=
m
.
cgroupRoot
if
!
cm
.
Exists
(
rootContainer
)
{
if
!
cm
.
Exists
(
rootContainer
)
{
return
fmt
.
Errorf
(
"root container %v doesn't exist"
,
rootContainer
)
if
!
rsystem
.
RunningInUserNS
()
{
return
fmt
.
Errorf
(
"root container %v doesn't exist"
,
rootContainer
)
}
}
}
// Top level for Qos containers are created only for Burstable
// Top level for Qos containers are created only for Burstable
...
@@ -296,15 +299,23 @@ func (m *qosContainerManagerImpl) UpdateCgroups() error {
...
@@ -296,15 +299,23 @@ func (m *qosContainerManagerImpl) UpdateCgroups() error {
}
}
}
}
updateSuccess
:=
true
for
_
,
config
:=
range
qosConfigs
{
for
_
,
config
:=
range
qosConfigs
{
err
:=
m
.
cgroupManager
.
Update
(
config
)
err
:=
m
.
cgroupManager
.
Update
(
config
)
if
err
!=
nil
{
if
err
!=
nil
{
klog
.
Errorf
(
"[ContainerManager]: Failed to update QoS cgroup configuration"
)
if
rsystem
.
RunningInUserNS
()
{
return
err
// if we are in userns, cgroups might not available
updateSuccess
=
false
}
else
{
klog
.
Errorf
(
"[ContainerManager]: Failed to update QoS cgroup configuration"
)
return
err
}
}
}
}
}
klog
.
V
(
4
)
.
Infof
(
"[ContainerManager]: Updated QoS cgroup configuration"
)
if
updateSuccess
{
klog
.
V
(
4
)
.
Infof
(
"[ContainerManager]: Updated QoS cgroup configuration"
)
}
return
nil
return
nil
}
}
...
...
pkg/kubelet/dockershim/cm/container_manager_linux.go
View file @
6573b800
...
@@ -27,6 +27,7 @@ import (
...
@@ -27,6 +27,7 @@ import (
"github.com/opencontainers/runc/libcontainer/cgroups/fs"
"github.com/opencontainers/runc/libcontainer/cgroups/fs"
"github.com/opencontainers/runc/libcontainer/configs"
"github.com/opencontainers/runc/libcontainer/configs"
rsystem
"github.com/opencontainers/runc/libcontainer/system"
utilversion
"k8s.io/apimachinery/pkg/util/version"
utilversion
"k8s.io/apimachinery/pkg/util/version"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/klog"
"k8s.io/klog"
...
@@ -95,7 +96,10 @@ func (m *containerManager) doWork() {
...
@@ -95,7 +96,10 @@ func (m *containerManager) doWork() {
// 1. Ensure processes run in the cgroups if m.cgroupsManager is not nil.
// 1. Ensure processes run in the cgroups if m.cgroupsManager is not nil.
// 2. Ensure processes have the OOM score applied.
// 2. Ensure processes have the OOM score applied.
if
err
:=
kubecm
.
EnsureDockerInContainer
(
version
,
dockerOOMScoreAdj
,
m
.
cgroupsManager
);
err
!=
nil
{
if
err
:=
kubecm
.
EnsureDockerInContainer
(
version
,
dockerOOMScoreAdj
,
m
.
cgroupsManager
);
err
!=
nil
{
klog
.
Errorf
(
"Unable to ensure the docker processes run in the desired containers: %v"
,
err
)
// if we are in userns, the operation is likely to fail, unless cgroupfs is properly chown-ed.
if
!
rsystem
.
RunningInUserNS
()
{
klog
.
Errorf
(
"Unable to ensure the docker processes run in the desired containers: %v"
,
err
)
}
}
}
}
}
...
...
pkg/kubelet/dockershim/docker_sandbox.go
View file @
6573b800
...
@@ -27,6 +27,8 @@ import (
...
@@ -27,6 +27,8 @@ import (
dockertypes
"github.com/docker/docker/api/types"
dockertypes
"github.com/docker/docker/api/types"
dockercontainer
"github.com/docker/docker/api/types/container"
dockercontainer
"github.com/docker/docker/api/types/container"
dockerfilters
"github.com/docker/docker/api/types/filters"
dockerfilters
"github.com/docker/docker/api/types/filters"
rsystem
"github.com/opencontainers/runc/libcontainer/system"
utilerrors
"k8s.io/apimachinery/pkg/util/errors"
utilerrors
"k8s.io/apimachinery/pkg/util/errors"
"k8s.io/klog"
"k8s.io/klog"
runtimeapi
"k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2"
runtimeapi
"k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2"
...
@@ -535,11 +537,13 @@ func (ds *dockerService) ListPodSandbox(_ context.Context, r *runtimeapi.ListPod
...
@@ -535,11 +537,13 @@ func (ds *dockerService) ListPodSandbox(_ context.Context, r *runtimeapi.ListPod
checkpoint
:=
NewPodSandboxCheckpoint
(
""
,
""
,
&
CheckpointData
{})
checkpoint
:=
NewPodSandboxCheckpoint
(
""
,
""
,
&
CheckpointData
{})
err
:=
ds
.
checkpointManager
.
GetCheckpoint
(
id
,
checkpoint
)
err
:=
ds
.
checkpointManager
.
GetCheckpoint
(
id
,
checkpoint
)
if
err
!=
nil
{
if
err
!=
nil
{
klog
.
Errorf
(
"Failed to retrieve checkpoint for sandbox %q: %v"
,
id
,
err
)
if
!
rsystem
.
RunningInUserNS
()
{
if
err
==
errors
.
ErrCorruptCheckpoint
{
klog
.
Errorf
(
"Failed to retrieve checkpoint for sandbox %q: %v"
,
id
,
err
)
err
=
ds
.
checkpointManager
.
RemoveCheckpoint
(
id
)
if
err
==
errors
.
ErrCorruptCheckpoint
{
if
err
!=
nil
{
err
=
ds
.
checkpointManager
.
RemoveCheckpoint
(
id
)
klog
.
Errorf
(
"Failed to delete corrupt checkpoint for sandbox %q: %v"
,
id
,
err
)
if
err
!=
nil
{
klog
.
Errorf
(
"Failed to delete corrupt checkpoint for sandbox %q: %v"
,
id
,
err
)
}
}
}
}
}
continue
continue
...
...
pkg/kubelet/kubelet.go
View file @
6573b800
...
@@ -32,6 +32,7 @@ import (
...
@@ -32,6 +32,7 @@ import (
cadvisorapi
"github.com/google/cadvisor/info/v1"
cadvisorapi
"github.com/google/cadvisor/info/v1"
cadvisorapiv2
"github.com/google/cadvisor/info/v2"
cadvisorapiv2
"github.com/google/cadvisor/info/v2"
rsystem
"github.com/opencontainers/runc/libcontainer/system"
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/fields"
"k8s.io/apimachinery/pkg/fields"
...
@@ -1514,10 +1515,13 @@ func (kl *Kubelet) syncPod(o syncPodOptions) error {
...
@@ -1514,10 +1515,13 @@ func (kl *Kubelet) syncPod(o syncPodOptions) error {
break
break
}
}
}
}
// TODO(AkihiroSuda): implement rootless cgroup manager that can emulate Exists() properly
// Don't kill containers in pod if pod's cgroups already
// Don't kill containers in pod if pod's cgroups already
// exists or the pod is running for the first time
// exists or the pod is running for the first time
podKilled
:=
false
podKilled
:=
false
if
!
pcm
.
Exists
(
pod
)
&&
!
firstSync
{
if
!
pcm
.
Exists
(
pod
)
&&
!
firstSync
&&
!
rsystem
.
RunningInUserNS
()
{
if
err
:=
kl
.
killPod
(
pod
,
nil
,
podStatus
,
nil
);
err
==
nil
{
if
err
:=
kl
.
killPod
(
pod
,
nil
,
podStatus
,
nil
);
err
==
nil
{
podKilled
=
true
podKilled
=
true
}
}
...
@@ -1536,7 +1540,9 @@ func (kl *Kubelet) syncPod(o syncPodOptions) error {
...
@@ -1536,7 +1540,9 @@ func (kl *Kubelet) syncPod(o syncPodOptions) error {
}
}
if
err
:=
pcm
.
EnsureExists
(
pod
);
err
!=
nil
{
if
err
:=
pcm
.
EnsureExists
(
pod
);
err
!=
nil
{
kl
.
recorder
.
Eventf
(
pod
,
v1
.
EventTypeWarning
,
events
.
FailedToCreatePodContainer
,
"unable to ensure pod container exists: %v"
,
err
)
kl
.
recorder
.
Eventf
(
pod
,
v1
.
EventTypeWarning
,
events
.
FailedToCreatePodContainer
,
"unable to ensure pod container exists: %v"
,
err
)
return
fmt
.
Errorf
(
"failed to ensure that the pod: %v cgroups exist and are correctly applied: %v"
,
pod
.
UID
,
err
)
if
!
rsystem
.
RunningInUserNS
()
{
return
fmt
.
Errorf
(
"failed to ensure that the pod: %v cgroups exist and are correctly applied: %v"
,
pod
.
UID
,
err
)
}
}
}
}
}
}
}
...
...
pkg/kubelet/server/stats/summary.go
View file @
6573b800
...
@@ -21,7 +21,9 @@ import (
...
@@ -21,7 +21,9 @@ import (
"k8s.io/klog"
"k8s.io/klog"
rsystem
"github.com/opencontainers/runc/libcontainer/system"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
statsapi
"k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1"
statsapi
"k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1"
"k8s.io/kubernetes/pkg/kubelet/util"
"k8s.io/kubernetes/pkg/kubelet/util"
)
)
...
@@ -73,7 +75,13 @@ func (sp *summaryProviderImpl) Get(updateStats bool) (*statsapi.Summary, error)
...
@@ -73,7 +75,13 @@ func (sp *summaryProviderImpl) Get(updateStats bool) (*statsapi.Summary, error)
nodeConfig
:=
sp
.
provider
.
GetNodeConfig
()
nodeConfig
:=
sp
.
provider
.
GetNodeConfig
()
rootStats
,
networkStats
,
err
:=
sp
.
provider
.
GetCgroupStats
(
"/"
,
updateStats
)
rootStats
,
networkStats
,
err
:=
sp
.
provider
.
GetCgroupStats
(
"/"
,
updateStats
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"failed to get root cgroup stats: %v"
,
err
)
if
!
rsystem
.
RunningInUserNS
()
{
return
nil
,
fmt
.
Errorf
(
"failed to get root cgroup stats: %v"
,
err
)
}
// if we are in userns, cgroups might not be available
klog
.
Errorf
(
"failed to get root cgroup stats: %v"
,
err
)
rootStats
=
&
statsapi
.
ContainerStats
{}
networkStats
=
&
statsapi
.
NetworkStats
{}
}
}
rootFsStats
,
err
:=
sp
.
provider
.
RootFsStats
()
rootFsStats
,
err
:=
sp
.
provider
.
RootFsStats
()
if
err
!=
nil
{
if
err
!=
nil
{
...
...
pkg/proxy/userspace/proxier.go
View file @
6573b800
...
@@ -25,6 +25,7 @@ import (
...
@@ -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
...
@@ -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
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment