develop-service
title: 概览
#
利用 Nocalhost 开发Nocalhost 允许直接在集群内部开发应用程序。
#
使用集群检查器Nocalhost 内置了一个集群审查器 你可以使用 Nocalhost 内置的集群审查器来浏览你 Kubernetes 集群内部的资源,部署应用,也可以选择你想要开发或调试的工作负载。
#
资源状态Nocalhost 检查器使用下面的图标来描述不同的 Kubernetes 资源状态
资源 | 状态 | 图标 | 简介 |
---|---|---|---|
Cluster | Active | 已连接到集群 | |
Inactive | 无法连接到集群 | ||
DevSpace | Normal | 常规 DevSpace/Namespace | |
Read Only | 只读的 DevSpace/Namespace 无法操作 | ||
Application | Active | 应用已就绪 | |
Inactive | 应用未就绪,无法操作 | ||
Loading | 正在安装或卸载 | ||
Development Mode | Start 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 Configs | Normal | 此工作负载已配置 Nocalhost configuration | |
Warning | 空的 Nocalhost configuration | ||
Workload Status | Not Ready | 此工作负载尚未就绪,例如正在部署 | |
Running | 此工作负载正在运行 | ||
Failed | 此工作负载运行失败 | ||
Unknown | 未知的工作负载 |
#
进入 DevMode 之前在进入 DevMode 之前,你需要进行一些配置
#
源代码文件夹在开发应用之前,你需要将你的源代码目录路径告诉 Nocalhost,以便 Nocalhost 可以将源代码同步到远端容器内。 你可以指定一个本地目录,也可以让 Nocalhost 从 Git 仓库克隆源代码。
你可以在进入 DevMode 之前 关联本地目录。 或者, Nocalhost 将会检查关联的目录路径。 如果没有关联的目录,Nocalhost 将弹出选择菜单,通知你“指定源目录”。 你可以 打开本地目录 或者 从Git Repo 克隆。
#
关联本地目录在进入 DevMode 之前,你可以给工作负载关联本地目录 一旦你关联了本地目录,Nocalhost 将会记住这个目录
当你再次进入 DevMode,Nocalhost 将会使用此目录路径而不是再次要求你输入。
步骤:
- 选择工作负载
- 右键点击并选择
Associate Local DIR
- 选择本地目录并确认
跨 IDE 生效
如果你在某个 IDE VS关联了目录,当你在另一个 IDE 中开发相同的工作负载时,Nocalhost 将会自动使用这个关联的目录。
例如,你在 VS Code 中关联了目录,然后切换到 IDEA 中开发 Nocalhost 将会默认使用你在 VS Code 中关联的目录,直到你关联其他目录。
#
打开本地目录你可以选择任意本地目录并确认。 Nocalhost 将会在数据库中存储这个目录的路径。
#
从 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 镜像,或者使用任何 自定义镜像 作为 开发镜像
.
::::info 镜像拉取
容器镜像将由 Kubernetes 处理, 阅读更多关于Kubernetes 镜像管理的信息 。
:::
#
开始 Development Mode#
选择工作负载- 展开集群检查器
- 选择您想要开发的工作负载,点击
Start DevMode
或Start DevMode(Duplicate)
- 如果你的工作负载具有多个容器,那么需要选择一个
容器
如果您的工作负载具有多于一个容器,您只能选择其中一个容器进入 DevMode。
#
进入 DevMode 的过程当进入 DevMode 时,Nocalhost 将会做以下事情:
- 替换 Pods 根据你的配置
替换 port
- 端口转发 根据你的配置
端口转发
- 同步文件的修改 根据
dev.sync
部分的配置,将本地源代码文件的改动同步到 Kubernetes pods 中 - 开发容器启动后,在 IDE 内 打开终端. 打开的工作目录参照你在 [
dev.workDir
](/zh-CN/docs/config/config-dev-container-en#The Remote Directory for File Synchronization) 部分中的设置。
当终端会话开启后,你需要在开发容器中启动应用,开始开发
你也可以使用 remote run 来运行 dev.command
部分中设定的所有命令.
#
在 Kubernetes 集群中开发在开始开发之前,确保你已经完成以下步骤
- 在容器内启动进程,或者使用 remote run 来运行你的应用程序。
- 你配置的端口转发已经成功启动,或者在 IDE 中配置了端口转发功能
#
状态栏Nocalhost 将监控本地文件的修改,并且会将改动实时同步到远端容器当中。 你可以在 IDE 的状态栏中检查文件的同步情况。
#
断开连接 & 重新连接如果文件同步断开连接,状态将会变为 Nocalhost sidecar disconnected
. 在这种情况下,你只需点击状态栏,Nocalhost 将会自动重新连接到文件同步。
#
打开项目如果你关闭了正在开发的 IDE 窗口,并且想要重新打开它。 只需右键点击处于 DevMode 的工作负载并选择 Open Project
。
仅支持 DevMode
Open Project
仅支持在 DevMode 下使用。
#
结束开发模式当你完成了开发任务,你可以结束 DevMode。
#
如何做?- VS Code: 点击 图标
- JetBrains: 右键点击处于开发模式中的工作负载并选择
End DevMode
#
过程当你结束 DevMode 时,Nocalhost 将执行以下过程:
- 停止文件同步和端口转发 (如果开启了)
- 停止开发容器
- 删除当前版本的 Pod
- 重置 pod - 重新启动并初始化原始版本的 Pod
#
其他特性#
重置 Pod通过 Reset Pod
,Nocalhost 可以帮助你将任意 Pod 重置为其原始版本。
例如,重置 productpage
这个 deployment,你将看到以下信息:
#
修改 ManifestNocalhost 内置了一个 manifest 编辑器,你可以在 IDE 内编辑 Kubernetes manifest 文件并应用。 在完成修改后,Nocalhost 可以直接将 manifest 应用到集群中。
#
修改并应用DevMode
当工作负载处于 DevMode 时,你将不能编辑 manifest 文件。
#
删除即将推出