Skip to content

Commit

Permalink
Apply suggestions from code review
Browse files Browse the repository at this point in the history
Co-authored-by: Qiming Teng <tengqm@outlook.com>
Co-authored-by: Tim Bannister <tim@scalefactory.com>
Co-authored-by: divya-mohan0209 <divya.mohan0209@gmail.com>
  • Loading branch information
4 people committed Jun 2, 2022
1 parent 98a31da commit db6814f
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ then paging can slow down performance.
## CPU management {#resource-management-cpu}

Windows can limit the amount of CPU time allocated for different processes but cannot
gaurentee a miniumum amount of CPU time.
guarantee a minimum amount of CPU time.

On Windows, the kubelet supports a command-line flag to set the
[scheduling priority](https://docs.microsoft.com/windows/win32/procthread/scheduling-priorities) of the
Expand All @@ -56,12 +56,13 @@ More information on the allowable values and their meaning is available at
[Windows Priority Classes](https://docs.microsoft.com/en-us/windows/win32/procthread/scheduling-priorities#priority-class).
To ensure that running Pods do not starve the kubelet of CPU cycles, set this flag to `ABOVE_NORMAL_PRIORITY_CLASS` or above.

## Resource Reservation {$resource-reservation}
## Resource reservation {#resource-reservation}

To account for memory and CPU used by the operating system, the container runtime, and by
Kubernetes host processes such as the kubelet, you can (and should) reserve
memory and CPU resrouces with the `--kube-reserved` and/or `--system-reserved` kubelet parameters.
On Windows these values are only used to calculate the node's [allocatable](/docs/tasks/administer-cluster/reserve-compute-resources/#node-allocatable) resources.
memory and CPU resources with the `--kube-reserved` and/or `--system-reserved` kubelet flags.
On Windows these values are only used to calculate the node's
[allocatable](/docs/tasks/administer-cluster/reserve-compute-resources/#node-allocatable) resources.

{{< caution >}}
As you deploy workloads, set resource memory and CPU limits on containers.
Expand All @@ -71,8 +72,8 @@ Scheduling pods without limits may over-provision the Windows nodes and in extre
cases can cause the nodes to become unhealthy.
{{< /caution >}}

On Windows, good practice is to reserve at least 2GiB of memory.
On Windows, a good practice is to reserve at least 2GiB of memory.

To determine how much CPU to reservce,
To determine how much CPU to reserve,
identify the maximum pod density for each node and monitor the CPU usage of
the system services running there, then choose a value that meets your workload needs.
22 changes: 13 additions & 9 deletions content/en/docs/concepts/windows/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ including:

* HugePages: not supported for Windows containers
* Privileged containers: not supported for Windows containers.
[HostProcess Containers](/docs/tasks/configure-pod-container/create-hostprocess-pod.md) offer similar functionality.
[HostProcess Containers](/docs/tasks/configure-pod-container/create-hostprocess-pod/) offer similar functionality.
* TerminationGracePeriod: requires containerD

Not all features of shared namespaces are supported. See [API compatibility](#api)
Expand Down Expand Up @@ -79,7 +79,7 @@ section refers to several key workload abstractions and how they map to Windows.

* Single or multiple containers per Pod with process isolation and volume sharing
* Pod `status` fields
* Readiness, Liveness, and startup probes
* Readiness, liveness, and startup probes
* postStart & preStop container lifecycle hooks
* ConfigMap, Secrets: as environment variables or volumes
* `emptyDir` volumes
Expand Down Expand Up @@ -156,8 +156,10 @@ Some kubelet command line options behave differently on Windows, as described be
* Eviction by using `--enforce-node-allocable` is not implemented
* Eviction by using `--eviction-hard` and `--eviction-soft` are not implemented
* When running on a Windows node the kubelet does not have memory or CPU
restrictions. `--kube-reserved` and `--system-reserved` only subtract from `NodeAllocatable` and do not gaurentee resources.
See [Resource Management for Windows nodes](/docs/concepts/configuration/windows-resource-management/#resource-reservation) for more information.
restrictions. `--kube-reserved` and `--system-reserved` only subtract from `NodeAllocatable`
and do not guarantee resource provided for workloads.
See [Resource Management for Windows nodes](/docs/concepts/configuration/windows-resource-management/#resource-reservation)
for more information.
* The `MemoryPressure` Condition is not implemented
* The kubelet does not take OOM eviction actions

Expand Down Expand Up @@ -268,8 +270,8 @@ None of the Pod [`securityContext`](/docs/reference/kubernetes-api/workload-reso

The node problem detector (see
[Monitor Node Health](/docs/tasks/debug/debug-cluster/monitor-node-health/))
has prelimiary support for Windows.
For more information visit the the project's [GitHub page](https://github.com/kubernetes/node-problem-detector#windows)
has preliminary support for Windows.
For more information, visit the project's [GitHub page](https://github.com/kubernetes/node-problem-detector#windows).

## Pause container

Expand Down Expand Up @@ -321,7 +323,8 @@ kernel patch.

### Mirantis Container Runtime {#mcr}

[Mirantis Container Runtime](https://docs.mirantis.com/mcr/20.10/overview.html) (MCR) is available as a container runtime for all Windows Server 2019 and later versions.
[Mirantis Container Runtime](https://docs.mirantis.com/mcr/20.10/overview.html) (MCR)
is available as a container runtime for all Windows Server 2019 and later versions.

See [Install MCR on Windows Servers](https://docs.mirantis.com/mcr/20.10/install/mcr-windows.html) for more information.

Expand Down Expand Up @@ -362,7 +365,7 @@ If you have what looks like a bug, or you would like to
make a feature request, please follow the [SIG Windows contributing guide](https://github.com/kubernetes/community/blob/master/sig-windows/CONTRIBUTING.md#reporting-issues-and-feature-requests) to create a new issue.
You should first search the list of issues in case it was
reported previously and comment with your experience on the issue and add additional
logs. SIG-Windows Slack is also a great avenue to get some initial support and
logs. SIG Windows channel on the Kubernetes Slack is also a great avenue to get some initial support and
troubleshooting ideas prior to creating a ticket.

## Deployment tools
Expand All @@ -376,7 +379,8 @@ The Kubernetes [cluster API](https://cluster-api.sigs.k8s.io/) project also prov

## Windows distribution channels

For a detailed explanation of Windows distribution channels see the [Microsoft documentation](https://docs.microsoft.com/en-us/windows-server/get-started-19/servicing-channels-19).
For a detailed explanation of Windows distribution channels see the
[Microsoft documentation](https://docs.microsoft.com/en-us/windows-server/get-started-19/servicing-channels-19).

Information on the different Windows Server servicing channels
including their support models can be found at
Expand Down

0 comments on commit db6814f

Please sign in to comment.