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
0f785dcb
Commit
0f785dcb
authored
Dec 27, 2018
by
Darren Shepherd
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove KubeletPodResources
parent
2e6c1e58
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
1 addition
and
513 deletions
+1
-513
server.go
cmd/kubelet/app/server.go
+0
-3
kube_features.go
pkg/features/kube_features.go
+0
-7
BUILD
pkg/kubelet/apis/podresources/BUILD
+0
-48
client.go
pkg/kubelet/apis/podresources/client.go
+0
-44
constants.go
pkg/kubelet/apis/podresources/constants.go
+0
-22
server.go
pkg/kubelet/apis/podresources/server.go
+0
-75
server_test.go
pkg/kubelet/apis/podresources/server_test.go
+0
-153
BUILD
pkg/kubelet/apis/podresources/v1alpha1/BUILD
+0
-28
api.pb.go
pkg/kubelet/apis/podresources/v1alpha1/api.pb.go
+0
-0
api.proto
pkg/kubelet/apis/podresources/v1alpha1/api.proto
+0
-49
container_manager.go
pkg/kubelet/cm/container_manager.go
+0
-4
container_manager_linux.go
pkg/kubelet/cm/container_manager_linux.go
+0
-5
container_manager_stub.go
pkg/kubelet/cm/container_manager_stub.go
+0
-5
manager.go
pkg/kubelet/cm/devicemanager/manager.go
+0
-8
manager_stub.go
pkg/kubelet/cm/devicemanager/manager_stub.go
+0
-6
pod_devices.go
pkg/kubelet/cm/devicemanager/pod_devices.go
+0
-19
types.go
pkg/kubelet/cm/devicemanager/types.go
+0
-4
defaults.go
pkg/kubelet/config/defaults.go
+0
-1
kubelet.go
pkg/kubelet/kubelet.go
+1
-12
kubelet_getters.go
pkg/kubelet/kubelet_getters.go
+0
-5
server.go
pkg/kubelet/server/server.go
+0
-15
No files found.
cmd/kubelet/app/server.go
View file @
0f785dcb
...
@@ -1008,9 +1008,6 @@ func startKubelet(k kubelet.Bootstrap, podCfg *config.PodConfig, kubeCfg *kubele
...
@@ -1008,9 +1008,6 @@ func startKubelet(k kubelet.Bootstrap, podCfg *config.PodConfig, kubeCfg *kubele
if
kubeCfg
.
ReadOnlyPort
>
0
{
if
kubeCfg
.
ReadOnlyPort
>
0
{
go
k
.
ListenAndServeReadOnly
(
net
.
ParseIP
(
kubeCfg
.
Address
),
uint
(
kubeCfg
.
ReadOnlyPort
))
go
k
.
ListenAndServeReadOnly
(
net
.
ParseIP
(
kubeCfg
.
Address
),
uint
(
kubeCfg
.
ReadOnlyPort
))
}
}
if
utilfeature
.
DefaultFeatureGate
.
Enabled
(
features
.
KubeletPodResources
)
{
go
k
.
ListenAndServePodResources
()
}
}
}
func
CreateAndInitKubelet
(
kubeCfg
*
kubeletconfiginternal
.
KubeletConfiguration
,
func
CreateAndInitKubelet
(
kubeCfg
*
kubeletconfiginternal
.
KubeletConfiguration
,
...
...
pkg/features/kube_features.go
View file @
0f785dcb
...
@@ -242,12 +242,6 @@ const (
...
@@ -242,12 +242,6 @@ const (
//
//
// Enable resource quota scope selectors
// Enable resource quota scope selectors
ResourceQuotaScopeSelectors
utilfeature
.
Feature
=
"ResourceQuotaScopeSelectors"
ResourceQuotaScopeSelectors
utilfeature
.
Feature
=
"ResourceQuotaScopeSelectors"
// owner: @dashpole
// alpha: v1.13
//
// Enables the kubelet's pod resources grpc endpoint
KubeletPodResources
utilfeature
.
Feature
=
"KubeletPodResources"
)
)
func
init
()
{
func
init
()
{
...
@@ -292,7 +286,6 @@ var defaultKubernetesFeatureGates = map[utilfeature.Feature]utilfeature.FeatureS
...
@@ -292,7 +286,6 @@ var defaultKubernetesFeatureGates = map[utilfeature.Feature]utilfeature.FeatureS
PodReadinessGates
:
{
Default
:
true
,
PreRelease
:
utilfeature
.
Beta
},
PodReadinessGates
:
{
Default
:
true
,
PreRelease
:
utilfeature
.
Beta
},
KubeletPluginsWatcher
:
{
Default
:
true
,
PreRelease
:
utilfeature
.
GA
},
KubeletPluginsWatcher
:
{
Default
:
true
,
PreRelease
:
utilfeature
.
GA
},
ResourceQuotaScopeSelectors
:
{
Default
:
true
,
PreRelease
:
utilfeature
.
Beta
},
ResourceQuotaScopeSelectors
:
{
Default
:
true
,
PreRelease
:
utilfeature
.
Beta
},
KubeletPodResources
:
{
Default
:
false
,
PreRelease
:
utilfeature
.
Alpha
},
// inherited features from generic apiserver, relisted here to get a conflict if it is changed
// inherited features from generic apiserver, relisted here to get a conflict if it is changed
// unintentionally on either side:
// unintentionally on either side:
...
...
pkg/kubelet/apis/podresources/BUILD
deleted
100644 → 0
View file @
2e6c1e58
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
go_library(
name = "go_default_library",
srcs = [
"client.go",
"constants.go",
"server.go",
],
importpath = "k8s.io/kubernetes/pkg/kubelet/apis/podresources",
visibility = ["//visibility:public"],
deps = [
"//pkg/kubelet/apis/podresources/v1alpha1:go_default_library",
"//pkg/kubelet/util:go_default_library",
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//vendor/google.golang.org/grpc:go_default_library",
],
)
go_test(
name = "go_default_test",
srcs = ["server_test.go"],
embed = [":go_default_library"],
deps = [
"//pkg/kubelet/apis/podresources/v1alpha1:go_default_library",
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
"//vendor/github.com/stretchr/testify/mock:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [
":package-srcs",
"//pkg/kubelet/apis/podresources/v1alpha1:all-srcs",
],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
pkg/kubelet/apis/podresources/client.go
deleted
100644 → 0
View file @
2e6c1e58
/*
Copyright 2018 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
podresources
import
(
"context"
"fmt"
"time"
"google.golang.org/grpc"
podresourcesapi
"k8s.io/kubernetes/pkg/kubelet/apis/podresources/v1alpha1"
"k8s.io/kubernetes/pkg/kubelet/util"
)
// GetClient returns a client for the PodResourcesLister grpc service
func
GetClient
(
socket
string
,
connectionTimeout
time
.
Duration
,
maxMsgSize
int
)
(
podresourcesapi
.
PodResourcesListerClient
,
*
grpc
.
ClientConn
,
error
)
{
addr
,
dialer
,
err
:=
util
.
GetAddressAndDialer
(
socket
)
if
err
!=
nil
{
return
nil
,
nil
,
err
}
ctx
,
cancel
:=
context
.
WithTimeout
(
context
.
Background
(),
connectionTimeout
)
defer
cancel
()
conn
,
err
:=
grpc
.
DialContext
(
ctx
,
addr
,
grpc
.
WithInsecure
(),
grpc
.
WithDialer
(
dialer
),
grpc
.
WithDefaultCallOptions
(
grpc
.
MaxCallRecvMsgSize
(
maxMsgSize
)))
if
err
!=
nil
{
return
nil
,
nil
,
fmt
.
Errorf
(
"Error dialing socket %s: %v"
,
socket
,
err
)
}
return
podresourcesapi
.
NewPodResourcesListerClient
(
conn
),
conn
,
nil
}
pkg/kubelet/apis/podresources/constants.go
deleted
100644 → 0
View file @
2e6c1e58
/*
Copyright 2018 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
podresources
const
(
// Socket is the name of the podresources server socket
Socket
=
"kubelet"
)
pkg/kubelet/apis/podresources/server.go
deleted
100644 → 0
View file @
2e6c1e58
/*
Copyright 2018 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
podresources
import
(
"context"
"k8s.io/api/core/v1"
"k8s.io/kubernetes/pkg/kubelet/apis/podresources/v1alpha1"
)
// DevicesProvider knows how to provide the devices used by the given container
type
DevicesProvider
interface
{
GetDevices
(
podUID
,
containerName
string
)
[]
*
v1alpha1
.
ContainerDevices
}
// PodsProvider knows how to provide the pods admitted by the node
type
PodsProvider
interface
{
GetPods
()
[]
*
v1
.
Pod
}
// podResourcesServer implements PodResourcesListerServer
type
podResourcesServer
struct
{
podsProvider
PodsProvider
devicesProvider
DevicesProvider
}
// NewPodResourcesServer returns a PodResourcesListerServer which lists pods provided by the PodsProvider
// with device information provided by the DevicesProvider
func
NewPodResourcesServer
(
podsProvider
PodsProvider
,
devicesProvider
DevicesProvider
)
v1alpha1
.
PodResourcesListerServer
{
return
&
podResourcesServer
{
podsProvider
:
podsProvider
,
devicesProvider
:
devicesProvider
,
}
}
// List returns information about the resources assigned to pods on the node
func
(
p
*
podResourcesServer
)
List
(
ctx
context
.
Context
,
req
*
v1alpha1
.
ListPodResourcesRequest
)
(
*
v1alpha1
.
ListPodResourcesResponse
,
error
)
{
pods
:=
p
.
podsProvider
.
GetPods
()
podResources
:=
make
([]
*
v1alpha1
.
PodResources
,
len
(
pods
))
for
i
,
pod
:=
range
pods
{
pRes
:=
v1alpha1
.
PodResources
{
Name
:
pod
.
Name
,
Namespace
:
pod
.
Namespace
,
Containers
:
make
([]
*
v1alpha1
.
ContainerResources
,
len
(
pod
.
Spec
.
Containers
)),
}
for
j
,
container
:=
range
pod
.
Spec
.
Containers
{
pRes
.
Containers
[
j
]
=
&
v1alpha1
.
ContainerResources
{
Name
:
container
.
Name
,
Devices
:
p
.
devicesProvider
.
GetDevices
(
string
(
pod
.
UID
),
container
.
Name
),
}
}
podResources
[
i
]
=
&
pRes
}
return
&
v1alpha1
.
ListPodResourcesResponse
{
PodResources
:
podResources
,
},
nil
}
pkg/kubelet/apis/podresources/server_test.go
deleted
100644 → 0
View file @
2e6c1e58
/*
Copyright 2018 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
podresources
import
(
"context"
"testing"
"github.com/stretchr/testify/mock"
"k8s.io/api/core/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/kubernetes/pkg/kubelet/apis/podresources/v1alpha1"
)
type
mockProvider
struct
{
mock
.
Mock
}
func
(
m
*
mockProvider
)
GetPods
()
[]
*
v1
.
Pod
{
args
:=
m
.
Called
()
return
args
.
Get
(
0
)
.
([]
*
v1
.
Pod
)
}
func
(
m
*
mockProvider
)
GetDevices
(
podUID
,
containerName
string
)
[]
*
v1alpha1
.
ContainerDevices
{
args
:=
m
.
Called
(
podUID
,
containerName
)
return
args
.
Get
(
0
)
.
([]
*
v1alpha1
.
ContainerDevices
)
}
func
TestListPodResources
(
t
*
testing
.
T
)
{
podName
:=
"pod-name"
podNamespace
:=
"pod-namespace"
podUID
:=
types
.
UID
(
"pod-uid"
)
containerName
:=
"container-name"
devs
:=
[]
*
v1alpha1
.
ContainerDevices
{
{
ResourceName
:
"resource"
,
DeviceIds
:
[]
string
{
"dev0"
,
"dev1"
},
},
}
for
_
,
tc
:=
range
[]
struct
{
desc
string
pods
[]
*
v1
.
Pod
devices
[]
*
v1alpha1
.
ContainerDevices
expectedResponse
*
v1alpha1
.
ListPodResourcesResponse
}{
{
desc
:
"no pods"
,
pods
:
[]
*
v1
.
Pod
{},
devices
:
[]
*
v1alpha1
.
ContainerDevices
{},
expectedResponse
:
&
v1alpha1
.
ListPodResourcesResponse
{},
},
{
desc
:
"pod without devices"
,
pods
:
[]
*
v1
.
Pod
{
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
podName
,
Namespace
:
podNamespace
,
UID
:
podUID
,
},
Spec
:
v1
.
PodSpec
{
Containers
:
[]
v1
.
Container
{
{
Name
:
containerName
,
},
},
},
},
},
devices
:
[]
*
v1alpha1
.
ContainerDevices
{},
expectedResponse
:
&
v1alpha1
.
ListPodResourcesResponse
{
PodResources
:
[]
*
v1alpha1
.
PodResources
{
{
Name
:
podName
,
Namespace
:
podNamespace
,
Containers
:
[]
*
v1alpha1
.
ContainerResources
{
{
Name
:
containerName
,
Devices
:
[]
*
v1alpha1
.
ContainerDevices
{},
},
},
},
},
},
},
{
desc
:
"pod with devices"
,
pods
:
[]
*
v1
.
Pod
{
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
podName
,
Namespace
:
podNamespace
,
UID
:
podUID
,
},
Spec
:
v1
.
PodSpec
{
Containers
:
[]
v1
.
Container
{
{
Name
:
containerName
,
},
},
},
},
},
devices
:
devs
,
expectedResponse
:
&
v1alpha1
.
ListPodResourcesResponse
{
PodResources
:
[]
*
v1alpha1
.
PodResources
{
{
Name
:
podName
,
Namespace
:
podNamespace
,
Containers
:
[]
*
v1alpha1
.
ContainerResources
{
{
Name
:
containerName
,
Devices
:
devs
,
},
},
},
},
},
},
}
{
t
.
Run
(
tc
.
desc
,
func
(
t
*
testing
.
T
)
{
m
:=
new
(
mockProvider
)
m
.
On
(
"GetPods"
)
.
Return
(
tc
.
pods
)
m
.
On
(
"GetDevices"
,
string
(
podUID
),
containerName
)
.
Return
(
tc
.
devices
)
server
:=
NewPodResourcesServer
(
m
,
m
)
resp
,
err
:=
server
.
List
(
context
.
TODO
(),
&
v1alpha1
.
ListPodResourcesRequest
{})
if
err
!=
nil
{
t
.
Errorf
(
"want err = %v, got %q"
,
nil
,
err
)
}
if
tc
.
expectedResponse
.
String
()
!=
resp
.
String
()
{
t
.
Errorf
(
"want resp = %s, got %s"
,
tc
.
expectedResponse
.
String
(),
resp
.
String
())
}
})
}
}
pkg/kubelet/apis/podresources/v1alpha1/BUILD
deleted
100644 → 0
View file @
2e6c1e58
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["api.pb.go"],
importpath = "k8s.io/kubernetes/pkg/kubelet/apis/podresources/v1alpha1",
visibility = ["//visibility:public"],
deps = [
"//vendor/github.com/gogo/protobuf/gogoproto:go_default_library",
"//vendor/github.com/gogo/protobuf/proto:go_default_library",
"//vendor/golang.org/x/net/context:go_default_library",
"//vendor/google.golang.org/grpc:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
pkg/kubelet/apis/podresources/v1alpha1/api.pb.go
deleted
100644 → 0
View file @
2e6c1e58
This diff is collapsed.
Click to expand it.
pkg/kubelet/apis/podresources/v1alpha1/api.proto
deleted
100644 → 0
View file @
2e6c1e58
// To regenerate api.pb.go run hack/update-generated-pod-resources.sh
syntax
=
'proto3'
;
package
v1alpha1
;
import
"github.com/gogo/protobuf/gogoproto/gogo.proto"
;
option
(
gogoproto.goproto_stringer_all
)
=
false
;
option
(
gogoproto.stringer_all
)
=
true
;
option
(
gogoproto.goproto_getters_all
)
=
true
;
option
(
gogoproto.marshaler_all
)
=
true
;
option
(
gogoproto.sizer_all
)
=
true
;
option
(
gogoproto.unmarshaler_all
)
=
true
;
option
(
gogoproto.goproto_unrecognized_all
)
=
false
;
// PodResourcesLister is a service provided by the kubelet that provides information about the
// node resources consumed by pods and containers on the node
service
PodResourcesLister
{
rpc
List
(
ListPodResourcesRequest
)
returns
(
ListPodResourcesResponse
)
{}
}
// ListPodResourcesRequest is the request made to the PodResourcesLister service
message
ListPodResourcesRequest
{}
// ListPodResourcesResponse is the response returned by List function
message
ListPodResourcesResponse
{
repeated
PodResources
pod_resources
=
1
;
}
// PodResources contains information about the node resources assigned to a pod
message
PodResources
{
string
name
=
1
;
string
namespace
=
2
;
repeated
ContainerResources
containers
=
3
;
}
// ContainerResources contains information about the resources assigned to a container
message
ContainerResources
{
string
name
=
1
;
repeated
ContainerDevices
devices
=
2
;
}
// ContainerDevices contains information about the devices assigned to a container
message
ContainerDevices
{
string
resource_name
=
1
;
repeated
string
device_ids
=
2
;
}
\ No newline at end of file
pkg/kubelet/cm/container_manager.go
View file @
0f785dcb
...
@@ -23,7 +23,6 @@ import (
...
@@ -23,7 +23,6 @@ import (
// TODO: Migrate kubelet to either use its own internal objects or client library.
// TODO: Migrate kubelet to either use its own internal objects or client library.
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
internalapi
"k8s.io/kubernetes/pkg/kubelet/apis/cri"
internalapi
"k8s.io/kubernetes/pkg/kubelet/apis/cri"
podresourcesapi
"k8s.io/kubernetes/pkg/kubelet/apis/podresources/v1alpha1"
"k8s.io/kubernetes/pkg/kubelet/config"
"k8s.io/kubernetes/pkg/kubelet/config"
kubecontainer
"k8s.io/kubernetes/pkg/kubelet/container"
kubecontainer
"k8s.io/kubernetes/pkg/kubelet/container"
evictionapi
"k8s.io/kubernetes/pkg/kubelet/eviction/api"
evictionapi
"k8s.io/kubernetes/pkg/kubelet/eviction/api"
...
@@ -101,9 +100,6 @@ type ContainerManager interface {
...
@@ -101,9 +100,6 @@ type ContainerManager interface {
// The pluginwatcher's Handlers allow to have a single module for handling
// The pluginwatcher's Handlers allow to have a single module for handling
// registration.
// registration.
GetPluginRegistrationHandler
()
pluginwatcher
.
PluginHandler
GetPluginRegistrationHandler
()
pluginwatcher
.
PluginHandler
// GetDevices returns information about the devices assigned to pods and containers
GetDevices
(
podUID
,
containerName
string
)
[]
*
podresourcesapi
.
ContainerDevices
}
}
type
NodeConfig
struct
{
type
NodeConfig
struct
{
...
...
pkg/kubelet/cm/container_manager_linux.go
View file @
0f785dcb
...
@@ -44,7 +44,6 @@ import (
...
@@ -44,7 +44,6 @@ import (
"k8s.io/client-go/tools/record"
"k8s.io/client-go/tools/record"
kubefeatures
"k8s.io/kubernetes/pkg/features"
kubefeatures
"k8s.io/kubernetes/pkg/features"
internalapi
"k8s.io/kubernetes/pkg/kubelet/apis/cri"
internalapi
"k8s.io/kubernetes/pkg/kubelet/apis/cri"
podresourcesapi
"k8s.io/kubernetes/pkg/kubelet/apis/podresources/v1alpha1"
"k8s.io/kubernetes/pkg/kubelet/cadvisor"
"k8s.io/kubernetes/pkg/kubelet/cadvisor"
"k8s.io/kubernetes/pkg/kubelet/cm/cpumanager"
"k8s.io/kubernetes/pkg/kubelet/cm/cpumanager"
"k8s.io/kubernetes/pkg/kubelet/cm/devicemanager"
"k8s.io/kubernetes/pkg/kubelet/cm/devicemanager"
...
@@ -879,7 +878,3 @@ func (cm *containerManagerImpl) GetCapacity() v1.ResourceList {
...
@@ -879,7 +878,3 @@ func (cm *containerManagerImpl) GetCapacity() v1.ResourceList {
func
(
cm
*
containerManagerImpl
)
GetDevicePluginResourceCapacity
()
(
v1
.
ResourceList
,
v1
.
ResourceList
,
[]
string
)
{
func
(
cm
*
containerManagerImpl
)
GetDevicePluginResourceCapacity
()
(
v1
.
ResourceList
,
v1
.
ResourceList
,
[]
string
)
{
return
cm
.
deviceManager
.
GetCapacity
()
return
cm
.
deviceManager
.
GetCapacity
()
}
}
func
(
cm
*
containerManagerImpl
)
GetDevices
(
podUID
,
containerName
string
)
[]
*
podresourcesapi
.
ContainerDevices
{
return
cm
.
deviceManager
.
GetDevices
(
podUID
,
containerName
)
}
pkg/kubelet/cm/container_manager_stub.go
View file @
0f785dcb
...
@@ -22,7 +22,6 @@ import (
...
@@ -22,7 +22,6 @@ import (
"k8s.io/apimachinery/pkg/api/resource"
"k8s.io/apimachinery/pkg/api/resource"
internalapi
"k8s.io/kubernetes/pkg/kubelet/apis/cri"
internalapi
"k8s.io/kubernetes/pkg/kubelet/apis/cri"
podresourcesapi
"k8s.io/kubernetes/pkg/kubelet/apis/podresources/v1alpha1"
"k8s.io/kubernetes/pkg/kubelet/cm/cpumanager"
"k8s.io/kubernetes/pkg/kubelet/cm/cpumanager"
"k8s.io/kubernetes/pkg/kubelet/config"
"k8s.io/kubernetes/pkg/kubelet/config"
kubecontainer
"k8s.io/kubernetes/pkg/kubelet/container"
kubecontainer
"k8s.io/kubernetes/pkg/kubelet/container"
...
@@ -106,10 +105,6 @@ func (cm *containerManagerStub) GetPodCgroupRoot() string {
...
@@ -106,10 +105,6 @@ func (cm *containerManagerStub) GetPodCgroupRoot() string {
return
""
return
""
}
}
func
(
cm
*
containerManagerStub
)
GetDevices
(
_
,
_
string
)
[]
*
podresourcesapi
.
ContainerDevices
{
return
nil
}
func
NewStubContainerManager
()
ContainerManager
{
func
NewStubContainerManager
()
ContainerManager
{
return
&
containerManagerStub
{}
return
&
containerManagerStub
{}
}
}
pkg/kubelet/cm/devicemanager/manager.go
View file @
0f785dcb
...
@@ -33,7 +33,6 @@ import (
...
@@ -33,7 +33,6 @@ import (
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/sets"
v1helper
"k8s.io/kubernetes/pkg/apis/core/v1/helper"
v1helper
"k8s.io/kubernetes/pkg/apis/core/v1/helper"
pluginapi
"k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1beta1"
pluginapi
"k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1beta1"
podresourcesapi
"k8s.io/kubernetes/pkg/kubelet/apis/podresources/v1alpha1"
"k8s.io/kubernetes/pkg/kubelet/checkpointmanager"
"k8s.io/kubernetes/pkg/kubelet/checkpointmanager"
"k8s.io/kubernetes/pkg/kubelet/checkpointmanager/errors"
"k8s.io/kubernetes/pkg/kubelet/checkpointmanager/errors"
"k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/checkpoint"
"k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/checkpoint"
...
@@ -823,10 +822,3 @@ func (m *ManagerImpl) isDevicePluginResource(resource string) bool {
...
@@ -823,10 +822,3 @@ func (m *ManagerImpl) isDevicePluginResource(resource string) bool {
}
}
return
false
return
false
}
}
// GetDevices returns the devices used by the specified container
func
(
m
*
ManagerImpl
)
GetDevices
(
podUID
,
containerName
string
)
[]
*
podresourcesapi
.
ContainerDevices
{
m
.
mutex
.
Lock
()
defer
m
.
mutex
.
Unlock
()
return
m
.
podDevices
.
getContainerDevices
(
podUID
,
containerName
)
}
pkg/kubelet/cm/devicemanager/manager_stub.go
View file @
0f785dcb
...
@@ -18,7 +18,6 @@ package devicemanager
...
@@ -18,7 +18,6 @@ package devicemanager
import
(
import
(
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
podresourcesapi
"k8s.io/kubernetes/pkg/kubelet/apis/podresources/v1alpha1"
"k8s.io/kubernetes/pkg/kubelet/config"
"k8s.io/kubernetes/pkg/kubelet/config"
"k8s.io/kubernetes/pkg/kubelet/lifecycle"
"k8s.io/kubernetes/pkg/kubelet/lifecycle"
"k8s.io/kubernetes/pkg/kubelet/util/pluginwatcher"
"k8s.io/kubernetes/pkg/kubelet/util/pluginwatcher"
...
@@ -62,8 +61,3 @@ func (h *ManagerStub) GetCapacity() (v1.ResourceList, v1.ResourceList, []string)
...
@@ -62,8 +61,3 @@ func (h *ManagerStub) GetCapacity() (v1.ResourceList, v1.ResourceList, []string)
func
(
h
*
ManagerStub
)
GetWatcherHandler
()
pluginwatcher
.
PluginHandler
{
func
(
h
*
ManagerStub
)
GetWatcherHandler
()
pluginwatcher
.
PluginHandler
{
return
nil
return
nil
}
}
// GetDevices returns nil
func
(
h
*
ManagerStub
)
GetDevices
(
_
,
_
string
)
[]
*
podresourcesapi
.
ContainerDevices
{
return
nil
}
pkg/kubelet/cm/devicemanager/pod_devices.go
View file @
0f785dcb
...
@@ -21,7 +21,6 @@ import (
...
@@ -21,7 +21,6 @@ import (
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/sets"
pluginapi
"k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1beta1"
pluginapi
"k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1beta1"
podresourcesapi
"k8s.io/kubernetes/pkg/kubelet/apis/podresources/v1alpha1"
"k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/checkpoint"
"k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/checkpoint"
kubecontainer
"k8s.io/kubernetes/pkg/kubelet/container"
kubecontainer
"k8s.io/kubernetes/pkg/kubelet/container"
)
)
...
@@ -272,21 +271,3 @@ func (pdev podDevices) deviceRunContainerOptions(podUID, contName string) *Devic
...
@@ -272,21 +271,3 @@ func (pdev podDevices) deviceRunContainerOptions(podUID, contName string) *Devic
}
}
return
opts
return
opts
}
}
// getContainerDevices returns the devices assigned to the provided container for all ResourceNames
func
(
pdev
podDevices
)
getContainerDevices
(
podUID
,
contName
string
)
[]
*
podresourcesapi
.
ContainerDevices
{
if
_
,
podExists
:=
pdev
[
podUID
];
!
podExists
{
return
nil
}
if
_
,
contExists
:=
pdev
[
podUID
][
contName
];
!
contExists
{
return
nil
}
cDev
:=
[]
*
podresourcesapi
.
ContainerDevices
{}
for
resource
,
allocateInfo
:=
range
pdev
[
podUID
][
contName
]
{
cDev
=
append
(
cDev
,
&
podresourcesapi
.
ContainerDevices
{
ResourceName
:
resource
,
DeviceIds
:
allocateInfo
.
deviceIds
.
UnsortedList
(),
})
}
return
cDev
}
pkg/kubelet/cm/devicemanager/types.go
View file @
0f785dcb
...
@@ -20,7 +20,6 @@ import (
...
@@ -20,7 +20,6 @@ import (
"time"
"time"
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
podresourcesapi
"k8s.io/kubernetes/pkg/kubelet/apis/podresources/v1alpha1"
"k8s.io/kubernetes/pkg/kubelet/config"
"k8s.io/kubernetes/pkg/kubelet/config"
kubecontainer
"k8s.io/kubernetes/pkg/kubelet/container"
kubecontainer
"k8s.io/kubernetes/pkg/kubelet/container"
"k8s.io/kubernetes/pkg/kubelet/lifecycle"
"k8s.io/kubernetes/pkg/kubelet/lifecycle"
...
@@ -55,9 +54,6 @@ type Manager interface {
...
@@ -55,9 +54,6 @@ type Manager interface {
// and inactive device plugin resources previously registered on the node.
// and inactive device plugin resources previously registered on the node.
GetCapacity
()
(
v1
.
ResourceList
,
v1
.
ResourceList
,
[]
string
)
GetCapacity
()
(
v1
.
ResourceList
,
v1
.
ResourceList
,
[]
string
)
GetWatcherHandler
()
watcher
.
PluginHandler
GetWatcherHandler
()
watcher
.
PluginHandler
// GetDevices returns information about the devices assigned to pods and containers
GetDevices
(
podUID
,
containerName
string
)
[]
*
podresourcesapi
.
ContainerDevices
}
}
// DeviceRunContainerOptions contains the combined container runtime settings to consume its allocated devices.
// DeviceRunContainerOptions contains the combined container runtime settings to consume its allocated devices.
...
...
pkg/kubelet/config/defaults.go
View file @
0f785dcb
...
@@ -25,5 +25,4 @@ const (
...
@@ -25,5 +25,4 @@ const (
DefaultKubeletPluginsRegistrationDirName
=
"plugins_registry"
DefaultKubeletPluginsRegistrationDirName
=
"plugins_registry"
DefaultKubeletContainersDirName
=
"containers"
DefaultKubeletContainersDirName
=
"containers"
DefaultKubeletPluginContainersDirName
=
"plugin-containers"
DefaultKubeletPluginContainersDirName
=
"plugin-containers"
DefaultKubeletPodResourcesDirName
=
"pod-resources"
)
)
pkg/kubelet/kubelet.go
View file @
0f785dcb
...
@@ -52,7 +52,7 @@ import (
...
@@ -52,7 +52,7 @@ import (
"k8s.io/client-go/util/certificate"
"k8s.io/client-go/util/certificate"
"k8s.io/client-go/util/flowcontrol"
"k8s.io/client-go/util/flowcontrol"
"k8s.io/client-go/util/integer"
"k8s.io/client-go/util/integer"
cloudprovider
"k8s.io/cloud-provider"
"k8s.io/cloud-provider"
csiclientset
"k8s.io/csi-api/pkg/client/clientset/versioned"
csiclientset
"k8s.io/csi-api/pkg/client/clientset/versioned"
"k8s.io/klog"
"k8s.io/klog"
api
"k8s.io/kubernetes/pkg/apis/core"
api
"k8s.io/kubernetes/pkg/apis/core"
...
@@ -60,7 +60,6 @@ import (
...
@@ -60,7 +60,6 @@ import (
kubeletconfiginternal
"k8s.io/kubernetes/pkg/kubelet/apis/config"
kubeletconfiginternal
"k8s.io/kubernetes/pkg/kubelet/apis/config"
internalapi
"k8s.io/kubernetes/pkg/kubelet/apis/cri"
internalapi
"k8s.io/kubernetes/pkg/kubelet/apis/cri"
pluginwatcherapi
"k8s.io/kubernetes/pkg/kubelet/apis/pluginregistration/v1"
pluginwatcherapi
"k8s.io/kubernetes/pkg/kubelet/apis/pluginregistration/v1"
"k8s.io/kubernetes/pkg/kubelet/apis/podresources"
"k8s.io/kubernetes/pkg/kubelet/cadvisor"
"k8s.io/kubernetes/pkg/kubelet/cadvisor"
kubeletcertificate
"k8s.io/kubernetes/pkg/kubelet/certificate"
kubeletcertificate
"k8s.io/kubernetes/pkg/kubelet/certificate"
"k8s.io/kubernetes/pkg/kubelet/checkpointmanager"
"k8s.io/kubernetes/pkg/kubelet/checkpointmanager"
...
@@ -96,7 +95,6 @@ import (
...
@@ -96,7 +95,6 @@ import (
"k8s.io/kubernetes/pkg/kubelet/sysctl"
"k8s.io/kubernetes/pkg/kubelet/sysctl"
"k8s.io/kubernetes/pkg/kubelet/token"
"k8s.io/kubernetes/pkg/kubelet/token"
kubetypes
"k8s.io/kubernetes/pkg/kubelet/types"
kubetypes
"k8s.io/kubernetes/pkg/kubelet/types"
"k8s.io/kubernetes/pkg/kubelet/util"
"k8s.io/kubernetes/pkg/kubelet/util/format"
"k8s.io/kubernetes/pkg/kubelet/util/format"
"k8s.io/kubernetes/pkg/kubelet/util/manager"
"k8s.io/kubernetes/pkg/kubelet/util/manager"
"k8s.io/kubernetes/pkg/kubelet/util/pluginwatcher"
"k8s.io/kubernetes/pkg/kubelet/util/pluginwatcher"
...
@@ -192,7 +190,6 @@ type Bootstrap interface {
...
@@ -192,7 +190,6 @@ type Bootstrap interface {
StartGarbageCollection
()
StartGarbageCollection
()
ListenAndServe
(
address
net
.
IP
,
port
uint
,
tlsOptions
*
server
.
TLSOptions
,
auth
server
.
AuthInterface
,
enableDebuggingHandlers
,
enableContentionProfiling
bool
)
ListenAndServe
(
address
net
.
IP
,
port
uint
,
tlsOptions
*
server
.
TLSOptions
,
auth
server
.
AuthInterface
,
enableDebuggingHandlers
,
enableContentionProfiling
bool
)
ListenAndServeReadOnly
(
address
net
.
IP
,
port
uint
)
ListenAndServeReadOnly
(
address
net
.
IP
,
port
uint
)
ListenAndServePodResources
()
Run
(
<-
chan
kubetypes
.
PodUpdate
)
Run
(
<-
chan
kubetypes
.
PodUpdate
)
RunOnce
(
<-
chan
kubetypes
.
PodUpdate
)
([]
RunPodResult
,
error
)
RunOnce
(
<-
chan
kubetypes
.
PodUpdate
)
([]
RunPodResult
,
error
)
}
}
...
@@ -1248,9 +1245,6 @@ func (kl *Kubelet) setupDataDirs() error {
...
@@ -1248,9 +1245,6 @@ func (kl *Kubelet) setupDataDirs() error {
if
err
:=
os
.
MkdirAll
(
kl
.
getPluginsRegistrationDir
(),
0750
);
err
!=
nil
{
if
err
:=
os
.
MkdirAll
(
kl
.
getPluginsRegistrationDir
(),
0750
);
err
!=
nil
{
return
fmt
.
Errorf
(
"error creating plugins registry directory: %v"
,
err
)
return
fmt
.
Errorf
(
"error creating plugins registry directory: %v"
,
err
)
}
}
if
err
:=
os
.
MkdirAll
(
kl
.
getPodResourcesDir
(),
0750
);
err
!=
nil
{
return
fmt
.
Errorf
(
"error creating podresources directory: %v"
,
err
)
}
return
nil
return
nil
}
}
...
@@ -2206,11 +2200,6 @@ func (kl *Kubelet) ListenAndServeReadOnly(address net.IP, port uint) {
...
@@ -2206,11 +2200,6 @@ func (kl *Kubelet) ListenAndServeReadOnly(address net.IP, port uint) {
server
.
ListenAndServeKubeletReadOnlyServer
(
kl
,
kl
.
resourceAnalyzer
,
address
,
port
)
server
.
ListenAndServeKubeletReadOnlyServer
(
kl
,
kl
.
resourceAnalyzer
,
address
,
port
)
}
}
// ListenAndServePodResources runs the kubelet podresources grpc service
func
(
kl
*
Kubelet
)
ListenAndServePodResources
()
{
server
.
ListenAndServePodResources
(
util
.
LocalEndpoint
(
kl
.
getPodResourcesDir
(),
podresources
.
Socket
),
kl
.
podManager
,
kl
.
containerManager
)
}
// Delete the eligible dead container instances in a pod. Depending on the configuration, the latest dead containers may be kept around.
// Delete the eligible dead container instances in a pod. Depending on the configuration, the latest dead containers may be kept around.
func
(
kl
*
Kubelet
)
cleanUpContainersInPod
(
podID
types
.
UID
,
exitedContainerID
string
)
{
func
(
kl
*
Kubelet
)
cleanUpContainersInPod
(
podID
types
.
UID
,
exitedContainerID
string
)
{
if
podStatus
,
err
:=
kl
.
podCache
.
Get
(
podID
);
err
==
nil
{
if
podStatus
,
err
:=
kl
.
podCache
.
Get
(
podID
);
err
==
nil
{
...
...
pkg/kubelet/kubelet_getters.go
View file @
0f785dcb
...
@@ -154,11 +154,6 @@ func (kl *Kubelet) getPodContainerDir(podUID types.UID, ctrName string) string {
...
@@ -154,11 +154,6 @@ func (kl *Kubelet) getPodContainerDir(podUID types.UID, ctrName string) string {
return
filepath
.
Join
(
kl
.
getPodDir
(
podUID
),
config
.
DefaultKubeletContainersDirName
,
ctrName
)
return
filepath
.
Join
(
kl
.
getPodDir
(
podUID
),
config
.
DefaultKubeletContainersDirName
,
ctrName
)
}
}
// getPodResourcesSocket returns the full path to the directory containing the pod resources socket
func
(
kl
*
Kubelet
)
getPodResourcesDir
()
string
{
return
filepath
.
Join
(
kl
.
getRootDir
(),
config
.
DefaultKubeletPodResourcesDirName
)
}
// GetPods returns all pods bound to the kubelet and their spec, and the mirror
// GetPods returns all pods bound to the kubelet and their spec, and the mirror
// pods.
// pods.
func
(
kl
*
Kubelet
)
GetPods
()
[]
*
v1
.
Pod
{
func
(
kl
*
Kubelet
)
GetPods
()
[]
*
v1
.
Pod
{
...
...
pkg/kubelet/server/server.go
View file @
0f785dcb
...
@@ -37,7 +37,6 @@ import (
...
@@ -37,7 +37,6 @@ import (
"github.com/google/cadvisor/metrics"
"github.com/google/cadvisor/metrics"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/prometheus/client_golang/prometheus/promhttp"
"google.golang.org/grpc"
"k8s.io/klog"
"k8s.io/klog"
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
...
@@ -57,8 +56,6 @@ import (
...
@@ -57,8 +56,6 @@ import (
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/api/legacyscheme"
api
"k8s.io/kubernetes/pkg/apis/core"
api
"k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/pkg/apis/core/v1/validation"
"k8s.io/kubernetes/pkg/apis/core/v1/validation"
"k8s.io/kubernetes/pkg/kubelet/apis/podresources"
podresourcesapi
"k8s.io/kubernetes/pkg/kubelet/apis/podresources/v1alpha1"
kubecontainer
"k8s.io/kubernetes/pkg/kubelet/container"
kubecontainer
"k8s.io/kubernetes/pkg/kubelet/container"
"k8s.io/kubernetes/pkg/kubelet/prober"
"k8s.io/kubernetes/pkg/kubelet/prober"
"k8s.io/kubernetes/pkg/kubelet/server/portforward"
"k8s.io/kubernetes/pkg/kubelet/server/portforward"
...
@@ -66,7 +63,6 @@ import (
...
@@ -66,7 +63,6 @@ import (
"k8s.io/kubernetes/pkg/kubelet/server/stats"
"k8s.io/kubernetes/pkg/kubelet/server/stats"
"k8s.io/kubernetes/pkg/kubelet/server/streaming"
"k8s.io/kubernetes/pkg/kubelet/server/streaming"
kubelettypes
"k8s.io/kubernetes/pkg/kubelet/types"
kubelettypes
"k8s.io/kubernetes/pkg/kubelet/types"
"k8s.io/kubernetes/pkg/kubelet/util"
"k8s.io/kubernetes/pkg/util/configz"
"k8s.io/kubernetes/pkg/util/configz"
)
)
...
@@ -165,17 +161,6 @@ func ListenAndServeKubeletReadOnlyServer(host HostInterface, resourceAnalyzer st
...
@@ -165,17 +161,6 @@ func ListenAndServeKubeletReadOnlyServer(host HostInterface, resourceAnalyzer st
klog
.
Fatal
(
server
.
ListenAndServe
())
klog
.
Fatal
(
server
.
ListenAndServe
())
}
}
// ListenAndServePodResources initializes a grpc server to serve the PodResources service
func
ListenAndServePodResources
(
socket
string
,
podsProvider
podresources
.
PodsProvider
,
devicesProvider
podresources
.
DevicesProvider
)
{
server
:=
grpc
.
NewServer
()
podresourcesapi
.
RegisterPodResourcesListerServer
(
server
,
podresources
.
NewPodResourcesServer
(
podsProvider
,
devicesProvider
))
l
,
err
:=
util
.
CreateListener
(
socket
)
if
err
!=
nil
{
klog
.
Fatalf
(
"Failed to create listener for podResources endpoint: %v"
,
err
)
}
klog
.
Fatal
(
server
.
Serve
(
l
))
}
// AuthInterface contains all methods required by the auth filters
// AuthInterface contains all methods required by the auth filters
type
AuthInterface
interface
{
type
AuthInterface
interface
{
authenticator
.
Request
authenticator
.
Request
...
...
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