Kubernetes
Kubernetes 是一种用于部署、扩展以及管理容器化应用的容器编排引擎。 安装并启用适用于 WebStorm 的 Kubernetes 插件,以添加以下用于管理 Kubernetes 集群的功能:
为 Kubernetes 资源配置文件提供编码辅助功能。
为 Helm 图表和模板提供编码辅助功能。 有关更多详细信息,请参阅 专属 Helm 页面。
根据自定义资源定义(CRD)规范验证自定义资源。
为 Kustomize 文件提供编码辅助功能:字段和本地文件路径补全、快速文档以及在 Kustomize 文件与补丁之间导航。 相关 Kustomize 文件列表显示在编辑器中打开的 Kustomize 补丁顶部。
从 WebStorm 直接与集群交互:使用 服务工具窗口查看 Kubernetes 集群的所有资源、跳转到相关资源定义、查看运行在 Pod 上的容器日志以及更多内容。
Kubernetes 插件支持 Kubernetes 版本 1.16 到 1.33(您可以 选择适用的版本)。
安装 Kubernetes 插件
此功能依赖于 Kubernetes 插件,您需要安装并启用它。
按 Ctrl+Alt+S 打开设置,然后选择 。
打开 Marketplace 选项卡,找到 Kubernetes 插件并点击 安装 (如果提示,请重启 IDE)。
指定 kubectl 的自定义路径
WebStorm 使用根据 PATH 环境变量确定的默认 kubectl(如果您使用 helm ,则包括 helm)可执行文件。
如果您在自定义目录中安装了 kubectl,可以手动指定其路径。
在 设置 对话框(Ctrl+Alt+S )中,选择 。
在 kubectl 可执行文件路径 字段中指定 kubectl 可执行文件的路径。
点击 测试 以检查文件位置。 如果未找到,您可以手动检查文件位置,或点击 安装 ,WebStorm 将下载并安装缺失的软件。

使用自定义 Kubernetes 配置文件
集群信息存储在 kubeconfig 文件中。 WebStorm 会检测默认的 kubeconfig 文件,通常位于 $HOME/.kube/config (此位置可由 KUBECONFIG 环境变量更改)。 如果您希望 WebStorm 从自定义的 kubeconfig 文件(不仅是默认文件)中获取集群信息,可在 IDE 设置中指定它们。 您可以全局应用该设置,也可以为每个项目使用不同的文件。
在 设置 对话框(Ctrl+Alt+S )中,选择 。
在 配置 下,点击
并指定
kubeconfig文件的路径。如果您希望在所有项目中使用该配置文件,请在 作用域 列中选择 全局。 若只在当前项目中使用该配置文件,请保留 项目 范围。
添加文件后,WebStorm 会验证其语法并报告任何错误。

配置 Kubernetes API 版本
WebStorm 提供配置键值的 自动补全 、通过边距图标导航至相关选择器和定义、用于检查已弃用值和必需键的专项检查,以及其他辅助功能。 这些功能依赖于您使用的 API 版本。 Kubernetes 插件支持 Kubernetes 的 1.16 到 1.33 版本。 默认情况下,WebStorm 会将其设置为最新版本。 但如果您的资源使用的是较早版本,您可以进行更改。
在 设置 对话框(Ctrl+Alt+S )中,选择 语言与框架|Kubernetes。
根据需要更改 Kubernetes API 版本 和 Kustomize 版本 选项。
资源配置文件
Kubernetes 插件为 YAML 格式的资源配置文件提供了丰富的支持,而对 JSON 格式则仅提供基本支持。
WebStorm 通过以下必填字段识别 Kubernetes 资源配置文件:
apiVersion:标识对象表示的版本化架构kind:标识资源类型(例如Service、Pod、Deployment等)
如果 YAML 或 JSON 文件中包含上述两个字段,WebStorm 将使用相应的 Kubernetes 图标标记该文件,并启用所有可用功能。
创建资源文件
借助 WebStorm,您可以快速为 Kubernetes 中最常见的资源创建配置文件。
在 项目 工具窗口 Alt+1 中,右键点击文件夹,选择 新建 或按下 Alt+Insert ,然后选择 Kubernetes 资源。
在 名称 字段中输入您的资源名称,并从列表中选择文件模板。

这将基于所选的 文件模板 创建一个新文件。
单击
在集群中创建资源。 如需更改目标集群,请单击
。
或者,在 YAML 文件中,您可以使用预定义的 live templates ,例如:
kconfigmap:Kubernetes ConfigMapkcronjob:Kubernetes CronJobkdeployment:Kubernetes Deploymentkingress:Kubernetes Ingresskpod:Kubernetes Podkresource:从头开始创建 Kubernetes 资源kservice:Kubernetes Service

