diff --git a/content/en/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md b/content/en/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md index 0fab518493..72a99384ae 100644 --- a/content/en/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md +++ b/content/en/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md @@ -167,7 +167,7 @@ Pod onto Nodes, to restart the daemon Pod after failure, and to help automate up Previously, the versioning scheme required the Device Plugin's API version to match exactly the Kubelet's version. Since the graduation of this feature to Beta in v1.12 this is no longer a hard requirement. The API is versioned and has been stable since -Beta graduation of this feature. Because of this, Kubelet upgrades should be seamless +Beta graduation of this feature. Because of this, kubelet upgrades should be seamless but there still may be changes in the API before stabilization making upgrades not guaranteed to be non-breaking. diff --git a/content/en/docs/reference/command-line-tools-reference/feature-gates.md b/content/en/docs/reference/command-line-tools-reference/feature-gates.md index 495bb4dcca..17b44767f8 100644 --- a/content/en/docs/reference/command-line-tools-reference/feature-gates.md +++ b/content/en/docs/reference/command-line-tools-reference/feature-gates.md @@ -92,8 +92,6 @@ For a reference to old feature gates that are removed, please refer to | `CustomResourceValidationExpressions` | `true` | Beta | 1.25 | | | `DelegateFSGroupToCSIDriver` | `false` | Alpha | 1.22 | 1.22 | | `DelegateFSGroupToCSIDriver` | `true` | Beta | 1.23 | | -| `DevicePlugins` | `false` | Alpha | 1.8 | 1.9 | -| `DevicePlugins` | `true` | Beta | 1.10 | | | `DisableCloudProviders` | `false` | Alpha | 1.22 | | | `DisableKubeletCloudCredentialProviders` | `false` | Alpha | 1.23 | | | `DownwardAPIHugePages` | `false` | Alpha | 1.20 | 1.20 | @@ -254,6 +252,9 @@ For a reference to old feature gates that are removed, please refer to | `DisableAcceleratorUsageMetrics` | `false` | Alpha | 1.19 | 1.19 | | `DisableAcceleratorUsageMetrics` | `true` | Beta | 1.20 | 1.24 | | `DisableAcceleratorUsageMetrics` | `true` | GA | 1.25 |- | +| `DevicePlugins` | `false` | Alpha | 1.8 | 1.9 | +| `DevicePlugins` | `true` | Beta | 1.10 | 1.25 | +| `DevicePlugins` | `true` | GA | 1.26 | - | | `DryRun` | `false` | Alpha | 1.12 | 1.12 | | `DryRun` | `true` | Beta | 1.13 | 1.18 | | `DryRun` | `true` | GA | 1.19 | - | diff --git a/content/en/docs/reference/node/device-plugin-api-versions.md b/content/en/docs/reference/node/device-plugin-api-versions.md index aeeb890e40..40803fafc0 100644 --- a/content/en/docs/reference/node/device-plugin-api-versions.md +++ b/content/en/docs/reference/node/device-plugin-api-versions.md @@ -4,14 +4,20 @@ title: Kubelet Device Manager API Versions weight: 10 --- -Please note that the device plugin API is present here: https://github.com/kubernetes/kubelet/tree/master/pkg/apis/deviceplugin. +This page provides details of version compatibility between the Kubernetes +[device plugin API](https://github.com/kubernetes/kubelet/tree/master/pkg/apis/deviceplugin), +and different versions of Kubernetes itself. -#### Compatibility matrix +## Compatibility matrix -| | Kubernetes 1.21 | Kubernetes 1.22 | Kubernetes 1.23 | Kubernetes 1.24 | Kubernetes 1.25 | Kubernetes 1.26 | -|---------------|------------------|-----------------|-----------------|-----------------|-----------------|-----------------| -| `v1alpha1` | - | - | - | - | - | - | -| `v1beta1` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| | `v1alpha1` | `v1beta1` | +|-----------------|-------------|-------------| +| Kubernetes 1.21 | - | ✓ | +| Kubernetes 1.22 | - | ✓ | +| Kubernetes 1.23 | - | ✓ | +| Kubernetes 1.24 | - | ✓ | +| Kubernetes 1.25 | - | ✓ | +| Kubernetes 1.26 | - | ✓ | Key: @@ -20,9 +26,8 @@ Key: * `+` device plugin API has features or API objects that may not be present in the Kubernetes cluster, either due to that device plugin API has additional new API, or that the server has removed old API. However, everything they have in - common (i.e., most APIs) will work. Please note that alpha APIs may vanish or - change significantly in a single release. + common (most other APIs) will work. Note that alpha APIs may vanish or + change significantly between one minor release and the next. * `-` The Kubernetes cluster has features the device plugin API can't use, either due to the server has additional new API, or that device plugin API has - removed old API. However, everything they share in common (i.e., most APIs) - will work. \ No newline at end of file + removed old API. However, everything they share in common (most APIs) will work. diff --git a/content/en/docs/tasks/administer-cluster/cluster-upgrade.md b/content/en/docs/tasks/administer-cluster/cluster-upgrade.md index e3f9595d26..cdb7c23ec7 100644 --- a/content/en/docs/tasks/administer-cluster/cluster-upgrade.md +++ b/content/en/docs/tasks/administer-cluster/cluster-upgrade.md @@ -91,3 +91,12 @@ kubectl convert -f pod.yaml --output-version v1 The `kubectl` tool replaces the contents of `pod.yaml` with a manifest that sets `kind` to Pod (unchanged), but with a revised `apiVersion`. + +### Device Plugins + +If your cluster is running device plugins and the node needs to been upgraded to a Kubernetes +release with a newer device plugin API version, device plugins must be upgraded to support +both version before node is upgraded for continuous functioning of the device allocations +during the upgrade. + +Refer to [API compatiblity](docs/concepts/extend-kubernetes/compute-storage-net/device-plugins.md/#api-compatibility) and [Kubelet Device Manager API Versions](docs/reference/node/device-plugin-api-versions.md) for more details. diff --git a/content/en/docs/tasks/manage-gpus/scheduling-gpus.md b/content/en/docs/tasks/manage-gpus/scheduling-gpus.md index 4220e2242a..40e7bf547b 100644 --- a/content/en/docs/tasks/manage-gpus/scheduling-gpus.md +++ b/content/en/docs/tasks/manage-gpus/scheduling-gpus.md @@ -11,7 +11,8 @@ description: Configure and schedule GPUs for use as a resource by nodes in a clu {{< feature-state state="stable" for_k8s_version="v1.26" >}} Kubernetes includes **stable** support for managing AMD and NVIDIA GPUs -(graphical processing units) across several nodes. +(graphical processing units) across different nodes in your cluster, using +{{< glossary_tooltip text="device plugins" term_id="device-plugin" >}}. This page describes how users can consume GPUs, and outlines some of the limitations in the implementation. @@ -20,8 +21,7 @@ some of the limitations in the implementation. ## Using device plugins -Kubernetes implements {{< glossary_tooltip text="device plugins" term_id="device-plugin" >}} -to let Pods access specialized hardware features such as GPUs. +Kubernetes implements device plugins to let Pods access specialized hardware features such as GPUs. {{% thirdparty-content %}}