跳转至主要内容

develop-service


title: 概览


利用 Nocalhost 开发#

Nocalhost 允许直接在集群内部开发应用程序。

使用集群检查器#

Nocalhost 内置了一个集群审查器 你可以使用 Nocalhost 内置的集群审查器来浏览你 Kubernetes 集群内部的资源,部署应用,也可以选择你想要开发或调试的工作负载。

资源状态#

Nocalhost 检查器使用下面的图标来描述不同的 Kubernetes 资源状态

资源状态图标简介
ClusterActive已连接到集群
Inactive无法连接到集群
DevSpaceNormal常规 DevSpace/Namespace
Read Only只读的 DevSpace/Namespace 无法操作
ApplicationActive应用已就绪
Inactive应用未就绪,无法操作
Loading正在安装或卸载
Development ModeStart DevMode这个工作负载正处于 DevMode
End DevMode结束 DevMode
Others其他用户启用的 DevMode
DevMode and Port-Forwarding处于 DevMode 并且已启用 port-forward
DevMode and Port-Forwarding, enabled by others其他用户启用的 DevMode 以及 port-forward
Nocalhost ConfigsNormal此工作负载已配置 Nocalhost configuration
Warning空的 Nocalhost configuration
Workload StatusNot Ready此工作负载尚未就绪,例如正在部署
Running此工作负载正在运行
Failed此工作负载运行失败
Unknown未知的工作负载

进入 DevMode 之前#

在进入 DevMode 之前,你需要进行一些配置

源代码文件夹#

在开发应用之前,你需要将你的源代码目录路径告诉 Nocalhost,以便 Nocalhost 可以将源代码同步到远端容器内。 你可以指定一个本地目录,也可以让 Nocalhost 从 Git 仓库克隆源代码。

你可以在进入 DevMode 之前 关联本地目录。 或者, Nocalhost 将会检查关联的目录路径。 如果没有关联的目录,Nocalhost 将弹出选择菜单,通知你“指定源目录”。 你可以 打开本地目录 或者 从Git Repo 克隆。

关联本地目录#

在进入 DevMode 之前,你可以给工作负载关联本地目录 一旦你关联了本地目录,Nocalhost 将会记住这个目录

当你再次进入 DevMode,Nocalhost 将会使用此目录路径而不是再次要求你输入。

步骤:

  1. 选择工作负载
  2. 右键点击并选择 Associate Local DIR
  3. 选择本地目录并确认
跨 IDE 生效

如果你在某个 IDE VS关联了目录,当你在另一个 IDE 中开发相同的工作负载时,Nocalhost 将会自动使用这个关联的目录。

例如,你在 VS Code 中关联了目录,然后切换到 IDEA 中开发 Nocalhost 将会默认使用你在 VS Code 中关联的目录,直到你关联其他目录。

打开本地目录#

你可以选择任意本地目录并确认。 Nocalhost 将会在数据库中存储这个目录的路径。

要求在 VS Code 中指定源目录

从 Git 仓库克隆#

限制

如果您已经关联或打开目录,Nocalhost 将不会从Git克隆源代码。

Nocalhost 可以帮助你在 IDE 中从 Git 仓库克隆源代码。

如果你选择 Clone from Git Repository, Nocalhost 将尝试从dev.gitUrl 部分的 URL 下载源代码,或要求您输入 Git URL。

::::info 自动关联

Nocalhost 将会在克隆源代码以后自动关联到相应的下载目录

:::

开发容器#

当进入 DevMode 时 Nocalhost 将会用开发容器来替换工作负载。 Nocalhost 将从 Nocalhost configuration中加载 container[*].d.dev 部分。

开发镜像#

在进入 DevMode 之前 Nocalhost 需要知道使用哪个 开发镜像 Nocalhost 会使用 dev.image 中定义的镜像,或者通知你选择一个。

你可以使用我们提供的 docker 镜像,或者使用任何 自定义镜像 作为 开发镜像.

在 VS Code 中选择开发镜像

::::info 镜像拉取

容器镜像将由 Kubernetes 处理, 阅读更多关于Kubernetes 镜像管理的信息

:::

开始 Development Mode#

选择工作负载#

  1. 展开集群检查器
  2. 选择您想要开发的工作负载,点击 Start DevModeStart DevMode(Duplicate)
  3. 如果你的工作负载具有多个容器,那么需要选择一个
容器

如果您的工作负载具有多于一个容器,您只能选择其中一个容器进入 DevMode。

在 VS Code 和 JetBrains 中选择工作负载

进入 DevMode 的过程#

当进入 DevMode 时,Nocalhost 将会做以下事情:

  1. 替换 Pods 根据你的配置 替换 port
  2. 端口转发 根据你的配置 端口转发
  3. 同步文件的修改 根据 dev.sync 部分的配置,将本地源代码文件的改动同步到 Kubernetes pods 中
  4. 开发容器启动后,在 IDE 内 打开终端. 打开的工作目录参照你在 [dev.workDir](/zh-CN/docs/config/config-dev-container-en#The Remote Directory for File Synchronization) 部分中的设置。

当终端会话开启后,你需要在开发容器中启动应用,开始开发

Remote terminal session started
root@ratings-5dfbc89c59-r7wg5:/home/nocalhost-dev#

你也可以使用 remote run 来运行 dev.command 部分中设定的所有命令.

在 Kubernetes 集群中开发#

在开始开发之前,确保你已经完成以下步骤

  • 在容器内启动进程,或者使用 remote run 来运行你的应用程序。
  • 你配置的端口转发已经成功启动,或者在 IDE 中配置了端口转发功能
在 VS Code 中开发

状态栏#

Nocalhost 将监控本地文件的修改,并且会将改动实时同步到远端容器当中。 你可以在 IDE 的状态栏中检查文件的同步情况。

IDE 中展示的文件同步情况

断开连接 & 重新连接#

如果文件同步断开连接,状态将会变为 Nocalhost sidecar disconnected. 在这种情况下,你只需点击状态栏,Nocalhost 将会自动重新连接到文件同步。

打开项目#

如果你关闭了正在开发的 IDE 窗口,并且想要重新打开它。 只需右键点击处于 DevMode 的工作负载并选择 Open Project

仅支持 DevMode

Open Project 仅支持在 DevMode 下使用。

在 VS Code 中 Open project

结束开发模式#

当你完成了开发任务,你可以结束 DevMode。

如何做?#

  • VS Code: 点击 图标
  • JetBrains: 右键点击处于开发模式中的工作负载并选择 End DevMode

过程#

当你结束 DevMode 时,Nocalhost 将执行以下过程:

  1. 停止文件同步和端口转发 (如果开启了)
  2. 停止开发容器
  3. 删除当前版本的 Pod
  4. 重置 pod - 重新启动并初始化原始版本的 Pod

其他特性#

重置 Pod#

通过 Reset Pod ,Nocalhost 可以帮助你将任意 Pod 重置为其原始版本。

例如,重置 productpage 这个 deployment,你将看到以下信息:

Stopping port forward
Annotation nocalhost.origin.spec.json found, use it
Deleting current revision...
Recreating original revision...
Service productpage has been reset.
重置 pod

修改 Manifest#

Nocalhost 内置了一个 manifest 编辑器,你可以在 IDE 内编辑 Kubernetes manifest 文件并应用。 在完成修改后,Nocalhost 可以直接将 manifest 应用到集群中。

修改并应用#

DevMode

当工作负载处于 DevMode 时,你将不能编辑 manifest 文件。

编辑 manifest

删除#

即将推出

清除 PVC#

即将推出文档