禁用 Kubernetes 架构验证
WebStorm 会根据 Kubernetes API 架构验证您的 Kubernetes 文件。 包括检查是否包含必要的键或资源的可能类型。
如果您的文件包含 apiVersion 和 kind ,但它不是 Kubernetes 文件,您可以禁用此类验证。 您可以在 中隐藏检查并更改其范围和严重性。 或者,您可以使用特殊指令标记文件,以在其中禁用验证:
在文件开头添加
# nonk8s。或者,如果您已经收到有关未知资源的警告,请在 问题 工具窗口中右键点击该资源并选择 。
管理集群
使用 Services 工具窗口查看集群、切换命名空间并修改集群资源。
添加集群
如需与 Kubernetes 集群交互,可在 服务 工具窗口中添加集群。
打开 Services 工具窗口:选择 或按 Alt+8。
在 服务 工具窗口中右键点击某个 Kubernetes 节点并选择 添加集群。 或者,单击
并选择 。
接下来,选择要添加的 Kubernetes 集群的来源:
从默认目录导入 :从默认位置获取集群(通常为
$HOME/.kube/config)。从自定义 kubeconfig 导入 :从计算机上选择任意 kubeconfig 文件。
粘贴 kubeconfig 内容 :将 kubeconfig 内容粘贴到打开的文本区域中。

在打开的 添加集群 窗口中,选择要添加的集群并单击 添加集群。

添加的 Kubernetes 集群将在 服务 工具窗口中显示。 右键单击某个集群并选择 在新标签页中打开 ,即可在单独的标签页中打开每个集群。
要实时监控集群资源,您可以 连接到集群。
连接至集群
连接到集群以在 IDE 中与其交互:查看日志、预览资源、查看配置文件,并在资源被修改时获取实时更新。 在未连接集群的情况下,您可以在编辑器中 修改其资源。

编辑 kubeconfig
kubeconfig 文件包含有关集群、用户、命名空间和身份验证的信息。
打开 服务工具窗口:选择 或按 Alt+8。
选择一个集群并点击工具栏上的
(在编辑器中打开kubeconfig 文件)。 在 服务 工具窗口中右键单击任意 Kubernetes 对象时,也可以使用此操作。
这样将在编辑器的新标签页中打开 kubeconfig 文件。 要更改此操作默认打开的文件,您可以在 Path to kubeconfig file 中指定其他文件路径。
当您更改 kubeconfig 文件时,配置会自动重新加载。 您也可以通过右键单击集群或任意 Kubernetes 对象并选择 ,手动重新加载或禁用自动重新加载。

在命名空间之间切换
Kubernetes 命名空间可让您在集群中逻辑隔离资源。 借助 WebStorm ,您可以快速在命名空间之间切换。
打开 服务工具窗口:选择 或按 Alt+8。
右键单击集群或任何资源,选择 命名空间 (或点击工具栏上的
),然后选择所需的命名空间。
要查看所有命名空间的资源,请选择 所有命名空间。

选择当前集群
当前集群是指在编辑器和 项目 工具窗口中与资源交互时默认设置的集群。
在本地修改或创建 资源文件时,您可以点击 选择要应用资源的集群。 您也可以提前进行选择。
打开 服务工具窗口:选择 或按 Alt+8。
右键单击集群并选择 设为当前集群。

或者,选择一个集群并点击工具栏上的
。
此设置也可在 IDE 设置中找到,位于 。
修改集群资源
打开 Services 工具窗口:选择 或按下 Alt+8。
右键点击资源并选择 查看YAML。
这将在编辑器的新选项卡中打开所选资源的配置文件。 当您更改字段时,被修改的行将在边栏中高亮显示。 您可以点击边栏中高亮显示的区域以快速预览或回滚更改。

点击
以将更改应用到当前集群和命名空间。
当您修改资源配置文件时,右上角会显示一个工具栏。 它允许您应用更改、删除资源、预览差异并回滚更改。
查看资源详细信息
WebStorm 可让您快速查看 Kubernetes 资源的详细信息,而无需手动运行任何命令。
在 服务 工具窗口中,选择一个资源以查看其详细信息。
删除资源
您可以通过以下任一方式删除资源:
在 服务 工具窗口中,右键点击资源并选择 删除(当前集群未配置)。
在 服务 工具窗口中,选择一个资源并点击工具栏上的
(删除资源)。
如果资源 YAML 文件已在编辑器中打开,将鼠标悬停其上并点击
。 您也可以在此点击
以更改想要删除资源所对应的集群。
端口转发
在 Kubernetes 中使用端口转发可将本机电脑上的本地端口流量重定向至 Kubernetes pod 上的端口。 WebStorm 可帮助您管理端口转发:您可以将一个或多个本地端口转发至远程端口,查看集群中(由 WebStorm 建立)所有活动转发会话,并停止或重新启动转发会话。
打开 Services 工具窗口:选择 或按下 Alt+8。 右键点击目标 pod 并选择 转发端口。
在 转发端口 对话框中:
在 地址 字段中列出要监听的地址。 使用逗号分隔多个值。
在 端口 字段中按
<local port>:<remote port>格式指定端口。 例如,8888:5000表示监听本地端口8888并将数据转发至/来自远程端口5000。WebStorm 会基于相应 Kubernetes 清单中定义的值自动建议端口映射。 如果清单中指定的端口已被本地机器使用,WebStorm 将递增建议值,直到找到可用端口。
如果指定的值小于
1024,则会在建议的本地端口值上加 8000。如果您手动指定了当前正被占用的本地端口,WebStorm 会在您开始转发前通知您。
点击 转发。

