Commit Graph

9163 Commits

Author SHA1 Message Date
Mengxue Zhang
bdda9728e7 move nodeaffinity helpers to component-helpers package 2021-03-10 20:19:25 +00:00
Kubernetes Prow Robot
4b6e3e164f Merge pull request #99221 from jsturtevant/windows-host-stats-provider
Get filesystem stats for files on Windows
2021-03-10 11:09:23 -08:00
Kubernetes Prow Robot
410d092d8a Merge pull request #99643 from pohly/generic-ephemeral-volume-beta
generic ephemeral volume beta
2021-03-09 17:39:26 -08:00
Kubernetes Prow Robot
dcb3c56957 Merge pull request #99284 from fengzixu/support-external-health-monitor
feature: add CSIVolumeHealth feature and gate
2021-03-09 16:07:50 -08:00
Kubernetes Prow Robot
c3bed939ff Merge pull request #97659 from chenyw1990/fixedPodTerminatingWithSubpathNotEmpty
don't delete pod from desiredStateOfWorld when pod's sandbox is running
2021-03-09 16:07:26 -08:00
Kubernetes Prow Robot
770a9504ea Merge pull request #95734 from fromanirh/podresources-concrete-resources-apis
podresources APIs: concrete resources apis: implement GetAllocatableResources
2021-03-09 14:29:04 -08:00
Kubernetes Prow Robot
a10a694f56 Merge pull request #99875 from bobbypage/bump-cadvisor
vendor: cAdvisor v0.39.0
2021-03-09 11:05:58 -08:00
Kubernetes Prow Robot
3f09686958 Merge pull request #100006 from cynepco3hahue/pass_cpuset_mems_to_dockershim
Pass cpuset.mems to the dockershim during container creation
2021-03-09 09:19:44 -08:00
fengzixu
edc1c62471 feature: add CSIVolumeHealth feature and gate
1. add EventRecorder to ResourceAnalyzer
2. add CSIVolumeHealth feature and gate
2021-03-10 01:16:37 +09:00
Artyom Lukianov
0370768650 Pass cpuset.mems to the dockershim during container creation
Signed-off-by: Artyom Lukianov <alukiano@redhat.com>
2021-03-09 14:29:12 +02:00
Kubernetes Prow Robot
a56fa34d6b Merge pull request #99942 from jsafrane/refactor-migration-featuregates
Refactor CSI migration plugin manager to get featureGates as a parameter
2021-03-09 04:27:46 -08:00
Kubernetes Prow Robot
4d969ac90d Merge pull request #99257 from chenyw1990/fixedLogFormatJsonPanic
fix json log format panic, change the flag name in flagIsSet
2021-03-09 04:27:29 -08:00
Kubernetes Prow Robot
11e9c32e4b Merge pull request #97093 from aldudko/migrate-kubelet-logs
Migrate prober.probe logs to structured logging
2021-03-09 04:26:59 -08:00
Francesco Romani
1e7bb20c52 kubelet: podresources: per-endpoint metrics
Before the addition of GetAllocatableResources, the
podresources API had just one endpoint `List()`, thus we could just
account for the total of the calls to have a good pulse of the API usage.
Now that we extend the API with more endpoints
(`GetAlloctableResources`), in order to improve the observability we add
per-endpoint counters, in addition to the existing counter of the total
API calls.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2021-03-09 13:14:58 +01:00
Francesco Romani
d7a30e1b08 podresources: getallocatable: add feature gate
Add feature gate to disable the GetAllocatableResources API.
The feature gate isd alpha stage, disabled by default.

Add e2e test to demonstrate the behaviour with feature gate disabled.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2021-03-09 13:14:56 +01:00
Francesco Romani
6c8d4ee9ee podresources: devices: add test for dev reporting
Add test to reflect the correct behaviour according to
review comments.

Most notably, we should consider that -as the device plugin API
allows to express- a device ID can have multiple "NUMA" node IDs.
(example: AMD Rome).
More details:
https://github.com/kubernetes/kubernetes/pull/95734#discussion_r539545041

