21年# 桌面K8S
在本文中,如果您在 Mac 上开发,我们将深入探讨本地 Kubernetes 集群的一些选项。在进行微服务开发时,最终您会希望开始一起测试集成服务。并且有几个选项可用于运行这些测试: 专用集群 - 较大的团队通常拥有开发环境,您可以运行大量小集群或其中包含大量命名空间的大集群。 24/7 全天候运行集群会花费真金白银,而且可以迅速增加。此外,如果您选择每个开发人员都有命名空间的大型集群,这仍然不能
在本文中,如果您在 Mac 上开发,我们将深入探讨本地 Kubernetes 集群的一些选项。在进行微服务开发时,最终您会希望开始一起测试集成服务。并且有几个选项可用于运行这些测试:
-
专用集群 - 较大的团队通常拥有开发环境,您可以运行大量小集群或其中包含大量命名空间的大集群。 24/7 全天候运行集群会花费真金白银,而且可以迅速增加。此外,如果您选择每个开发人员都有命名空间的大型集群,这仍然不能很好地反映暂存或生产。
-
Docker Compose - 这是一个旧的备用数据库,我们仍然用于某些工作负载。您可以快速启动一系列图像并将它们连接在一起。我发现使用 docker compose 的一大缺点是清单没有在我的登台和生产集群中使用。这最终仅适用于开发人员桌面。
-
本地 Kubernetes 集群 - 使用本地集群,您可以使用在登台和生产中使用的完全相同的清单。当然,您需要可以支持负载的本地硬件,但是对此的基础架构要求已经下降。
测试是在 2019 款 MacBook Pro (Big Sur) 上进行的。
$ kubectx
码头工人桌面
microk8s
丑陋的
牧场主桌面
丑
我并不尴尬地说我在minikube上切了牙。这是加入 Kubernetes 的推荐路径,并且有很多好处:
-
许多标准 Kubernetes 文档适用于 minikube
-
在 GitHub 上拥有超过 2 万颗星,它是那里最受欢迎的存储库之一,并且非常活跃
-
它运行一个具有单节点集群的虚拟机,如果你想使用不同的引擎,你可以换出虚拟机
来源:GitHub minikube
Microk8s
几年前,Canonical 发布了microk8s,这是他们自己的 Kubernetes 发行版。它可以通过 snap 直接进入 Ubuntu。因为它是为在 Linux 中运行而设计的,如果您更喜欢通过命令行与所有内容进行交互,这可能是一个不错的选择。有大量的内置命令和功能,它还能够自动引入许多其他开源项目。
-
它内置于最流行的 Linux 发行版之一的 Ubuntu 中,但也可以通过 brew 部署在 Mac 上
-
在 Mac 上,它将使用 Multipass 启动虚拟机,该虚拟机运行 ubuntu,内部带有 microk8s
-
Microk8s 包含一堆标准附加组件,例如,如果您想测试服务网格或特定类型的入口
-
这些说明都假设您在 kubectl 命令之前键入 microk8s,因此您需要将上下文添加到您的配置中
牧场主桌面
作为本地Kubernetes集群的新进入者,Rancher Desktop采取了完全不同的方法。它取代了 Kubernetes,而是在底层启动了一个精简的 k3s 集群。 Rancher 已将此工具打包为一个电子应用程序。它运行一个瘦 VM,并使用KIM(也是一个实验项目)维护图像。
-
通过简单的下拉菜单轻松切换不同版本的 Kubernetes
-
内置 UI,只需单击一下即可完成端口转发等操作
-
它使用了非常少的资源来构建基于电子的应用程序
-
在撰写本文时,它仍处于 alpha 版本,因此期待随着时间的推移会发生更多变化
资料来源:Ken 令人难以置信的 MacBook Pro
适用于 Mac 的 Docker 桌面
如果您在 Mac 上进行开发并处理 Dockerfile,那么您很可能已经部署了 Docker Desktop。这是一个闭源项目,尽管您可以在 GitHub 上打开问题。这是一个非常活跃的项目,docker 会定期推出更新。 Docker Desktop 的内置功能之一是您可以打开包含的 Kubernetes 集群。这以一种独特的方式工作:
-
它不使用 VM,而是在一组节点上部署 docker-in-docker,这些节点本身作为 docker 镜像运行,这很整洁
-
您可以运行常规 docker ps 命令来查看集群内正在运行的内容
-
Docker 最近更改了他们必须更新到新版本的政策,除非是付费计划,因此这可能会强制进行意外升级
-
在 Kubernetes 发行版之间切换并不容易,您必须在 Docker Desktop 中“重置”您的集群以允许升级
来源:Docker 桌面文档
摘要
幸运的是,2021 年 Kubernetes 本地开发仍有大量选择。希望这能激发您在新平台上运行一些测试工作负载。
Speedscale通过自动生成集成测试和环境帮助开发人员自信地发布。这是通过收集 API 调用以了解应用程序在生产中遇到的环境并在非生产环境中重放调用来完成的。如果您想了解更多信息,今天安排演示!
更多推荐
所有评论(0)