管理端口转发会话
要查看所有活动端口转发会话,请在 服务 工具窗口中展开您 Kubernetes 集群下的 。

要终止端口转发会话,请右键点击它并选择 停止端口转发 ,或点击工具栏上的
。
要重新启动端口转发会话,请右键点击它并选择 重新启动端口转发 ,或点击工具栏上的
。
创建密文
借助 WebStorm,您可以快速创建 Kubernetes Secrets。
打开 Services 工具窗口:选择 或按下 Alt+8。
选择一个集群并展开 配置。
右键点击 密文 节点并选择 创建新密钥。 或者,选择 密文 节点并点击工具栏上的
。
在打开的 创建新密钥 窗口中,指定 secret 名称、类型和命名空间。 为加快 secret 创建过程,WebStorm 会根据所选的 secret 类型 添加所需的数据或注解键。
在 数据 和 注解 部分中,点击 值 为已有键输入值,或点击
并选择提供值的方式:
手动添加 手动输入值。
使用文件数据 选择一个文件(例如 SSH 密钥文件或 Docker config.json )来使用文件内容作为值。

您可以在 服务 工具窗口的 配置 下查看所有的 Secrets。 若要编辑 secret,请右键点击它并选择 编辑密文 ,或点击工具栏上的 。
创建 Secret 后,您可以在 Pod 配置文件中的 secretName 字段中开始输入其名称。 这将触发自动补全功能,列出集群或项目中的可用 Secret 名称。
保持集群信息为最新状态
为了使 WebStorm 与您的集群保持同步,请使用以下操作:
Reload Configuration 获取 kubeconfig 文件中的最新更改。
Refresh Resources 获取 Kubernetes 资源的最新更改。 此操作通常会自动执行,前提是您具备所需权限。
重新加载配置
默认情况下,当您更改 kubeconfig 文件时,配置将自动重新加载。 您仍然可以手动重新加载它。
打开 Services 工具窗口:选择 或按下 Alt+8。
右键点击集群并选择 。
如果您想禁用自动重新加载,请取消选中 自动重新加载配置 选项。
您也可以在 IDE 设置(Ctrl+Alt+S )中的 检查此设置。
手动刷新集群资源
如果您已 连接到集群 ,对其资源所做的任何更改都会自动反映在 IDE 中。 如果您的资源未自动更新(由于您的 集群角色缺少权限), 服务 工具窗口中会显示一条禁止自动刷新 的消息。 在此情况下,您可以手动刷新资源。
打开 服务 工具窗口:选择 或按 Alt+8。
右键点击一组资源并选择 刷新 或点击 Ctrl+F5。
查看日志
使用 WebStorm,您可以查看集群日志和选定资源的日志。 您可以根据日期、来源及日志消息中的特定值进行筛选。
在编辑器中打开资源日志
打开 服务 工具窗口:选择 或按 Alt+8。
选择日志来源的方式如下:
要查看所有资源的日志,请选择您的 Kubernetes 集群,然后点击
(关注日志 ),工具栏位于 服务 工具窗口顶部。

要查看某个特定资源的日志,请选择该资源并点击
(关注日志 ),工具栏位于 服务 工具窗口顶部。 或者,右键点击资源并选择 关注日志。
如果 pod 中包含多个容器,请从显示的容器列表中选择要跟踪日志的容器。

该操作将使用 --follow=true 标志实时跟踪所选资源的日志,并在新的编辑器标签页中打开。
管理日志
查看集群日志或选定资源日志时,您可以使用主工具栏(1)或浮动工具栏(2)来操作日志输出。 浮动工具栏可快速访问常用操作。