Signed-off-by: Francesco Romani <fromani@redhat.com>
2021-03-09 13:13:37 +01:00
Francesco Romani
e930799d28 podresources: test: add test for nil Topology
From https://github.com/kubernetes/kubernetes/pull/96553
we are reminded we need to handle the case on which
a device plugin reports nil Topology, which is legal.
Add unit test to ensure this case is handled.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2021-03-09 13:13:37 +01:00
Francesco Romani
da55ef0b9a node: podresources: list devices without topology
It's legal for device plugins to not expose topology informations.
Previously, the code was just skipping these devices.
Review highlighted is better to report them anyway and let the
client application decide if they still want somehow to track them
or skip them entirely.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2021-03-09 13:13:37 +01:00
Francesco Romani
9c69db3f04 e2e: node: add tests for GetAllocatableResources
Add e2e tests for the new GetAllocatableResources API.
The tests are added in the `podresources_test` suite
created previously in this series.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2021-03-09 13:13:36 +01:00
Francesco Romani
8afdf4f146 node: podresources: translate types in cm
during the review, we convened that the manager types
(CPUSet, ResourceDeviceInstances) should not cross the
containermanager API boundary; thus, the ContainerManager layer
is the correct place to do the type conversion

We push back the type conversions from the podresources server
layer, fixing tests accordingly.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2021-03-09 13:13:36 +01:00
Francesco Romani
ad68f9588c node: podresources: make GetDevices() consistent
We want to make the return type of the GetDevices() method of the
podresources DevicesProvider interface consistent with
the newly added GetAllocatableDevices type.
This makes the code easier to read and reduces the coupling between
the podresourcesapi server and the devicemanager code.

No intended changes in behaviour, but the different return types
now requires some data massaging. Tests are updated accordingly.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2021-03-09 13:13:36 +01:00
Francesco Romani
6d33354e4c node: podresources: implement GetAllocatableResources API
Extend the podresources API implementing the GetAllocatableResources endpoint,
as specified in the KEPs:

https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2043-pod-resource-concrete-assigments
https://github.com/kubernetes/enhancements/pull/2404

Signed-off-by: Francesco Romani <fromani@redhat.com>
2021-03-09 13:13:36 +01:00
Francesco Romani
1375c5bdc7 node: podresources: make GetCPUs return cpuset
a upcoming patch wants to add GetAllocatableCPUs() returning a cpuset.
To make the code consistent and a bit more flexible, we change the
existing interface to also return a cpuset.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2021-03-09 13:13:36 +01:00
Patrick Ohly
555d4a12bf generic ephemeral volumes: drop ReadOnly field
As discussed during the alpha review, the ReadOnly field is not really
needed because volume mounts can also be read-only. It's a historical
oddity that can be avoided for generic ephemeral volumes as part
of the promotion to beta.
2021-03-09 08:22:48 +01:00
Kubernetes Prow Robot
f34b63acee Merge pull request #99620 from jingxu97/mar/owner
Add jingxu97 to volumemanager owner
2021-03-08 22:53:31 -08:00
Kubernetes Prow Robot
c7389c1f35 Merge pull request #98999 from sladyn98/structured-logging
kubelet: migrate pkg/kubelet/cloudresource to structured logging
2021-03-08 22:53:23 -08:00
chenyw1990
edff740386 fix json log format panic, change the flag names in flagIsSet 2021-03-09 14:14:25 +08:00
David Porter
904cb67267 Fixes after runc libcontainer and docker update
- libcontainer renamed
  `github.com/opencontainers/runc/libcontainer/configs` to
  `github.com/opencontainers/runc/libcontainer/devices` so use the new
  references

- Update `dockershim` `ContainerCreate` call after docker update to
  v20.10.2
