Commit Graph

111903 Commits

Author SHA1 Message Date
Mike Spreitzer
feb4227788 apiserver: finish implementation of borrowing in APF
Also make some design changes exposed in testing and review.

Do not remove the ambiguous old metric
`apiserver_flowcontrol_request_concurrency_limit` because reviewers
though it is too early.  This creates a problem, that metric can not
keep both of its old meanings.  I chose the configured concurrency
limit.

Testing has revealed a design flaw, which concerns the initialization
of the seat demand state tracking.  The current design in the KEP is
as follows.

> Adjustment is also done on configuration change … For a newly
> introduced priority level, we set HighSeatDemand, AvgSeatDemand, and
> SmoothSeatDemand to NominalCL-LendableSD/2 and StDevSeatDemand to
> zero.

But this does not work out well at server startup.  As part of its
construction, the APF controller does a configuration change with zero
objects read, to initialize its request-handling state.  As always,
the two mandatory priority levels are implicitly added whenever they
are not read.  So this initial reconfig has one non-exempt priority
level, the mandatory one called catch-all --- and it gets its
SmoothSeatDemand initialized to the whole server concurrency limit.
From there it decays slowly, as per the regular design.  So for a
fairly long time, it appears to have a high demand and competes
strongly with the other priority levels.  Its Target is higher than
all the others, once they start to show up.  It properly gets a low
NominalCL once other levels show up, which actually makes it compete
harder for borrowing: it has an exceptionally high Target and a rather
low NominalCL.

I have considered the following fix.  The idea is that the designed
initialization is not appropriate before all the default objects are
read.  So the fix is to have a mode bit in the controller.  In the
initial state, those seat demand tracking variables are set to zero.
Once the config-producing controller detects that all the default
objects are pre-existing, it flips the mode bit.  In the later mode,
the seat demand tracking variables are initialized as originally
designed.

However, that still gives preferential treatment to the default
PriorityLevelConfiguration objects, over any that may be added later.

So I have made a universal and simpler fix: always initialize those
seat demand tracking variables to zero.  Even if a lot of load shows
up quickly, remember that adjustments are frequent (every 10 sec) and
the very next one will fully respond to that load.

Also: revise logging logic, to log at numerically lower V level when
there is a change.

Also: bug fix in float64close.

Also, separate imports in some file

