Commit Graph

9248 Commits

Author SHA1 Message Date
Artyom Lukianov
afb1ae3458 memory manager: add fake memory manager
The fake memory manager needed for the unittesting.

Signed-off-by: Artyom Lukianov <alukiano@redhat.com>
2021-02-09 01:09:59 +02:00
Derek Carr
b7009a2cba Mark vishh as emeritus sig-node approver 2021-02-08 17:56:26 -05:00
Cezary Zukowski
4a64102918 memory manager: validate reserved-memory against Node Allocatable
Reserved memory of all kinds (and over all
NUMA nodes) must be equal to the values determined
by Node Allocatable feature.

Signed-off-by: Cezary Zukowski <c.zukowski@samsung.com>
2021-02-09 00:54:58 +02:00
Artyom Lukianov
9ae499ae46 memory manager: pass memory manager flags to the container manager
Pass memory manager flags to the container manager and call all relevant memory manager
methods under the container manager.

Signed-off-by: Byonggon Chun <bg.chun@samsung.com>
2021-02-09 00:54:58 +02:00
Artyom Lukianov
93accb51e4 memory manager: add memory manager flag under kubelet options and kubelet config
The commit also includes generated files after `make generated_files`.

Signed-off-by: Byonggon Chun <bg.chun@samsung.com>
2021-02-09 00:54:58 +02:00
Artyom Lukianov
95f81372e2 memory manager: implement the manager interface methods
The commit adds implementation for methods:
- Start
- AddContainer
- Allocate
- RemoveContainer
- State
- GetTopologyHints

Signed-off-by: Artyom Lukianov <alukiano@redhat.com>
2021-02-09 00:54:58 +02:00
Artyom Lukianov
d0caec90e2 memory manager: add the policy interface
The commit also adds two policy skeletons:
- none
- static

Signed-off-by: Artyom Lukianov <alukiano@redhat.com>
2021-02-09 00:54:58 +02:00
Artyom Lukianov
86df524948 memory manager: provide unittest for the state package
The commit includes tests to verify the functionallity:
- to restore state from the file
- to store the state to the file
- to clean the state from old data

Signed-off-by: Artyom Lukianov <alukiano@redhat.com>
2021-02-09 00:54:58 +02:00
Artyom Lukianov
48ca6e53e6 memory manager: provide and use the checkpoint manager
The checkpoint manager provides a way to save the memory manager
`MemoryTable` both under the memory and under the state file.

Saving the `MemoryTable` under the state file can be useful when kubelet
restarted and you want to restore memory allocations for running containers.
Also, it provides a way to monitor memory allocations done by the memory manager,
and in the future, the state file content can be exposed under the pod metrics.

Signed-off-by: Artyom Lukianov <alukiano@redhat.com>
2021-02-09 00:54:58 +02:00
Artyom Lukianov
4c75be0604 memory manager: provide the skeleton for the memory manager
Provide memory manager struct and methods that should be implemented.

Signed-off-by: Artyom Lukianov <alukiano@redhat.com>
2021-02-09 00:54:58 +02:00
shawnhanx
fa8d07d3e1 Apply suggestions from code review
Co-authored-by: bl-ue <54780737+bl-ue@users.noreply.github.com>
2021-02-07 09:23:07 +08:00
Geonju Kim
321ca8af52 kubelet: Sync completed pods until their containers have been terminated 2021-02-06 14:06:50 +09:00
pacoxu
8946f26769 update pause to 3.4.1 for kubelet/kubeadm
Signed-off-by: pacoxu <paco.xu@daocloud.io>
2021-02-05 21:33:01 +08:00
Antonio Ojea
ad4776ba54 dockershim hostport respect IPFamily 2021-02-05 08:51:33 +01:00
Antonio Ojea
f7d86e8b1c dockershim hostport manager use HostIP
the hostport manager was not taking into consideration the hostIP
when binding the socket of the hostPort, causing that the same
HostPort can not be used with different IP addresses.
2021-02-05 08:51:33 +01:00
Ryan Phillips
f918e11e3a register all pending pod deletions and check for kill
do not delete the cgroup from a pod when it is being killed
2021-02-04 11:45:42 -06:00
PingWang
4103ff490f Extract the const for ContainerStateReason
Signed-off-by: PingWang <wang.ping5@zte.com.cn>

