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

时间:2019-08-29 22:34:19

标签: docker kubernetes docker-desktop

我似乎无法弄清楚如何在计算机上运行的Docker Desktop实例上创建全新的Kubernetes集群。 (这是Mac还是PC都没关系。

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

### 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. 如果我有多个集群,那么只有其中一个集群(当前为“已设置”的集群)将立即运行,而另一个集群则处于停止/睡眠状态?
  2. 集群彼此独立,所以如果我可以玩耍并玩一个集群,那么这应该不会影响另一个集群

3 个答案:

答案 0 :(得分:2)

Kubernetes配置文件描述了3个对象:集群用户上下文

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

用户-用户名和凭据,以授权您使用任何群集主机。

上下文角色是在用户集群之间建立联系,因此,当您使用该上下文时,{{1} }将使用上下文对象中指定的用户的凭据授权您针对上下文对象中指定的群集。示例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 子命令在配置文件中具有一组指向generate cluster, user & context entries的命令。

来自docker-desktop的多个k8s集群

在后台,启用k8时,docker桌面将kubernetes组件下载为docker映像,并且服务器监听kubectl config。这一切都是自动完成的,因此除非您有意自己运行整个结构,否则我不认为您可以将其配置为运行多个集群。

关于您的其他问题:

设置上下文时,https://localhost:6443会将kubectl设置为该上下文,并且您运行的每个current-context都会使用上下文的用户凭据进入上下文的群集。这并不意味着集群已经死了。完全不会影响他们。

答案 1 :(得分:0)

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

k3d cluster create one && \
k3d cluster create two

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

答案 2 :(得分:-1)

确保已启用复选框

enter image description here