Co-authored-by: Han Kang <hankang@google.com>
2022-11-08 21:51:44 -08:00
Abu Kashem
172b27c80c apiserver: update borrowing parameters for apf bootstrap objects 2022-11-08 13:23:10 -08:00
Abu Kashem
424b23bb15 apiserver: fix defaulting for apf bootstrap configuration 2022-11-08 13:23:09 -08:00
Abu Kashem
284020cfdf apiserver: update API testdata at HEAD for flowcontrol 2022-11-08 13:23:08 -08:00
Abu Kashem
c5520d6ba2 apiserver: validate borrowing for flowcontrol API 2022-11-08 13:23:07 -08:00
Abu Kashem
ca949d5188 apiserver: set borrowing defaults for flowcontrol API 2022-11-08 13:22:59 -08:00
Abu Kashem
a76223f8da apiserver: add generated files for borrowing in flowcontrol 2022-11-08 13:16:44 -08:00
Abu Kashem
a7e84a4537 apiserver: add fields for borrowing in apf flowcontrol 2022-11-08 13:16:44 -08:00
Kubernetes Prow Robot
2f22404003
Merge pull request #113747 from thockin/safer-controller-init-map
Make static controller registration slightly safer
2022-11-08 12:43:25 -08:00
Kubernetes Prow Robot
e361272423
Merge pull request #113698 from dashpole/missing_apiserver_migration
Migrate another usage of utiltrace to component base tracing
2022-11-08 12:43:17 -08:00
Kubernetes Prow Robot
3a99a5954d
Merge pull request #113629 from andrewsykim/apiserver-identity-beta
Promote APIServerIdentity to Beta
2022-11-08 12:43:10 -08:00
Kubernetes Prow Robot
da735b5415
Merge pull request #113596 from jsafrane/selinux-reconstruction
Reconstruct SELinux  mount label
2022-11-08 12:43:03 -08:00
Kubernetes Prow Robot
b3082c5e5b
Merge pull request #113582 from wzshiming/fix/grpc-probe-log
Fix grpc probe log
2022-11-08 12:42:56 -08:00
Kubernetes Prow Robot
74352d88aa
Merge pull request #113577 from pacoxu/prometheus-client
upgrade github.com/prometheus/client_golang to v1.14.0
2022-11-08 12:42:49 -08:00
Kubernetes Prow Robot
89ad7b37c5
Merge pull request #113444 from weikhor/test_kubectl_clean_up
Clean up testing code of kubectl cmd section
2022-11-08 12:42:43 -08:00
Kubernetes Prow Robot
6687496832
Merge pull request #113383 from pohly/e2e-failure-handling
e2e: improve failure handling
2022-11-08 12:42:31 -08:00
Kubernetes Prow Robot
83fe3aae4b
Merge pull request #113340 from Richabanker/cloud-cm-metrics-slis
add metrics/slis to cloud-controller-manager health checks
2022-11-08 12:42:19 -08:00
Kubernetes Prow Robot
81bd2496bc
Merge pull request #113723 from jsafrane/update-azurefile-comment
Fix comments on CSI migration feature gates
2022-11-08 10:38:58 -08:00
Kubernetes Prow Robot
c40d961324
Merge pull request #113718 from mimowo/handling-pod-failures-kubelet-nits
Add comments to clarify the updated logic in kubelet's status_manager
2022-11-08 10:38:51 -08:00
Kubernetes Prow Robot
bbbb79712c
Merge pull request #113116 from brianpursley/allowlist
kubectl apply: Deprecate --prune-whitelist in favor of --prune-allowlist
2022-11-08 10:38:43 -08:00
Kubernetes Prow Robot
7752c3a8e0
Merge pull request #112679 from dgrisonnet/fix-apiserver-sli
Improve apiserver SLI metric name
2022-11-08 10:38:31 -08:00
Kubernetes Prow Robot
114594e1d2
Merge pull request #111384 from harche/evented_pleg_pr
Add Support for Evented PLEG
2022-11-08 10:38:19 -08:00
Tim Hockin
d577e2bfb1
Make static controller registration slightly safer
As we have more and more of these, the risk of a dup name seems
non-zero.
2022-11-08 09:44:19 -08:00
Kubernetes Prow Robot
c36127e330
Merge pull request #113736 from liggitt/deflake-limit-range
Deflake limitrange singleflight test
2022-11-08 09:34:34 -08:00
Kubernetes Prow Robot
e2b9fd760d
Merge pull request #113710 from kerthcet/deprecate/enable-taint-manager
Deprecate CLI flag pod-eviction-timeout in KCM
2022-11-08 09:34:22 -08:00
Jan Safranek
167d27a790 Save SELinux context both in MountDevice and SetUp
And make it feature gated in both places.
2022-11-08 18:10:51 +01:00
Kubernetes Prow Robot
b3ed40b167
Merge pull request #113733 from soltysh/revert_112127
Revert "Update daemonSet status even if syncDaemonSet fails"
2022-11-08 08:30:31 -08:00
Kubernetes Prow Robot
e21438fca5
Merge pull request #113719 from pacoxu/runc-v1.1.4
upgrade runc to v1.1.4
2022-11-08 08:30:20 -08:00
weikhor
69b0b731e9 Clean up testing code of kubectl cmd section 2022-11-08 22:46:21 +08:00
Harshal Patil
86284d42f8
Add support for Evented PLEG
Signed-off-by: Harshal Patil <harpatil@redhat.com>
Co-authored-by: Swarup Ghosh <swghosh@redhat.com>
2022-11-08 20:06:16 +05:30
Jordan Liggitt
dac0306596
Deflake limitrange singleflight test 2022-11-08 09:28:21 -05:00
Kubernetes Prow Robot
2b7b5245ea
Merge pull request #112637 from sanposhiho/pre-filter-skip
feature(scheduler): won't run Filter if PreFilter returned a Skip status
2022-11-08 06:16:37 -08:00
Marly Puckett
e721272d10
Update redacting functionality to redact all sensitive info in config when printing with view (#109189)
* Add RedactSecrets function

* Move RedactSecrets method to existing RawBytesData case

* Update TestRedactSecrets to use new pattern of os.CreateTemp()
2022-11-08 06:16:25 -08:00
Maciej Szulik
3c93d540c6
Revert "Update daemonSet status even if syncDaemonSet fails"
This reverts commit 2ee024a4df.
2022-11-08 15:01:09 +01:00
Jan Safranek
d6c36736d5 Add mock CSI driver test for SELinux mount 2022-11-08 13:37:09 +01:00
Kubernetes Prow Robot
34ca18d1d0
Merge pull request #113728 from pawbana/add-scope-to-api-server-tracking
Added scope to api server tracing
2022-11-08 04:30:22 -08:00
Jan Safranek
802979c295 Add SELinux disruptive test 2022-11-08 12:42:20 +01:00
Paweł Banaszewski
e4169d7f43 Added scope as tracing attribute 2022-11-08 11:22:57 +00:00
Kubernetes Prow Robot
aef9a37df9
Merge pull request #113010 from soltysh/promote_job_metrics
Promote job metrics
2022-11-08 03:16:32 -08:00
Kubernetes Prow Robot
3451501c2e
Merge pull request #112737 from gjkim42/cleanup-defer-from-sts
StatefulSet: Cleanup the complex defer function updating the status
2022-11-08 03:16:21 -08:00
Jan Safranek
cf912a2512 Update SELinux context log
SELinux context discovered from Pod is not final, it can be cleared when a
volume plugin does not support SELinux or the volume is not
ReadWriteOncePod. Update the existing log line + add a new one for easier
debugging.
2022-11-08 11:17:38 +01:00
Jan Safranek
e575e60ea4 Reconstruct SELinux mount option
When reconstructing volumes from disk after kubelet restart, reconstruct
also context=XYZ mount option and add it to the ActualStateOfWorld.
2022-11-08 11:17:38 +01:00
Jan Safranek
d62dfb0c23 Fix comment on CSI migration feature gates
So we know when to remove them.
2022-11-08 10:47:15 +01:00
Kubernetes Prow Robot
e3d7cb5bc5
Merge pull request #113664 from laphets/kubectl-empty-ingress-backend-fix
Fix kubectl describe ingress when default backend is empty
2022-11-08 01:44:36 -08:00
Kubernetes Prow Robot
5a1fb17e2e
Merge pull request #112137 from MikeSpreitzer/add-concurrency-allocation-algorithm
Add solver for APF concurrency rebalancing
2022-11-08 01:44:21 -08:00
Michal Wozniak
026b97352f Add comments to clarify the updated logic in kubelet's status_manager 2022-11-08 10:21:25 +01:00
Paco Xu
ecbafed7c3 upgrade runc to v1.1.4 2022-11-08 16:42:48 +08:00
Paco Xu
c3add32859 upgrade prometheus-client to v1.14.0 2022-11-08 16:25:12 +08:00
Kubernetes Prow Robot
95bd687a28
Merge pull request #113275 from Huang-Wei/kep-3521-B
[KEP-3521] Part 2: Core scheduling implementation
2022-11-07 23:18:19 -08:00
Kubernetes Prow Robot
f2c89045f4
Merge pull request #113699 from liggitt/manjusaka/fix-107415
Add extra value validation for matchExpression field in LabelSelector
2022-11-07 21:52:30 -08:00