update fmt

Signed-off-by: PingWang <wang.ping5@zte.com.cn>

update test

Signed-off-by: PingWang <wang.ping5@zte.com.cn>
2021-02-04 08:52:13 +08:00
Matthias Bertschy
e2edd4a055 Stop probing a pod during graceful shutdown 2021-02-03 19:23:21 +01:00
shawnhanx
0bee739a2f Change the upper limit of threshold from 10000% to 100% 2021-02-03 21:55:49 +08:00
James Sturtevant
3da0d99d52 Ignore transient errors when gather stats 2021-02-02 13:56:51 -08:00
Kubernetes Prow Robot
4d3ed163a0 Merge pull request #98477 from palnabarun/update-gogo/protobuf
Update gogo/protobuf to v1.3.2
2021-02-02 09:56:28 -08:00
Kubernetes Prow Robot
ee2b7a5049 Merge pull request #98049 from pacoxu/enhancements/redir-links
fix all keps links 404 for kep folder migration
2021-02-01 21:48:28 -08:00
Lorenz Brun
ea27d9225c Add tests for populated volumes 2021-02-01 20:10:34 +01:00
Mike Dame
578ff3ec34 Move Taint/Toleration helpers to component-helpers repo
This is part of the goal for scheduling to remove dependencies on internal
packages for the scheduling framework. It also provides these functions in an
external location for other components and projects to import.
2021-02-01 11:06:03 -05:00
pacoxu
a10bdfed09 fix all keps links 404 for kep folder migration
Signed-off-by: pacoxu <paco.xu@daocloud.io>
2021-02-01 19:41:59 +08:00
Lorenz Brun
65c0229247 Fix comment on getPodVolumeSubpathListFromDisk 2021-01-31 02:42:54 +01:00
Claudiu Belu
de4602995b Windows: Fixes /etc/hosts file mounting support for containerd
If Containerd is used on Windows, then we can also mount individual
files into containers (e.g.: /etc/hosts), which was not possible with Docker.

Checks if the container runtime is containerd, and if it is, then also
mount /etc/hosts file (to C:\Windows\System32\drivers\etc\hosts).
2021-01-30 04:54:42 -08:00
ialidzhikov
21608e49a7 Remove WindowsGMSA and WindowsRunAsUserName feature gates
Signed-off-by: ialidzhikov <i.alidjikov@gmail.com>
2021-01-30 02:01:48 +02:00
Kubernetes Prow Robot
9ec1e23e41 Merge pull request #98005 from wzshiming/fix-rescheduling-to-the-shutdown-node
Sync node status during kubelet node shutdown
2021-01-28 17:51:53 -08:00
Kubernetes Prow Robot
e6e079aac3 Merge pull request #97748 from heqg/collides-state
Fix variable 'state' collides with imported package name
2021-01-28 17:51:40 -08:00
Kubernetes Prow Robot
1a76d3ddfd Merge pull request #98261 from wzshiming/fix-panic
kubelet: Fix NPE in ephemeral storage eviction
2021-01-28 17:00:32 -08:00
Kubernetes Prow Robot
b62f063fa3 Merge pull request #98156 from wzshiming/fix-typo
Fix typo
2021-01-28 17:00:16 -08:00
Kubernetes Prow Robot
e05c9ab04b Merge pull request #97932 from ehashman/kubelet-standalone-doc
Add explanation for kubeClient != nil in NewMainKubelet
2021-01-28 16:59:59 -08:00
Kubernetes Prow Robot
6702359c3c Merge pull request #97270 from rikatz/kubelet-bsd-1
Change GetBootTime to work specificaly with FreeBSD
2021-01-28 16:59:40 -08:00
Nabarun Pal
9cada2ec3b update gogo/protobuf to v1.3.2
gogo/protobuf@v1.3.2 fixes https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3121

Ref: https://github.com/kubernetes/client-go/issues/927

