Commit Graph

9310 Commits

Author SHA1 Message Date
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
shiyajuan123
6b53f8c65d migrate kubelet/cm/container logs to structured logging 2021-03-09 18:27:54 +08: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
JunYang
024ce9a843 Structured Logging migration: modify cri part logs of kubelet.
Signed-off-by: JunYang <yang.jun22@zte.com.cn>
2021-03-09 08:53:13 +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
Hussaina Begum Nandyala
2424c7388d Migrating pkg/kubelet/winstats to structured logging
Signed-off-by: Hussaina Begum Nandyala <hexxdump@gmail.com>
2021-03-08 13:12:58 +05:30
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
qingwave
8f2d913acd migrate kubelet/preemption and kubelet/logs to structured logging 2021-03-06 13:13:18 +08: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
Sladyn Nunes
5ba3bf1bca kubelet: migrate pkg/kubelet/cloudresource to structured logging 2021-03-05 23:59:23 +05:30
Nabarun Pal
b009a12f61 migrate pkg/kubelet/token to structured logging
Signed-off-by: Nabarun Pal <pal.nabarun95@gmail.com>
2021-03-05 22:40:46 +05:30
Navid Shaikh
dbe5476a2a Migrate pkg/kubelet/status to structured logging 2021-03-05 20:58:46 +05:30
Krzysztof Gibuła
86b0efcd77 Migrate pkg/kubelet/prober to structured logging 2021-03-05 16:10:09 +01:00
Kubernetes Prow Robot
55f255208a Merge pull request #83730 from claudiubelu/windows/containerd-etc-hosts
Windows: Fixes /etc/hosts file mounting support for containerd
2021-03-05 05:08:22 -08:00
Aditi Sharma
5af10e9828 Migrate to structured logging
migrate pkg/kubelet/server to structured logging.

Signed-off-by: Aditi Sharma <adi.sky17@gmail.com>
2021-03-05 17:55:48 +05:30
Matthias Bertschy
431e6a7044 Move readinessManager updates handling to kubelet 2021-03-05 07:02:25 +01:00
Matthias Bertschy
eed218a3a2 Move startupManager updates handling to kubelet 2021-03-05 07:02:25 +01:00
Matthias Bertschy
4870e64ac1 Improve update time of readiness state 2021-03-05 07:02:24 +01:00