如何在 Docker 桌面上创建一个新的 Kubernetes 集群?

How to create a new Kubernetes cluster on Docker Desktop?

我似乎无法弄清楚如何在我计算机上的 Docker 桌面 运行 实例上创建一个全新的 Kubernetes 集群。 (这是 Mac 还是 PC 应该无关紧要)。

我知道如何 -set- 当前集群上下文,但我只有一个集群,所以我无法设置任何其他内容。

### What's my current context pointing to?
$ kubectl config current-context
docker-for-desktop

### Set the context to be "docker-for-desktop" cluster
$ kubectl config use-context docker-for-desktop
Switched to context “docker-for-desktop”

更多问题:

  1. 如果我有多个集群,那么只有其中一个(当前 'set' 一个)会 运行 与另一个的 stopped/sleeping?
  2. 集群彼此独立,所以如果我可以随意使用一个集群,那么这应该不会影响另一个集群

确保复选框已启用

Kubernetes 配置文件描述了 3 个对象:clustersuserscontexts

集群 - 集群名称 + 详细信息 - 主机和证书。

user - 用户名和凭据,授权您访问任何集群主机。

上下文的作用是在用户集群之间建立连接,因此,当您使用该上下文时,kubectl 将使用上下文对象中指定的用户凭据授权您针对上下文对象中指定的集群。示例 context 对象:

apiVersion: v1
current-context: ""
kind: Config
preferences: {}

clusters:
- cluster:
    certificate-authority: xxxxxxxxx
    server: xxxxxxxxx
  name: gke_dev-yufuyjfvk_us-central1-a_standard-cluster-1

users:
- name: efrat-dev
  user:
    client-certificate: xxxxxxxxx
    client-key: xxxxxxxxx

contexts:
- context:
    cluster: gke_dev-yufuyjfvk_us-central1-a_standard-cluster-1
    user: efrat-dev
  name: gke-dev

kubectl config 子命令在配置文件中有一组命令 generate cluster, user & context entries

来自 docker-desktop

的多个 k8s 集群

在后台,当您启用 k8s 时,docker 桌面将 kubernetes 组件下载为 docker 图像,并且服务器侦听 https://localhost:6443。这一切都是自动完成的,所以除非你打算自己 运行 整个结构我不认为你可以将它配置为 运行 多个集群。

关于您的其他问题:

当您设置上下文时,kubectl 会将 current-context 设置为该上下文,并且每个 kubectl 您 运行 将使用上下文的用户凭据。这并不意味着集群已经死亡。它根本不会影响他们。

使用 Docker Desktop,您可以使用 k3d 等开发工具创建多个集群。在 Docker 桌面首选项下禁用 Kubernetes,因为您不需要它。然后安装 XCode CLT、Homebrew 并使用 Brew 在本地安装 k3d。接下来发出命令:

k3d cluster create one && \
k3d cluster create two

这将创建两个集群,自动切换上下文。 运行 k3d cluster list 列出可用集群并使用 k3d --help 获取在线帮助。免费的 macOS 更深入教程 is available