Signed-off-by: Nabarun Pal <pal.nabarun95@gmail.com>
2021-01-27 22:07:32 +05:30
Kubernetes Prow Robot
889cf714c1 Merge pull request #95111 from choury/patch-2
make podTopologyHints protected by lock
2021-01-26 04:18:34 -08:00
choury
fe089a2d12 make podTopologyHints protected by lock
It crashed kubelet by "concurrent map read and map write"
2021-01-26 10:36:05 +08:00
Kubernetes Prow Robot
06a7e2bacf Merge pull request #96781 from fighterhit/fix-kukelet-device-plugin-bug
Fix: kubelet return error when device plugin sets PreStartRequired true while creating pods with 0 resource
2021-01-25 17:59:00 -08:00
Kubernetes Prow Robot
6fae18523d Merge pull request #98019 from cynepco3hahue/specify_resource_during_container_creation_cpu_manager
cpu manager: specify the container CPU set during the creation
2021-01-25 14:15:12 -08:00
Kubernetes Prow Robot
77bedd891d Merge pull request #98230 from SataQiu/fix-kubelet-cert-message-20210120
kubelet: improve error message about expired certificates
2021-01-25 12:39:19 -08:00
pacoxu
89c42bd3d5 check containerd as process name instead of docker-containerd
Signed-off-by: pacoxu <paco.xu@daocloud.io>
2021-01-23 10:55:18 +08:00
b10s
de60340e51 Improve the getCgroupSubsystemsV1() which uses random record per subsystem
returned by libcontainercgroups.GetCgroupMounts().

Example array from GetCgroupMounts():
```
[
        {
                Mountpoint: "/sys/fs/cgroup/systemd",
                Root: "/",
                Subsystems: []string len: 1, cap: 1, ["systemd"],},
        {
                Mountpoint: "/sys/fs/cgroup/cpu,cpuacct",
                Root: "/",
                Subsystems: []string len: 2, cap: 2, ["cpu","cpuacct"],},
        {
                Mountpoint: "/sys/fs/cgroup/systemd/some/path",
                Root: "/some/path",
                Subsystems: []string len: 1, cap: 1, ["systemd"],},
]
```
becames a map:
```
[
        "memory": "/sys/fs/cgroup/memory/kubepods",
        "systemd": "/sys/fs/cgroup/systemd/some/path",
]
```
which seems to be wrong.

Using shortest path of mountpoint per subsystem would be more reliable.

reference issue: https://github.com/kubernetes/kubernetes/issues/95488
2021-01-22 22:21:46 +09:00
Kubernetes Prow Robot
82ebcd1719 Merge pull request #98088 from wzshiming/fix-inhibit-lock
Fix repeatedly aquire the inhibit lock
2021-01-22 00:37:26 -08:00
Kubernetes Prow Robot
cea1098997 Merge pull request #97715 from changshuchao/files_tmptag
Made some optimizations, including modifying variable names, omitting…
2021-01-21 22:55:26 -08:00
SataQiu
6c31162b35 kubelet: improve error message about expired certificates 2021-01-21 23:05:45 +08:00
wzshiming
29808eaf24 Fix panic 2021-01-21 19:47:28 +08:00
wzshiming
d9df265af0 Sync node status during kubelet node shutdown 2021-01-21 11:01:13 +08:00
Kubernetes Prow Robot
236470431f Merge pull request #97141 from wawa0210/remove-hyperv
remove experimental windows container hyper-v support with Docker
2021-01-20 15:33:12 -08:00
Kubernetes Prow Robot
737858cd7c Merge pull request #98200 from wzshiming/fix-node-shutdown-events
Fix kubelet from panic after getting the wrong signal
2021-01-20 10:38:47 -08:00
Artyom Lukianov
38dc7509f8 cpu manager: specify the container CPU set during the creation
We can set the container cpuset.cpus diring the creation and it
will not need to call to update resources after the container creation.

Additional side effect of the change, that the runc process that responsible
to create the container will run with the same CPU affinity because the
runc runs on the cpuset provided in the config.json arg.

It will allow to prevent undesirable interupts on isolated CPUs.

Signed-off-by: Artyom Lukianov <alukiano@redhat.com>
2021-01-20 17:53:33 +02:00