本博客是2022年6月11日大会演讲的示范部分。k8s群集套件是指在一个k8spod上运行另一个k8s群集。这个想法看起来很疯狂,但实际上很实用。
(相关资料图)
事实上,这是云本机开发中常见的难题。开发环境变得越来越复杂。在过去,只要有源代码,就没有一天可以进行开发和调试。k8s该环境非常易于使用,但开发人员很难获得用于调试和测试用户开发或自由操作的环境。今天推出的k8s集就是为了解决这个难题,这样开发者就可以自由使用它,并在使用后立即烧掉它!
云本机开发的最佳环境实际上是云本机环境本身。既然我们的应用程序是在容器中执行的,为什么我们不直接在容器中开发它们呢。既然我们的应用程序运行在k8s上,为什么不直接在k8s上开发呢 您不需要关心如何实现它。首先,让我们看看这样做的好处。
适用于任何人、任何时间和任何地点的标准化环境:将开发环境放入容器意味着我们可以像管理容器一样管理开发环境。使用容器技术可以标准化系统配置、开发语言SDKIDE、测试工具、配置项等。它也是一个容器,可以实现升降换档的能力。只要定义一次开发环境,任何人都可以在任何地方复制相同的环境。
完全消除了项目的动手和切换成本:基于以上功能,我们将开发环境配置文件放入当前项目的代码库中。开发人员只需要获得代码就可以获得环境。因为环境配置文件和代码版本是统一管理的,并且版本保持有序。这样,开发人员就不需要重建环境来调试代码。他们可以随时随地切换到应用程序的任何版本,或者同时调试应用程序的不同版本。这实际上是IDE作为代码的概念的体现。详情请参阅本博客。
解锁云超级计算环境:许多大型系统需要数百个服务组件,并且不可能在本地构建这样的环境。即使专业的操作和维护团队支持在云中复制类似的环境,也很困难。在许多大型开发团队中,开发/调试/测试环境的获取已成为一个常见的瓶颈。使用云本机IDE提供的IDEas代码功能,复制环境和启动公共开发环境之间没有本质区别。对于开发人员来说,选择代码版本并在代码库中选择一个键来完成整个环境的构建变得非常简单。测试环境的捕获能力是评估团队能力的一般标准DevOps。如果采用IDEas代码,将完全消除捕获阈值。因此,开发人员可以完全解锁云的超级计算能力、存储和高速网络环境,对于需要AI、大数据、区块链Web3.0等复杂环境支持的开发场景,云原DE更为重要。
当然,cloud localIDE并非没有缺点。使用容器作为开发环境存在许多问题。
集装箱化技术出现后,由于大多数使用场景都是生产环境,集装箱的优化目标都是围绕简化、单流程和恒定状态的目标来实现的。对于开发人员来说,基于这些目标设计的容器不适合用作开发环境。对于生产环境中预先确定的配置,需要不断调整开发环境的配置。在Inner Cycle中,环境变化的需求发生在每个阶段。
所有操作脚本都可以在上述代码库中找到。
https://k9scli。io/
运行后,您可以在k9s中实时查看安装进度,并等待下一个安装过程完成。
使用以下脚本获取源代码并完成开发环境的部署VMLC
执行以下命令以进入容器
现在可以在集群k8s的容器中运行。
通过VMLC的开发人员映像,我们在此环境中拥有内置的通用云本机开发工具,如、、和。使用此博客完成此dapr应用程序的模型开发和调试。在该模型中,容器实际上用作本地开发环境,dapr所需的中间件环境是通过容器中的docker嵌套支持提供的。
如您所见,使用WebIDE执行类似操作非常有用。这意味着它远离本地开发机器,可以从任何地方访问云上的开发环境。当然,如果您不习惯在浏览器IDE中操作环境,您还可以通过本地公用IDE访问我们的远程VMLC开发环境。
打开本地命令行,通过标准SSH协议访问VMLC开发环境。
Hybird该模式兼顾了本地IDE和云工作区的优势,使开发者在编码过程中可以享受到本地工具快速跟进的操作体验,使用云超级计算机也很方便。
Vscode远程SSH连接
在vscode中连接云工作区非常简单。只需单击插件中的添加连接,然后输入上述SSH连接说明。此过程与使用SSH连接到远程主机完全一致。如果看不到此远程连接工具链,请从此处安装插件SSH Remote。
连接后,如果工作区设置为目录,则会显示以下界面:。
启动后的操作如下。
本地IDE和远程工作区之间的Hybird模式连接已完成。开发人员可以根据自己的偏好和操作习惯,使用WebIDE或Hybird模式连接到VMLC基本远程工作区。WebIDE的优点是它可以随时随地执行轻量级编程。本地开发机器几乎没有资源压力,只需一台ipad即可完成开发。Hybird模式的优势在于编码体验,特别是对于面对非常复杂的大型项目的重度IDE用户。在本地开发机器上完全执行此项目是不可能的。
使用vscode remoteSSH模式完成以下操作。
然后将应用程序部署到容器中的嵌套k8s集群。首先,执行以下命令以使用kind创建多节点k8s集群:。
执行上述指令后,可以在容器中执行这些指令,以实时显示在容器中执行的集群状态。如下图所示,您可以看到两个节点已准备就绪。
您可以输入目录以执行脚本。此脚本完成所有应用程序的dockerimages构建。
在此,登录docker hub并推送打包的images步骤,在执行过程中可以跳过该步骤。因为所有图像都被推送并设置为公共模式,所以可以直接拉取它们以供使用。
最后,使用以下脚本在k8s集群上部署基本服务和示例应用程序服务dapr。
下:dapr启动基本服务
下图:关联的服务正在启动
到目前为止,我们已经完成了k8s快速旅行。如果我们不需要这个环境,我们可以通过以下命令单击一下来清理这个VMLC环境,它的所有内容也可以从集群中完全删除。
最后,每个开发人员都希望在云原生时代找到力量。愿原力与你同在!