Nocalhost 配置是什么?
这里会对 Nocalhost 配置是什么、如何进行配置的修改、有哪些特性等进行介绍。 如果你对 Nocalhost 配置完全没有概念,或者想要了解 Nocalhost 配置的结构、特性等,可以阅读本篇文章。
#
Nocalhost 提供了哪些配置?开发配置是围绕 开发模式
来进行的,例如使用什么镜像来进入 开发模式
,是否需要开启持久化来保存开发容器的内容,将哪些文件同步到开发容器中,如何一键调试、一键运行容器内的服务等。 配置了正确且合适的开发配置后,可以在使用 Nocalhost 开发模式
时更加得心应手。
总而言之,开发配置是为了更好的定义 开发模式
的行为。
关于开发配置与部署配置
Nocalhost 配置大体可分为两部分,一部分是开发配置,另一部分是部署配置。
部署配置,用于定义如何进行 K8s 应用部署,包括服务依赖控制,变量注入等。
开发配置,围绕
开发模式
来进行,例如使用什么镜像来进入开发模式
,是否需要开启持久化来保存开发容器的内容,将哪些文件同步到开发容器中,如何一键调试、一键运行容器内的服务等。
通常,只需要关注 开发配置。 在配置文档的说明中,如果没有特殊说明,我们提到的配置,指的都是开发配置。
#
查看和保存配置#
配置的查看如果你从未进行过某个的 Nocalhost 配置, 右键单击它并选择 DevConfig
,你将看到下面的这些配置,它们都为空,这些都是在 Nocalhost 的 DevMode
中比较常用的配置。
配置不是必须的
不进行任何配置也可以正常使用 Nocalhost 开发模式
#
配置的更新我们可以做任何更改,并在 IDE 插件上使用 Comm
+S
或 Ctrl
+S
保存它们。
#
Nocalhost 配置的结构配置顶层的 name
与 serviceType
表明这是属于 coredns
这个 deployment
的配置 配置的内容集中在 containers
中,这是一个数组,表明可以为单个工作负载下的多个容器分别定制不同的配置。
#
为容器正确进行配置containers.[].name
填上对应容器的名字以区分不同的容器#
首先,需要在 例如你的工作负载中有 ContainerA
,ContainerB
两个容器(注意,ContainerA/B 只是一个举例,具体的容器名需要根据你实际的工作负载),那么则需要在 Nocalhost 中填上对应容器名字以区分:
当然,如果你只需要开发 ContainerB
,可以仅对它进行配置, 例如:
#
各个配置项如何进行配置这是一个需要长篇大论进行说明的内容,我们这里先以一个简单的例子为例,可以快速入门 Nocalhost 配置。
需要一个应用程序来操作?
如果没有现成的工作负载可以操作,可以调用下面这个命令来安装一个示例应用:
当我们右键一个从未配置过的服务,例如 details-v1 , 点击 DevConfig
,然后你将看到一个空的模板。 我们随便修改一点,例如为开发容器增加额外的 env (开发容器会从原容器继承环境变量):
使用 Compm
+S
或 Ctrl
+S
保存更改然后进入 DevMode
。 由于只是演示配置,这里随便选一个本地目录,目录内容将同步到开发容器中,随便选择一个开发镜像。
启动 Devmode
后,键入 env | grep nocalhost
。 正如你可以看到的那样,环境变量已被正确注入。
更多
想了解更多的配置项及其作用,请参阅 Nocalhost 提供了哪些配置?
#
开发配置的特性除了开发配置怎么配置以外,存在一些设计 Nocalhost 配置的设计带来的特性, 了解这些特性将帮助你更好的使用 Nocalhost。
#
生效时机Nocalhost 的开发配置并非实时生效, 它需要保存,然后重新进入 DevMode
才能生效。
#
生命周期Nocalhost 会在每个命名空间下创建一个前缀为 dev.nocalhost.application.
的 secret
作为 “微型数据库”, 配置将保存在此 secret
中。
在这个 secret
被销毁之前,数据都将一直保留。
HELM 应用程序
如果你的应用是一个 HELM 应用,例如它的 Release.Name
叫 bookinfo
。那么这个 secret
将命名为 dev.nocalhost.application.bookinfo
, 且当 bookinfo
被卸载后,保存数据的 secret
将会被销毁。
#
可见性从 Nocalhost 配置的存储设计中不难看出,Nocalhost 配置是共享的。 具体则是,在同一个集群的 同一个 namespace
下,针对同一个工作负载的配置,在任意一个设备上都可见,且可修改 (需拥有 secret
的修改权限,可参考 RBAC) 所有设备获取以及进行修改的配置都是同一个副本。