(滚动到末尾 ):跳至日志输出末尾。
(自动换行 ):调整编辑器大小时对日志条目启用软换行。
(下载筛选后的日志 ):下载当前在编辑器中打开的日志,已应用的 筛选器也将被考虑在内。
(清除显示的日志 ):清除编辑器中显示的日志条目。 此操作仅影响当前视图。 重新打开同一资源的日志时,条目将重新出现。
筛选日志
打开日志后,您可以在编辑器顶端使用以下筛选器来细化日志列表:
(打开模式匹配 ):输入或选择期望日志数据匹配的值或模式。 例如,如果日志中包含级别信息,您可以选择
warn、error或其他级别值,只显示对应级别的日志。(选择日志来源 ):选择要显示日志的集群资源。
(按日期和时间筛选 ):选择要显示日志的时间范围。
(选择日志字段 ):选择是否显示日志时间戳、来源及消息内容。
在编辑器标签页顶部的输入字段中输入日志消息中的内容。 点击
使用正则表达式,点击
区分搜索的大小写。
(清除所有日志筛选器 ):清除全部已应用的筛选器(来源除外),显示所有日志。

下载单个容器的日志
打开 服务 工具窗口:选择 或按 Alt+8。
选择资源,点击右侧工具栏上的
(下载日志 )以保存日志文件。
配置日志保存选项
您可以在 IDE 设置(Ctrl+Alt+S )中 下配置日志保存选项:
如果希望将日志保存到 Scratches 以外的位置,请在 下载日志的路径 中指定目录。 或者选择 下载前询问日志的保存位置 ,每次保存日志时都提示您选择保存位置。
如果希望在文件名中包含日志时间戳,请选择 将时间戳附加到日志文件名。
自定义资源定义支持
如果通过 自定义资源扩展 Kubernetes 集群,WebStorm 可以使用 自定义资源定义 (CRD)规范对其进行验证。
指定 CRD 规范的路径
按 Ctrl+Alt+S 打开设置,然后选择 。
点击
,然后选择本地 CRD 文件或输入 URL。 然后点击 确定(O)。
使用 和
重新排序 CRD 文件列表。 此操作定义了冲突定义的优先级:如果某项定义存在于多个文件中,WebStorm 将使用优先级最低的版本。
默认情况下,CRD 仅应用于当前项目。 若希望某个 CRD 可用于此 IDE 实例打开的任何项目,请将 作用域: 选项更改为 IDE。
要从正在运行的 Kubernetes 集群加载 CRD,请启用 使用活动集群中的API 架构(如果可用)。
您可以在 Kubernetes 节点下的 Services 工具窗口中查看当前集群的 CRD,包括其所有已应用的资源。
Kubernetes 插件支持以下类型的 CRD 文件:
YAML 格式的 CustomResourceDefinition 文件
以下示例展示了一个简单的 CustomResourceDefinition 规范,用于定义一个种类为 CronTab 的自定义资源 stable.example.com/v1。 用于标识该资源的必填字段包括 metadata.name、 spec.group、 spec.versions 和 spec.names。
JSON 格式的 OpenAPI v2.0 架构
以下示例展示了一个简单的 OpenAPI v2.0 架构,其中包含对种类为 Config 的自定义资源 sample/v1 的 CRD 规范。 自定义资源的根定义必须包含指定了 group、version 和 kind 的 x-kubernetes-group-version-kind 字段。 在示例中, root.Definition 对象使用 build 属性来引用 some.Definition 对象。
CRD 验证限制
WebStorm 不支持以下 OpenAPI v3 架构功能:
multipleOfmaximumexclusiveMaximumminimumexclusiveMinimummaxLengthminLengthpatternmaxItemsminItemsuniqueItemsmaxPropertiesminPropertiesallOfoneOfanyOfnotformatdefaultnullablereadOnlywriteOnlyxmlexternalDocsexampledeprecated
提高效率的技巧
如果您经常使用此处所述的功能,以下提示可能会对您有所帮助:
分配快捷键
您可以为 Kubernetes 操作分配快捷键。
在 设置 对话框(Ctrl+Alt+S )中,选择 按键映射。
在搜索字段中键入
kubernetes,然后双击某个操作为其设置快捷键。
另外,您还可以使用 查找操作 对话框 Ctrl+Shift+A ,键入所需操作,然后按 Alt+Enter。
例如,您可以为 与集群交互 分配快捷键,以便在 修改资源配置文件时快速打开上下文菜单。
配置代码折叠
默认情况下,WebStorm 使用 代码折叠 将 Helm 模板中的值引用和 Kubernetes 配置文件中的定义呈现为实际值。 您可以单击该值以展开,或按 Ctrl+NumPad + 和 Ctrl+NumPad - 来切换折叠。 如果您希望默认展开这些引用和值定义,请执行以下操作:
在 设置 对话框(Ctrl+Alt+S )中,选择 。
在 代码折叠 页面中,取消选中所需的复选框:
Kubernetes:Helm 模板中的值引用
Kubernetes:YAML 文件中的 EnvVar 定义
Kubernetes:YAML 文件中的 ExecAction 定义