2021-03-08 22:10:29 -08:00
Kubernetes Prow Robot
40d8aed6f3 Merge pull request #99585 from Iceber/fix-finished-at
dockershim: fix started and finished timestamp of the container status
2021-03-08 20:47:28 -08:00
Kubernetes Prow Robot
b48e7f1e7b Merge pull request #99859 from krzysiekg/replace_klog_in_pkg_kubelet_tests
Replace klog with with testing.T logging in pkg/kubelet tests
2021-03-08 19:24:02 -08:00
Kubernetes Prow Robot
3e5954a7e1 Merge pull request #99836 from navidshaikh/pr/slog-k-status
Migrate pkg/kubelet/status to structured logging
2021-03-08 19:23:27 -08:00
Kubernetes Prow Robot
9a1b5bb255 Merge pull request #99264 from palnabarun/structured-logging-pkg/kubelet/token
Migrate pkg/kubelet/token to structured logging
2021-03-08 19:23:11 -08:00
Kubernetes Prow Robot
c22f099395 Merge pull request #99841 from adisky/kuberuntime_manager
Migrate pkg/kubelet/kuberuntime/kuberuntime_manager.go to structured logging
2021-03-08 16:27:44 -08:00
Kubernetes Prow Robot
449e2f1777 Merge pull request #99838 from adisky/s-log-server
Migrate pkg/kubelet/server to structured logging
2021-03-08 16:27:36 -08:00
Kubernetes Prow Robot
b4f351329e Merge pull request #99823 from navidshaikh/pr/slog-k-utils
Migrate pkg/kubelet/util to structured logging
2021-03-08 16:27:28 -08:00
Kubernetes Prow Robot
b1367af8b5 Merge pull request #99799 from QiWang19/kobj-slice
Refactor pods format to return ObjRef slice
2021-03-08 16:27:19 -08:00
James Sturtevant
c9eff4e906 Get filesystem stats for files on Windows 2021-03-08 12:50:23 -08:00
Kubernetes Prow Robot
eb4dafb7f1 Merge pull request #99651 from umohnani8/cri
Move CRIContainerLogRotation to GA
2021-03-08 12:07:20 -08:00
Jan Safranek
219cbc818a Refactor CSI migration plugin manager to get featureGates as a parameter
This allows caller to provide fake ones for testing of various corner cases
(migration on A/D controller disabled while enabled on kubelet).
2021-03-08 13:50:01 +01:00
chenyw1990
57a3b0abd6 reduce configmap and secret watch of kubelet 2021-03-08 16:55:39 +08:00
Aditi Sharma
45c7608379 Migrate to structured logging
pkg/kubelet/kuberuntime/kuberuntime_manager.go

Signed-off-by: Aditi Sharma <adi.sky17@gmail.com>
2021-03-08 11:27:44 +05:30
Kubernetes Prow Robot
a91fdfbeb3 Merge pull request #97493 from Pingan2017/allocatemem-1224
add operator for allocateMemory.available signal
2021-03-07 20:09:44 -08:00
Krzysztof Gibuła
e46b280f96 Replace klog with with testing.T logging in pkg/kubelet tests 2021-03-07 23:10:02 +01:00
Navid Shaikh
1f22a173d9 Migrate pkg/kubelet/util to structured logging
Part of https://github.com/kubernetes/kubernetes/issues/98976
2021-03-07 21:17:46 +05:30
Kubernetes Prow Robot
c193c1b234 Merge pull request #98376 from matthyx/mega
Make all health checks probing consistent
2021-03-06 11:45:41 -08:00
Qi Wang
8133d29586 Refactor pods format to ObjRef slice
Refactor format.Pods to return a slice of ObjRef for structured logging.
Ref: https://github.com/kubernetes/kubernetes/pull/99029#discussion_r586785552

Signed-off-by: Qi Wang <qiwan@redhat.com>
2021-03-06 11:26:50 -05:00
Kubernetes Prow Robot
56bcd562a4 Merge pull request #96973 from chenyw1990/optimizationRuntimeContainerLog
Optimization log: add containerName to log
2021-03-05 20:55:41 -08:00
Kubernetes Prow Robot
7125496e66 Merge pull request #99735 from bobbypage/beta-graceful-shutdown
Promote kubelet graceful node shutdown to beta
2021-03-05 17:23:42 -08:00
David Porter
893f5fd4f0 Promote kubelet graceful node shutdown to beta
- Change the feature gate from alpha to beta and enable it by default

- Update a few of the unit tests due to feature gate being enabled by
  default

- Small refactor in `nodeshutdown_manager` which adds `featureEnabled`
  function (which checks that feature gate and that
  `kubeletConfig.ShutdownGracePeriod > 0`).

- Use `featureEnabled()` to exit early from shutdown manager in the case
  that the feature is disabled

- Update kubelet config defaulting to be explicit that
  `ShutdownGracePeriod` and `ShutdownGracePeriodCriticalPods` default to
  zero and update the godoc comments.

- Update defaults and add featureGate tag in api config godoc.

With this feature now in beta and the feature gate enabled by default,
to enable graceful shutdown all that will be required is to configure
`ShutdownGracePeriod` and `ShutdownGracePeriodCriticalPods` in the
kubelet config. If not configured, they will be defaulted to zero, and
graceful shutdown will effectively be disabled.
2021-03-05 15:21:37 -08:00
Sladyn
cee2c42a54 Apply suggestions from code review
Co-authored-by: Marek Siarkowicz <marek.siarkowicz@protonmail.com>
2021-03-05 23:59:23 +05:30