modifying docs for SidecarContainers beta graduation (#43471)
Signed-off-by: Matthias Bertschy <matthias.bertschy@gmail.com>pull/43946/head
parent
f4d41c2df9
commit
8f7cfdbf9c
|
@ -111,9 +111,9 @@ Some Pods have {{< glossary_tooltip text="init containers" term_id="init-contain
|
|||
as well as {{< glossary_tooltip text="app containers" term_id="app-container" >}}.
|
||||
By default, init containers run and complete before the app containers are started.
|
||||
|
||||
{{< feature-state for_k8s_version="v1.28" state="alpha" >}}
|
||||
{{< feature-state for_k8s_version="v1.29" state="beta" >}}
|
||||
|
||||
Enabling the `SidecarContainers` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/)
|
||||
Enabled by default, the `SidecarContainers` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/)
|
||||
allows you to specify `restartPolicy: Always` for init containers.
|
||||
Setting the `Always` restart policy ensures that the init containers where you set it are
|
||||
kept running during the entire lifetime of the Pod.
|
||||
|
|
|
@ -291,9 +291,9 @@ validation error is thrown for any container sharing a name with another.
|
|||
|
||||
#### API for sidecar containers
|
||||
|
||||
{{< feature-state for_k8s_version="v1.28" state="alpha" >}}
|
||||
{{< feature-state for_k8s_version="v1.29" state="beta" >}}
|
||||
|
||||
Starting with Kubernetes 1.28 in alpha, a feature gate named `SidecarContainers`
|
||||
Enabled by default with Kubernetes 1.29, a feature gate named `SidecarContainers`
|
||||
allows you to specify a `restartPolicy` for init containers which is independent of
|
||||
the Pod and other init containers. Container [probes](/docs/concepts/workloads/pods/pod-lifecycle/#types-of-probe)
|
||||
can also be added to control their lifecycle.
|
||||
|
@ -376,4 +376,4 @@ Kubernetes, consult the documentation for the version you are using.
|
|||
* Read about [creating a Pod that has an init container](/docs/tasks/configure-pod-container/configure-pod-initialization/#create-a-pod-that-has-an-init-container)
|
||||
* Learn how to [debug init containers](/docs/tasks/debug/debug-application/debug-init-containers/)
|
||||
* Read about an overview of [kubelet](/docs/reference/command-line-tools-reference/kubelet/) and [kubectl](/docs/reference/kubectl/)
|
||||
* Learn about the [types of probes](/docs/concepts/workloads/pods/pod-lifecycle/#types-of-probe): liveness, readiness, startup probe.
|
||||
* Learn about the [types of probes](/docs/concepts/workloads/pods/pod-lifecycle/#types-of-probe): liveness, readiness, startup probe.
|
|
@ -504,6 +504,22 @@ termination grace period _begins_. The behavior above is described when the
|
|||
feature gate `EndpointSliceTerminatingCondition` is enabled.
|
||||
{{</note>}}
|
||||
|
||||
{{<note>}}
|
||||
Beginning with Kubernetes 1.29, if your Pod includes one or more sidecar containers
|
||||
(init containers with an Always restart policy), the kubelet will delay sending
|
||||
the TERM signal to these sidecar containers until the last main container has fully terminated.
|
||||
The sidecar containers will be terminated in the reverse order they are defined in the Pod spec.
|
||||
This ensures that sidecar containers continue serving the other containers in the Pod until they are no longer needed.
|
||||
|
||||
Note that slow termination of a main container will also delay the termination of the sidecar containers.
|
||||
If the grace period expires before the termination process is complete, the Pod may enter emergency termination.
|
||||
In this case, all remaining containers in the Pod will be terminated simultaneously with a short grace period.
|
||||
|
||||
Similarly, if the Pod has a preStop hook that exceeds the termination grace period, emergency termination may occur.
|
||||
In general, if you have used preStop hooks to control the termination order without sidecar containers, you can now
|
||||
remove them and allow the kubelet to manage sidecar termination automatically.
|
||||
{{</note>}}
|
||||
|
||||
1. When the grace period expires, the kubelet triggers forcible shutdown. The container runtime sends
|
||||
`SIGKILL` to any processes still running in any container in the Pod.
|
||||
The kubelet also cleans up a hidden `pause` container if that container runtime uses one.
|
||||
|
@ -584,4 +600,4 @@ for more details.
|
|||
|
||||
* For detailed information about Pod and container status in the API, see
|
||||
the API reference documentation covering
|
||||
[`status`](/docs/reference/kubernetes-api/workload-resources/pod-v1/#PodStatus) for Pod.
|
||||
[`status`](/docs/reference/kubernetes-api/workload-resources/pod-v1/#PodStatus) for Pod.
|
|
@ -185,7 +185,8 @@ For a reference to old feature gates that are removed, please refer to
|
|||
| `SELinuxMountReadWriteOncePod` | `true` | Beta | 1.28 | |
|
||||
| `SchedulerQueueingHints` | `true` | Beta | 1.28 | |
|
||||
| `SecurityContextDeny` | `false` | Alpha | 1.27 | |
|
||||
| `SidecarContainers` | `false` | Alpha | 1.28 | |
|
||||
| `SidecarContainers` | `false` | Alpha | 1.28 | 1.28 |
|
||||
| `SidecarContainers` | `true` | Beta | 1.29 | |
|
||||
| `SizeMemoryBackedVolumes` | `false` | Alpha | 1.20 | 1.21 |
|
||||
| `SizeMemoryBackedVolumes` | `true` | Beta | 1.22 | |
|
||||
| `StableLoadBalancerNodeSet` | `true` | Beta | 1.27 | |
|
||||
|
|
Loading…
Reference in New Issue