Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Official 1.20 Release Docs #24138

Merged
merged 143 commits into from Dec 8, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
143 commits
Select commit Hold shift + click to select a range
e151cba
initial commit
savitharaghunathan Aug 26, 2020
da08874
Update docs for ServiceAccountIssuerDiscovery beta
mtaufen Jun 8, 2020
ecf851c
promote SupportNodePidsLimit and SupportPodPidsLimit to GA
SergeyKanzhelev Sep 16, 2020
a604926
Merge pull request #23883 from SergeyKanzhelev/promotePidLimitsToGA
k8s-ci-robot Sep 17, 2020
7b7ed6b
documentation for pid limiting functionality
SergeyKanzhelev Sep 17, 2020
957ad74
Update config.toml to show 1.20 as the current version
annajung Sep 25, 2020
656f8c6
Merge pull request #24139 from annajung/dev-1.20-config-update
k8s-ci-robot Sep 25, 2020
fc65276
Merge remote-tracking branch 'upstream/master' into dev-1.20
kcmartin Oct 1, 2020
5e7cb3f
Merge pull request #24290 from kcmartin/merged-master-dev-1.20
k8s-ci-robot Oct 5, 2020
0964999
Promote startupProbe to GA in 1.20
matthyx Oct 7, 2020
59cf7a4
Merge master into dev-1.20 to keep in sync
somtochiama Oct 7, 2020
a2c00cb
Merge pull request #24408 from SomtochiAma/merged-master-dev-1.20
k8s-ci-robot Oct 8, 2020
f37f473
add documentation for system:monitoring rbac policy
logicalhan Jul 24, 2020
245f8b6
Merge pull request #23929 from SergeyKanzhelev/pidlimiting
k8s-ci-robot Oct 9, 2020
5f2e72b
Merge pull request #23332 from matthyx/master
k8s-ci-robot Oct 10, 2020
f1ac8ef
Merge pull request #23887 from mtaufen/said-beta-docs-1.20
k8s-ci-robot Oct 14, 2020
34695f9
dev-1.20 branch version for pod-lifecycle.md for feature state for k8…
Oct 14, 2020
091d314
Merge pull request #24572 from reylejano-rxm/merged-master-dev-1.20
k8s-ci-robot Oct 15, 2020
be23194
SCTP is GA in 1.20
danwinship Oct 16, 2020
6fc4e10
exec credential provider: cluster info details
ankeesler Oct 19, 2020
c29185d
Updating doc to reflect that setHostnameAsFQDN feature will be beta i…
javidiaz Oct 2, 2020
c06d366
Merge pull request #24350 from javidiaz/betahostnamefqdn
k8s-ci-robot Oct 20, 2020
7cfdee6
Merge pull request #22715 from logicalhan/monitoring
k8s-ci-robot Oct 20, 2020
a9b21d2
Merge pull request #24593 from danwinship/sctp-ga
k8s-ci-robot Oct 20, 2020
45ec60b
Merge master into dev-1.20 to keep in sync
eagleusb Oct 22, 2020
ed07d3f
Merge pull request #24686 from eagleusb/merged-master-dev-1.20
k8s-ci-robot Oct 22, 2020
72a66b6
RuntimeClass GA
SergeyKanzhelev Oct 23, 2020
ca7cb78
Update content/en/docs/concepts/containers/runtime-class.md
SergeyKanzhelev Oct 26, 2020
ca462f9
add doc for CSIServiceAccountToken
zshihang Oct 27, 2020
d2c6359
Merge remote-tracking branch 'upstream/master' into dev-1.20
kcmartin Oct 28, 2020
e1652d9
Merge pull request #24771 from kcmartin/merged-master-dev-1.20
k8s-ci-robot Oct 29, 2020
6d51948
Update content/en/docs/reference/access-authn-authz/admission-control…
SergeyKanzhelev Oct 30, 2020
63283f5
Update content/en/docs/reference/access-authn-authz/admission-control…
SergeyKanzhelev Oct 30, 2020
06fda82
Update content/en/docs/reference/command-line-tools-reference/feature…
SergeyKanzhelev Oct 30, 2020
21362d8
Update content/en/docs/reference/command-line-tools-reference/feature…
SergeyKanzhelev Oct 30, 2020
f2ef3d0
Graduate KubeletPodResources to GA
Oct 30, 2020
99ecc57
Graduate DisableAcceleratorUsageMetrics to beta
Oct 30, 2020
fd242da
Merge pull request #24755 from RenaudWasTaken/dev-1.20
k8s-ci-robot Oct 30, 2020
f5a8dbe
HTTP Probe - Documenting about default headers
fonsecas72 Oct 31, 2020
b838012
Added docs about container resource metric source for HPA (#23523)
arjunrn Nov 2, 2020
974932e
Merge pull request #24756 from fonsecas72/95641
k8s-ci-robot Nov 3, 2020
ac3d7d5
Graduate default pod topology spread to beta
alculquicondor Nov 2, 2020
dbce914
Merge pull request #24852 from alculquicondor/beta-default-spread
k8s-ci-robot Nov 3, 2020
c855d5d
exec credential provider: make arbitrary JSON more explicit
ankeesler Nov 3, 2020
48266bd
Merge remote-tracking branch 'upstream/master' into dev-1.20
Nov 4, 2020
44fd64e
Merge pull request #24639 from ankeesler/exec-cred-prov-cluster-info
k8s-ci-robot Nov 4, 2020
3590d73
TokenRequest and TokenRequestProjection are GA now (#24823)
zshihang Nov 4, 2020
b436a81
Merge pull request #24889 from reylejano-rxm/merged-master-dev-1.20
k8s-ci-robot Nov 4, 2020
3ea3856
Merge master into dev-1.20 branch to fix Integration Branch
Nov 4, 2020
c0eaf69
Merge pull request #24891 from reylejano-rxm/merged-master-dev-1.20
k8s-ci-robot Nov 4, 2020
1bcc07a
Introduce windows-priorityclass flag to kubelet
ravisantoshgudimetla Nov 9, 2020
179c821
Update kubectl debug docs for 1.20 release (#24847)
verb Nov 9, 2020
c5ffbec
placeholder CL for fsgroup policy beta
mattcary Nov 5, 2020
3b68d53
flow control metrics: switch to snake_case for labels
Nov 5, 2020
220a7b2
ExecProbeTimeout feature gate introduction
SergeyKanzhelev Nov 10, 2020
4d832ee
Merge pull request #24964 from adtac/apflabel-1.20
k8s-ci-robot Nov 10, 2020
91d02f3
Merge pull request #24786 from RenaudWasTaken/pod-resources-docs
k8s-ci-robot Nov 10, 2020
45da527
Add usage for per-profile node affinity
alculquicondor Nov 5, 2020
8a3244f
Dual-stack docs for Kubernetes 1.20
bridgetkromhout Oct 26, 2020
0b4952d
separate RootCAConfigMap from BoundServiceAccountToken and Beta
zshihang Nov 5, 2020
b19e11d
Merge pull request #24909 from zshihang/token
k8s-ci-robot Nov 11, 2020
b2bac63
Merge pull request #24725 from bridgetkromhout/dual-stack-1-20
k8s-ci-robot Nov 11, 2020
cf5cc96
Merge pull request #24914 from alculquicondor/inherent-node-affinity
k8s-ci-robot Nov 11, 2020
d81ee23
Update content/en/docs/tasks/configure-pod-container/configure-livene…
SergeyKanzhelev Nov 11, 2020
1a13c6b
Update content/en/docs/tasks/configure-pod-container/configure-livene…
SergeyKanzhelev Nov 11, 2020
1f30654
Update content/en/docs/tasks/configure-pod-container/configure-livene…
SergeyKanzhelev Nov 11, 2020
1885c0b
Merge pull request #24692 from SergeyKanzhelev/ExecProbeTimeout
k8s-ci-robot Nov 11, 2020
bb33373
Merge branch 'master' into dev-1.20
irvifa Nov 11, 2020
3450e8b
Merge pull request #24913 from mattcary/placerholder-fsgroup
k8s-ci-robot Nov 12, 2020
d275df5
Merge pull request #24954 from ravisantoshgudimetla/patch-6
k8s-ci-robot Nov 12, 2020
2054614
Merge pull request #24698 from SergeyKanzhelev/runtimeGA
k8s-ci-robot Nov 12, 2020
4f0068f
Add information how to enable cronjob controller v2
soltysh Nov 4, 2020
2300a3e
HTTP Probe - Update documentation about default headers
fonsecas72 Nov 12, 2020
68898b0
Merge pull request #24885 from soltysh/cronjob_alpha
k8s-ci-robot Nov 12, 2020
d0c6d30
kubeadm: promote the "kubeadm certs" command to GA (#24410)
neolit123 Nov 12, 2020
9d0d7f0
Merge pull request #24991 from fonsecas72/default-headers-http-probe
k8s-ci-robot Nov 12, 2020
8666ce1
Merge pull request #24754 from zshihang/dev-1.20
k8s-ci-robot Nov 12, 2020
e62b6e1
Add doc for snapshot GA (#24849)
xing-yang Nov 13, 2020
4b95114
Move CSIVolumeFSGroupPolicy to beta
huffmanca Nov 13, 2020
dc8c7db
Merge pull request #24916 from huffmanca/move-fsgroup-beta
k8s-ci-robot Nov 13, 2020
bf23ba2
Update API Priority and Fairness doc for graduatino to beta (#24975)
MikeSpreitzer Nov 14, 2020
d91e7f0
Document the use of mixed protocol values for LoadBalancer Type of Se…
Nov 3, 2020
ebf1a61
Add the MixedProtocolLBService to the feature gate list
Nov 14, 2020
dd402ef
kubeadm: remove general output from "kubeadm init"
neolit123 Nov 5, 2020
d249077
Merge pull request #24907 from neolit123/1.20-master-label
k8s-ci-robot Nov 16, 2020
b9cd9dd
add description for CSIServiceAccountToken
zshihang Nov 13, 2020
c640aee
explain the new MixedProtocolLBService feature flag
Nov 17, 2020
db743f5
Merge pull request #25028 from zshihang/dev-1.20
k8s-ci-robot Nov 17, 2020
8d96fcb
Update GC cross-namespace note
liggitt Nov 17, 2020
2faaed6
Merge pull request #24874 from janosi/mixedprotocollb
k8s-ci-robot Nov 18, 2020
d046f6d
layouts/shortcodes/skew.html: add latestVersionAddMinor
neolit123 Nov 18, 2020
ba77c90
Merge remote-tracking branch 'upstream/master' into dev-1.20
somtochiama Nov 19, 2020
dbf0117
Merge pull request #25115 from SomtochiAma/merged-master-dev-1.20
k8s-ci-robot Nov 19, 2020
b675adf
kubeadm: upgrade the upgrade documentation for 1.20
neolit123 Nov 5, 2020
13cc09f
Add graceful node shutdown feature gate
bobbypage Nov 6, 2020
2c2cdeb
Merge pull request #24908 from neolit123/1.20-upgrade-docs
k8s-ci-robot Nov 20, 2020
b41ee25
doc updates for graduating Windows + containerd support to stable (#2…
marosset Nov 20, 2020
e3076ed
Merge pull request #24918 from bobbypage/graceful-node-shutdown-docs
k8s-ci-robot Nov 20, 2020
7181cb5
Misc updates to intro-windows-in-kubernetes.md
marosset Nov 20, 2020
c927e9a
Updating EndpointSlice docs for Kubernetes 1.20
robscott Nov 20, 2020
9206f25
Updating Service AppProtocol to GA
robscott Nov 6, 2020
0c31d5b
Merge pull request #24933 from robscott/app-protocol-ga
k8s-ci-robot Nov 21, 2020
de2de57
Merge pull request #24935 from robscott/endpointslice-ga
k8s-ci-robot Nov 23, 2020
ffd2d2e
Merge pull request #25091 from liggitt/gc
k8s-ci-robot Nov 23, 2020
3dc68c9
Add section for defaulting and nullable
Jefftree Nov 19, 2020
6c44418
Merge pull request #25150 from marosset/intro-windows-updates
k8s-ci-robot Nov 23, 2020
41024ed
Merge pull request #25151 from Jefftree/defaults
k8s-ci-robot Nov 23, 2020
bd1a75b
docs: Scheduler resource tracking metrics
smarterclayton Nov 5, 2020
6616a83
Merge pull request #24910 from smarterclayton/metrics
k8s-ci-robot Nov 23, 2020
d7a3f5d
Document log sanitization feature (#24845)
serathius Nov 24, 2020
1de3ac5
Small wording update on Log sanitization docs
rf232 Nov 24, 2020
5fc5632
Merge pull request #25201 from rf232/patch-1
k8s-ci-robot Nov 24, 2020
4255393
Update Topology Manager documentation to include the scope feature
k-wiatrzyk Nov 13, 2020
2ad9e02
document kube-apiserver identity
roycaihw Nov 20, 2020
6fa3e91
Merge pull request #24781 from k-wiatrzyk/dev-1.20-tm-scope
k8s-ci-robot Nov 24, 2020
e9ea77e
fix trailing spaces in Service docs
andrewsykim Nov 25, 2020
d8ae375
Merge remote-tracking branch 'upstream/master' into dev-1.20 to keep …
Nov 25, 2020
1b7708b
rm podpresent
jlsong01 Nov 25, 2020
0577cb6
Merge pull request #25236 from reylejano-rxm/merged-master-dev-1.20
k8s-ci-robot Nov 25, 2020
b138a70
Merge pull request #25238 from jlsong01/rm_podpresent
k8s-ci-robot Nov 26, 2020
acb476b
add docs for service.spec.allocateLoadBalancerNodePorts
andrewsykim Nov 25, 2020
9949da1
add feature gate docs for ServiceLBNodePortControl
andrewsykim Nov 28, 2020
79a6030
Merge pull request #24921 from roycaihw/apiserver-identity
k8s-ci-robot Nov 29, 2020
53def8d
Merge pull request #25228 from andrewsykim/disable-lb-node-ports
k8s-ci-robot Dec 1, 2020
6b4ab17
Add documentation for downward API hugepages
derekwaynecarr Nov 5, 2020
5307e26
Merge pull request #24904 from derekwaynecarr/hugepages-downward-api
k8s-ci-robot Dec 1, 2020
af23941
Document SizeMemoryBackedVolumes feature for 1.20
derekwaynecarr Nov 5, 2020
21c05e4
Merge pull request #24906 from derekwaynecarr/memory-backed-size
k8s-ci-robot Dec 1, 2020
5a67cf2
fix trailing spaces in endpointslice doc
andrewsykim Nov 25, 2020
d591f7e
add docs for EndpointSlice conditions
andrewsykim Nov 25, 2020
d942111
Merge pull request #25229 from andrewsykim/epslice-terminating-docs
k8s-ci-robot Dec 2, 2020
dbdde62
Add docs for configuring kubelet credential provider plugins
andrewsykim Nov 6, 2020
924acf8
add feature gate docs for KubeletCredentialProviders
andrewsykim Dec 2, 2020
864d7ec
Merge pull request #25226 from andrewsykim/kubelet-credential-provider
k8s-ci-robot Dec 3, 2020
86d9492
Merge remote-tracking branch 'upstream/master' into merged-master-dev…
kcmartin Dec 3, 2020
251092f
Merge pull request #25378 from kcmartin/merged-master-dev-1.20
k8s-ci-robot Dec 3, 2020
edc2d65
Generate reference doc for 1.20.0-rc.0 and update api index page
Dec 3, 2020
ad31a3d
Remove cloud controller manager reference doc
Dec 3, 2020
09665e4
Fix typo in Debug Running Pods task
verb Dec 7, 2020
2b625fc
Merge pull request #25458 from verb/1.20-kubectl-debug-typo
k8s-ci-robot Dec 7, 2020
72d21d0
Merge pull request #25386 from annajung/dev-1.20-ref-doc
k8s-ci-robot Dec 7, 2020
7f43ace
Merge remote-tracking branch 'upstream/master' into dev-1.20
Dec 7, 2020
44a3070
Update config.toml for release 1.20
Dec 7, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
38 changes: 19 additions & 19 deletions config.toml
Expand Up @@ -138,10 +138,10 @@ time_format_default = "January 02, 2006 at 3:04 PM PST"
description = "Production-Grade Container Orchestration"
showedit = true

latest = "v1.19"
latest = "v1.20"

fullversion = "v1.19.0"
version = "v1.19"
fullversion = "v1.20.0"
version = "v1.20"
githubbranch = "master"
docsbranch = "master"
deprecated = false
Expand Down Expand Up @@ -183,40 +183,40 @@ js = [
]

[[params.versions]]
fullversion = "v1.19.0"
version = "v1.19"
githubbranch = "v1.19.0"
fullversion = "v1.20.0"
version = "v1.20"
githubbranch = "v1.20.0"
docsbranch = "master"
url = "https://kubernetes.io"

[[params.versions]]
fullversion = "v1.18.8"
fullversion = "v1.19.4"
version = "v1.19"
githubbranch = "v1.19.4"
docsbranch = "release-1.19"
url = "https://v1-19.docs.kubernetes.io"

[[params.versions]]
fullversion = "v1.18.12"
version = "v1.18"
githubbranch = "v1.18.8"
githubbranch = "v1.18.12"
docsbranch = "release-1.18"
url = "https://v1-18.docs.kubernetes.io"

[[params.versions]]
fullversion = "v1.17.11"
fullversion = "v1.17.14"
version = "v1.17"
githubbranch = "v1.17.11"
githubbranch = "v1.17.14"
docsbranch = "release-1.17"
url = "https://v1-17.docs.kubernetes.io"

[[params.versions]]
fullversion = "v1.16.14"
fullversion = "v1.16.15"
version = "v1.16"
githubbranch = "v1.16.14"
githubbranch = "v1.16.15"
docsbranch = "release-1.16"
url = "https://v1-16.docs.kubernetes.io"

[[params.versions]]
fullversion = "v1.15.12"
version = "v1.15"
githubbranch = "v1.15.12"
docsbranch = "release-1.15"
url = "https://v1-15.docs.kubernetes.io"


# User interface configuration
[params.ui]
Expand Down
20 changes: 20 additions & 0 deletions content/en/docs/concepts/architecture/nodes.md
Expand Up @@ -330,6 +330,26 @@ the kubelet can use topology hints when making resource assignment decisions.
See [Control Topology Management Policies on a Node](/docs/tasks/administer-cluster/topology-manager/)
for more information.

## Graceful Node Shutdown {#graceful-node-shutdown}

{{< feature-state state="alpha" for_k8s_version="v1.20" >}}

If you have enabled the `GracefulNodeShutdown` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/), then the kubelet attempts to detect the node system shutdown and terminates pods running on the node.
Kubelet ensures that pods follow the normal [pod termination process](/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination) during the node shutdown.

When the `GracefulNodeShutdown` feature gate is enabled, kubelet uses [systemd inhibitor locks](https://www.freedesktop.org/wiki/Software/systemd/inhibit/) to delay the node shutdown with a given duration. During a shutdown kubelet terminates pods in two phases:

1. Terminate regular pods running on the node.
2. Terminate [critical pods](/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/#marking-pod-as-critical) running on the node.

Graceful Node Shutdown feature is configured with two [`KubeletConfiguration`](/docs/tasks/administer-cluster/kubelet-config-file/) options:
* `ShutdownGracePeriod`:
* Specifies the total duration that the node should delay the shutdown by. This is the total grace period for pod termination for both regular and [critical pods](/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/#marking-pod-as-critical).
* `ShutdownGracePeriodCriticalPods`:
* Specifies the duration used to terminate [critical pods](/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/#marking-pod-as-critical) during a node shutdown. This should be less than `ShutdownGracePeriod`.

For example, if `ShutdownGracePeriod=30s`, and `ShutdownGracePeriodCriticalPods=10s`, kubelet will delay the node shutdown by 30 seconds. During the shutdown, the first 20 (30-10) seconds would be reserved for gracefully terminating normal pods, and the last 10 seconds would be reserved for terminating [critical pods](/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/#marking-pod-as-critical).


## {{% heading "whatsnext" %}}

Expand Down
75 changes: 44 additions & 31 deletions content/en/docs/concepts/cluster-administration/flow-control.md
Expand Up @@ -6,7 +6,7 @@ min-kubernetes-server-version: v1.18

<!-- overview -->

{{< feature-state state="alpha" for_k8s_version="v1.18" >}}
{{< feature-state state="beta" for_k8s_version="v1.20" >}}

Controlling the behavior of the Kubernetes API server in an overload situation
is a key task for cluster administrators. The {{< glossary_tooltip
Expand Down Expand Up @@ -37,25 +37,30 @@ Fairness feature enabled.

<!-- body -->

## Enabling API Priority and Fairness
## Enabling/Disabling API Priority and Fairness

The API Priority and Fairness feature is controlled by a feature gate
and is not enabled by default. See
and is enabled by default. See
[Feature Gates](/docs/reference/command-line-tools-reference/feature-gates/)
for a general explanation of feature gates and how to enable and disable them. The
name of the feature gate for APF is "APIPriorityAndFairness". This
feature also involves an {{< glossary_tooltip term_id="api-group"
text="API Group" >}} that must be enabled. You can do these
things by adding the following command-line flags to your
`kube-apiserver` invocation:
for a general explanation of feature gates and how to enable and
disable them. The name of the feature gate for APF is
"APIPriorityAndFairness". This feature also involves an {{<
glossary_tooltip term_id="api-group" text="API Group" >}} with: (a) a
`v1alpha1` version, disabled by default, and (b) a `v1beta1`
version, enabled by default. You can disable the feature
gate and API group v1beta1 version by adding the following
command-line flags to your `kube-apiserver` invocation:

```shell
kube-apiserver \
--feature-gates=APIPriorityAndFairness=true \
--runtime-config=flowcontrol.apiserver.k8s.io/v1alpha1=true \
--feature-gates=APIPriorityAndFairness=false \
--runtime-config=flowcontrol.apiserver.k8s.io/v1beta1=false \
# …and other flags as usual
```

Alternatively, you can enable the v1alpha1 version of the API group
with `--runtime-config=flowcontrol.apiserver.k8s.io/v1beta1=true`.

The command-line flag `--enable-priority-and-fairness=false` will disable the
API Priority and Fairness feature, even if other flags have enabled it.

Expand Down Expand Up @@ -189,12 +194,14 @@ that originate from outside your cluster.

## Resources
The flow control API involves two kinds of resources.
[PriorityLevelConfigurations](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#prioritylevelconfiguration-v1alpha1-flowcontrol-apiserver-k8s-io)
[PriorityLevelConfigurations](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#prioritylevelconfiguration-v1beta1-flowcontrol-apiserver-k8s-io)
define the available isolation classes, the share of the available concurrency
budget that each can handle, and allow for fine-tuning queuing behavior.
[FlowSchemas](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#flowschema-v1alpha1-flowcontrol-apiserver-k8s-io)
are used to classify individual inbound requests, matching each to a single
PriorityLevelConfiguration.
[FlowSchemas](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#flowschema-v1beta1-flowcontrol-apiserver-k8s-io)
are used to classify individual inbound requests, matching each to a
single PriorityLevelConfiguration. There is also a `v1alpha1` version
of the same API group, and it has the same Kinds with the same syntax and
semantics.

### PriorityLevelConfiguration
A PriorityLevelConfiguration represents a single isolation class. Each
Expand Down Expand Up @@ -331,15 +338,22 @@ PriorityLevelConfigurations.

### Metrics

{{< note >}}
In versions of Kubernetes before v1.20, the labels `flow_schema` and
`priority_level` were inconsistently named `flowSchema` and `priorityLevel`,
respectively. If you're running Kubernetes versions v1.19 and earlier, you
should refer to the documentation for your version.
{{< /note >}}

When you enable the API Priority and Fairness feature, the kube-apiserver
exports additional metrics. Monitoring these can help you determine whether your
configuration is inappropriately throttling important traffic, or find
poorly-behaved workloads that may be harming system health.

* `apiserver_flowcontrol_rejected_requests_total` is a counter vector
(cumulative since server start) of requests that were rejected,
broken down by the labels `flowSchema` (indicating the one that
matched the request), `priorityLevel` (indicating the one to which
broken down by the labels `flow_schema` (indicating the one that
matched the request), `priority_level` (indicating the one to which
the request was assigned), and `reason`. The `reason` label will be
have one of the following values:
* `queue-full`, indicating that too many requests were already
Expand All @@ -352,8 +366,8 @@ poorly-behaved workloads that may be harming system health.

* `apiserver_flowcontrol_dispatched_requests_total` is a counter
vector (cumulative since server start) of requests that began
executing, broken down by the labels `flowSchema` (indicating the
one that matched the request) and `priorityLevel` (indicating the
executing, broken down by the labels `flow_schema` (indicating the
one that matched the request) and `priority_level` (indicating the
one to which the request was assigned).

* `apiserver_current_inqueue_requests` is a gauge vector of recent
Expand Down Expand Up @@ -384,25 +398,25 @@ poorly-behaved workloads that may be harming system health.

* `apiserver_flowcontrol_current_inqueue_requests` is a gauge vector
holding the instantaneous number of queued (not executing) requests,
broken down by the labels `priorityLevel` and `flowSchema`.
broken down by the labels `priority_level` and `flow_schema`.

* `apiserver_flowcontrol_current_executing_requests` is a gauge vector
holding the instantaneous number of executing (not waiting in a
queue) requests, broken down by the labels `priorityLevel` and
`flowSchema`.
queue) requests, broken down by the labels `priority_level` and
`flow_schema`.

* `apiserver_flowcontrol_priority_level_request_count_samples` is a
histogram vector of observations of the then-current number of
requests broken down by the labels `phase` (which takes on the
values `waiting` and `executing`) and `priorityLevel`. Each
values `waiting` and `executing`) and `priority_level`. Each
histogram gets observations taken periodically, up through the last
activity of the relevant sort. The observations are made at a high
rate.

* `apiserver_flowcontrol_priority_level_request_count_watermarks` is a
histogram vector of high or low water marks of the number of
requests broken down by the labels `phase` (which takes on the
values `waiting` and `executing`) and `priorityLevel`; the label
values `waiting` and `executing`) and `priority_level`; the label
`mark` takes on values `high` and `low`. The water marks are
accumulated over windows bounded by the times when an observation
was added to
Expand All @@ -411,7 +425,7 @@ poorly-behaved workloads that may be harming system health.

* `apiserver_flowcontrol_request_queue_length_after_enqueue` is a
histogram vector of queue lengths for the queues, broken down by
the labels `priorityLevel` and `flowSchema`, as sampled by the
the labels `priority_level` and `flow_schema`, as sampled by the
enqueued requests. Each request that gets queued contributes one
sample to its histogram, reporting the length of the queue just
after the request was added. Note that this produces different
Expand All @@ -428,12 +442,12 @@ poorly-behaved workloads that may be harming system health.
* `apiserver_flowcontrol_request_concurrency_limit` is a gauge vector
holding the computed concurrency limit (based on the API server's
total concurrency limit and PriorityLevelConfigurations' concurrency
shares), broken down by the label `priorityLevel`.
shares), broken down by the label `priority_level`.

* `apiserver_flowcontrol_request_wait_duration_seconds` is a histogram
vector of how long requests spent queued, broken down by the labels
`flowSchema` (indicating which one matched the request),
`priorityLevel` (indicating the one to which the request was
`flow_schema` (indicating which one matched the request),
`priority_level` (indicating the one to which the request was
assigned), and `execute` (indicating whether the request started
executing).
{{< note >}}
Expand All @@ -445,8 +459,8 @@ poorly-behaved workloads that may be harming system health.

* `apiserver_flowcontrol_request_execution_seconds` is a histogram
vector of how long requests took to actually execute, broken down by
the labels `flowSchema` (indicating which one matched the request)
and `priorityLevel` (indicating the one to which the request was
the labels `flow_schema` (indicating which one matched the request)
and `priority_level` (indicating the one to which the request was
assigned).

### Debug endpoints
Expand Down Expand Up @@ -515,4 +529,3 @@ For background information on design details for API priority and fairness, see
the [enhancement proposal](https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/20190228-priority-and-fairness.md).
You can make suggestions and feature requests via [SIG API
Machinery](https://github.com/kubernetes/community/tree/master/sig-api-machinery).

21 changes: 21 additions & 0 deletions content/en/docs/concepts/cluster-administration/system-logs.md
Expand Up @@ -91,6 +91,27 @@ List of components currently supporting JSON format:
* {{< glossary_tooltip term_id="kube-scheduler" text="kube-scheduler" >}}
* {{< glossary_tooltip term_id="kubelet" text="kubelet" >}}

### Log sanitization

{{< feature-state for_k8s_version="v1.20" state="alpha" >}}

{{<warning >}}
Log sanitization might incur significant computation overhead and therefore should not be enabled in production.
{{< /warning >}}

The `--experimental-logging-sanitization` flag enables the klog sanitization filter.
If enabled all log arguments are inspected for fields tagged as sensitive data (e.g. passwords, keys, tokens) and logging of these fields will be prevented.

List of components currently supporting log sanitization:
* kube-controller-manager
* kube-apiserver
* kube-scheduler
* kubelet

{{< note >}}
The Log sanitization filter does not prevent user workload logs from leaking sensitive data.
{{< /note >}}

### Log verbosity level

The `-v` flag controls log verbosity. Increasing the value increases the number of logged events. Decreasing the value decreases the number of logged events.
Expand Down
22 changes: 22 additions & 0 deletions content/en/docs/concepts/cluster-administration/system-metrics.md
Expand Up @@ -129,6 +129,28 @@ cloudprovider_gce_api_request_duration_seconds { request = "detach_disk"}
cloudprovider_gce_api_request_duration_seconds { request = "list_disk"}
```


### kube-scheduler metrics

{{< feature-state for_k8s_version="v1.20" state="alpha" >}}

The scheduler exposes optional metrics that reports the requested resources and the desired limits of all running pods. These metrics can be used to build capacity planning dashboards, assess current or historical scheduling limits, quickly identify workloads that cannot schedule due to lack of resources, and compare actual usage to the pod's request.

The kube-scheduler identifies the resource [requests and limits](/docs/concepts/configuration/manage-resources-containers/) configured for each Pod; when either a request or limit is non-zero, the kube-scheduler reports a metrics timeseries. The time series is labelled by:
- namespace
- pod name
- the node where the pod is scheduled or an empty string if not yet scheduled
- priority
- the assigned scheduler for that pod
- the name of the resource (for example, `cpu`)
- the unit of the resource if known (for example, `cores`)

Once a pod reaches completion (has a `restartPolicy` of `Never` or `OnFailure` and is in the `Succeeded` or `Failed` pod phase, or has been deleted and all containers have a terminated state) the series is no longer reported since the scheduler is now free to schedule other pods to run. The two metrics are called `kube_pod_resource_request` and `kube_pod_resource_limit`.

The metrics are exposed at the HTTP endpoint `/metrics/resources` and require the same authorization as the `/metrics`
endpoint on the scheduler. You must use the `--show-hidden-metrics-for-version=1.20` flag to expose these alpha stability metrics.


## {{% heading "whatsnext" %}}

* Read about the [Prometheus text format](https://github.com/prometheus/docs/blob/master/content/docs/instrumenting/exposition_formats.md#text-based-format) for metrics
Expand Down
Expand Up @@ -600,6 +600,10 @@ spec:
example.com/foo: 1
```

## PID limiting

Process ID (PID) limits allow for the configuration of a kubelet to limit the number of PIDs that a given Pod can consume. See [Pid Limiting](/docs/concepts/policy/pid-limiting/) for information.

## Troubleshooting

### My Pods are pending with event message failedScheduling
Expand Down
5 changes: 2 additions & 3 deletions content/en/docs/concepts/containers/runtime-class.md
Expand Up @@ -9,7 +9,7 @@ weight: 20

<!-- overview -->

{{< feature-state for_k8s_version="v1.14" state="beta" >}}
{{< feature-state for_k8s_version="v1.20" state="stable" >}}

This page describes the RuntimeClass resource and runtime selection mechanism.

Expand Down Expand Up @@ -66,7 +66,7 @@ The RuntimeClass resource currently only has 2 significant fields: the RuntimeCl
(`metadata.name`) and the handler (`handler`). The object definition looks like this:

```yaml
apiVersion: node.k8s.io/v1beta1 # RuntimeClass is defined in the node.k8s.io API group
apiVersion: node.k8s.io/v1 # RuntimeClass is defined in the node.k8s.io API group
kind: RuntimeClass
metadata:
name: myclass # The name the RuntimeClass will be referenced by
Expand Down Expand Up @@ -186,4 +186,3 @@ are accounted for in Kubernetes.
- Read about the [Pod Overhead](/docs/concepts/scheduling-eviction/pod-overhead/) concept
- [PodOverhead Feature Design](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190226-pod-overhead.md)


Expand Up @@ -204,7 +204,8 @@ DaemonSet, `/var/lib/kubelet/pod-resources` must be mounted as a
{{< glossary_tooltip term_id="volume" >}} in the plugin's
[PodSpec](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#podspec-v1-core).

Support for the "PodResources service" requires `KubeletPodResources` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) to be enabled. It is enabled by default starting with Kubernetes 1.15.
Support for the "PodResources service" requires `KubeletPodResources` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) to be enabled.
It is enabled by default starting with Kubernetes 1.15 and is v1 since Kubernetes 1.20.

## Device Plugin integration with the Topology Manager

Expand Down