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

kep: pod-overhead: address formatting issue #985

Merged
merged 1 commit into from
Apr 26, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 29 additions & 21 deletions keps/sig-node/20190226-pod-overhead.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,26 +25,29 @@ This includes the Summary and Motivation sections.

## Table of Contents

* [Release Signoff Checklist](#release-signoff-checklist)
* [Summary](#summary)
* [Motivation](#motivation)
+ [Goals](#goals)
+ [Non-Goals](#non-goals)
* [Proposal](#proposal)
+ [API Design](#api-design)
- [Release Signoff Checklist](#release-signoff-checklist)
- [Summary](#summary)
- [Motivation](#motivation)
- [Goals](#goals)
- [Non-Goals](#non-goals)
- [Proposal](#proposal)
- [API Design](#api-design)
- [Pod overhead](#pod-overhead)
+ [RuntimeClass admission controller](#runtimeclass-admission-controller)
+ [Implementation Details](#implementation-details)
+ [Risks and Mitigations](#risks-and-mitigations)
* [Design Details](#design-details)
+ [Graduation Criteria](#graduation-criteria)
+ [Upgrade / Downgrade Strategy](#upgrade---downgrade-strategy)
+ [Version Skew Strategy](#version-skew-strategy)
* [Implementation History](#implementation-history)
* [Drawbacks](#drawbacks)
* [Alternatives](#alternatives)
+ [Introduce pod level resource requirements](#introduce-pod-level-resource-requirements)
+ [Leaving the PodSpec unchanged](#leaving-the-podspec-unchanged)
- [Container Runtime Interface (CRI)](#container-runtime-interface-cri)
- [ResourceQuota changes](#resourcequota-changes)
- [RuntimeClass changes](#runtimeclass-changes)
- [RuntimeClass admission controller](#runtimeclass-admission-controller)
- [Implementation Details](#implementation-details)
- [Risks and Mitigations](#risks-and-mitigations)
- [Design Details](#design-details)
- [Graduation Criteria](#graduation-criteria)
- [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy)
- [Version Skew Strategy](#version-skew-strategy)
- [Implementation History](#implementation-history)
- [Drawbacks](#drawbacks)
- [Alternatives](#alternatives)
- [Introduce pod level resource requirements](#introduce-pod-level-resource-requirements)
- [Leaving the PodSpec unchanged](#leaving-the-podspec-unchanged)

## Release Signoff Checklist

Expand Down Expand Up @@ -128,6 +131,7 @@ Pod {
Overhead *ResourceRequirements
}
}
```

All PodSpec and RuntimeClass fields are immutable, including the `Overhead` field. For scheduling,
the pod `Overhead` resource requests are added to the container resource requests.
Expand All @@ -137,7 +141,7 @@ pod overhead is accountable. If the pod specifies a resource limit, and all cont
pod specify a limit, then the sum of those limits becomes a pod-level limit, enforced through the
pod cgroup.

Users are not expected to manually set `Overhead`; any prior values will being set will result in the workload
Users are not expected to manually set `Overhead`; any prior values being set will result in the workload
being rejected. If runtimeClass is configured and selected in the PodSpec, `Overhead` will be set to the value
defined in the corresponding runtimeClass. This is described in detail in
[RuntimeClass admission controller](#runtimeclass-admission-controller).
Expand All @@ -161,18 +165,22 @@ instance for sizing the Kata Container VM.
LinuxContainerResources is added to the LinuxPodSandboxConfig for both overhead and container
totals, as optional fields:

```
type LinuxPodSandboxConfig struct {
Overhead *LinuxContainerResources
ContainerResources *LinuxContainerResources
}
```

WindowsContainerResources is added to a newly created WindowsPodSandboxConfig for both overhead and container
totals, as optional fields:

```
type WindowsPodSandboxConfig struct {
Overhead *WindowsContainerResources
ContainerResources *WindowsContainerResources
}
```

ContainerResources field in the LinuxPodSandboxConfig and WindowsPodSandboxConfig matches the pod-level limits
(i.e. total of container limits). Overhead is tracked separately since the sandbox overhead won't necessarily
Expand All @@ -187,14 +195,14 @@ add the pod `Overhead`to the container resource request summation.

Expand the runtimeClass type to include sandbox overhead, `Overhead *Overhead`.

```
Where Overhead is defined as follows:

```
type Overhead struct {
PodFixed *ResourceRequirements
}
```

In the future, the `Overhead` definition could be extended to include fields that describe a percentage
based overhead (scale the overhead based on the size of the pod), or container-level overheads. These are
left out of the scope of this proposal.
Expand Down