Skip to content

Commit

Permalink
kubernetes: add section comparing kubeadm and kind provisioners
Browse files Browse the repository at this point in the history
Signed-off-by: Cesar Talledo <[email protected]>
  • Loading branch information
ctalledo committed Feb 26, 2025
1 parent 0d5196d commit d6038c8
Showing 1 changed file with 31 additions and 3 deletions.
34 changes: 31 additions & 3 deletions content/manuals/desktop/features/kubernetes.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,7 @@ Turning the Kubernetes server on or off in Docker Desktop does not affect your o
1. Open the Docker Desktop Dashboard and navigate to **Settings**.
2. Select the **Kubernetes** tab.
3. Toggle on **Enable Kubernetes**.
4. Choose your cluster provisioning method. You can choose either **Kubeadm** or **kind** if you are signed in and are using Docker Desktop version 4.38 or later.

If you select **kind** you can also choose the Kubernetes version and the number of nodes.
4. Choose your [cluster provisioning method](#cluster-provisioning-method).
5. Select **Apply & Restart** to save the settings. This sets up the images required to run the Kubernetes server as containers, and installs the `kubectl` command-line tool on your system at `/usr/local/bin/kubectl` (Mac) or `C:\Program Files\Docker\Docker\Resources\bin\kubectl.exe` (Windows).

> [!NOTE]
Expand All @@ -51,6 +49,36 @@ You can check which version of Kubernetes you're on with:
$ kubectl version
```

### Cluster Provisioning Method

Docker Desktop Kubernetes can be provisioned with either the `kubeadm` or `kind`
provisioners.

`kubeadm` is the older provisioner. It supports a single-node cluster, you can't select the kubernetes

Check warning on line 57 in content/manuals/desktop/features/kubernetes.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.SentenceLength] Write short, concise sentences. (<=40 words) Raw Output: {"message": "[Docker.SentenceLength] Write short, concise sentences. (\u003c=40 words)", "location": {"path": "content/manuals/desktop/features/kubernetes.md", "range": {"start": {"line": 57, "column": 37}}}, "severity": "WARNING"}
version, it's slower to provision than `kind`, and it's not supported by [Enhanced Container Isolation](../../security/for-admins/hardened-desktop/enhanced-container-isolation/index.md)(ECI),
meaning that if ECI is enabled the cluster works but it's not protected by ECI.

`kind` is the newer provisioner, and is available if you are signed in and are
using Docker Desktop version 4.38 or later. It supports multi-node clusters (for

Check warning on line 62 in content/manuals/desktop/features/kubernetes.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.SentenceLength] Write short, concise sentences. (<=40 words) Raw Output: {"message": "[Docker.SentenceLength] Write short, concise sentences. (\u003c=40 words)", "location": {"path": "content/manuals/desktop/features/kubernetes.md", "range": {"start": {"line": 62, "column": 45}}}, "severity": "WARNING"}
a more realistic Kubernetes setup), you can choose the Kubernetes version, it's
faster to provision than `kubeadm`, and it's supported by ECI (i.e., when ECI is
enabled, the Kubernetes cluster runs in unprivileged Docker containers). Note
however that `kind` requires that Docker Desktop be configured to use the
[containerd image store](containerd.md) (the default image store in Docker
Desktop 4.34 and later).

The table below summarizes this comparison.

Check warning on line 70 in content/manuals/desktop/features/kubernetes.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.RecommendedWords] Consider using 'following' instead of 'below' Raw Output: {"message": "[Docker.RecommendedWords] Consider using 'following' instead of 'below'", "location": {"path": "content/manuals/desktop/features/kubernetes.md", "range": {"start": {"line": 70, "column": 11}}}, "severity": "INFO"}

| Feature | kubeadm | kind |

Check failure on line 72 in content/manuals/desktop/features/kubernetes.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Kubeadm' instead of 'kubeadm'. Raw Output: {"message": "[Vale.Terms] Use 'Kubeadm' instead of 'kubeadm'.", "location": {"path": "content/manuals/desktop/features/kubernetes.md", "range": {"start": {"line": 72, "column": 13}}}, "severity": "ERROR"}
| :------ | :-----: | :--: |
| Availability | Docker Desktop 4.0+ | Docker Desktop 4.34+ (requires sign in) |
| Multi-node cluster support | No | Yes |
| Kubernetes version selector | No | Yes |
| Speed to provision | ~1 min | ~30 seconds |
| Protected by ECI | No | Yes |
| Works with containerd image store | Yes | Yes |
| Works with Docker image store | Yes | No |

### Additional settings

#### Kubernetes dashboard
Expand Down

0 comments on commit d6038c8

Please sign in to comment.