使用 Google Cloud 和 Kubernetes YAML 文件

Cloud Code 旨在帮助修改与 Google Cloud 和 Kubernetes 相关的配置文件,包括基于架构的验证文档、诊断文档和快速文档。

支持的 YAML 配置文件

此外,Cloud Code 还支持常用的 Kubernetes CRD,例如 Kubeflow,开箱即用。

使用自定义架构

此外,借助 Cloud Code,您还可以通过 IntelliJ 设置提供自己的 CRD 架构(File > Settings > Tools > Cloud Code > Kubernetes;对于 Mac OS X,路径为 IntelliJ IDEA > Preferences > Tools > Cloud Code > Kubernetes 并导航到 CRD 架构位置部分)。

您可以指向本地文件或网址。指向 github.com 的网址会自动转换为 raw.githubusercontent.com

从集群中拉取架构

Kubernetes Explorer 中切换到运行 Kubernetes v1.16 及更高版本的集群时,Cloud Code 会自动拉取所有已安装的 CRD 的架构。

其他 Skaffold 支持

Skaffold 是支持 Cloud Code 的底层引擎,可帮助您构建、推送和部署应用,以及支持创建 CI/CD 流水线。

Cloud Code 提供对管理 Skaffold 配置文件的额外支持。在打开项目时,Cloud Code 会检测不是最新的 Skaffold 架构,并会在有适用于现有 Skaffold YAML 配置文件的 Skaffold 架构版本升级可用时提示您(通过事件日志)。

事件日志中的通知,用于提示用户升级其 Skaffold YAML 版本,因为他们现有的 Skaffold YAML 文件不是最新版本

或者,您也可以导航到 工具 (Tools) > Cloud Code > Kubernetes,然后选择检查 Skaffold 架构升级 (Check for Skaffold Schemas Upgrades),以检查可用的架构升级。

使用代码段进行配置

借助针对常用 YAML 架构的开箱即用代码段(使用 Ctrl+Space 即可查看选项),您可以轻松启动新的 YAML 文件或向现有的 YAML 文件添加内容而不会产生错误,同时仍然遵循最佳做法。此外,您还可以更轻松地处理重复字段;只需填写一个字段,Cloud Code 即会填充其余的实例。

使用代码段处理重复字段

目前提供以下代码段:

  • Cloud Build - Cloud Run deployment
  • Cloud Build - Docker container build
  • Cloud Build - GKE deployment
  • Cloud Build - GKE Skaffold deployment
  • Cloud Build - Go build
  • Cloud Build - Terraform plan + apply
  • Config Connector - BigQueryDataset
  • Config Connector - BigQueryTable
  • Config Connector - BigtableCluster
  • Config Connector - BigtableInstance
  • Config Connector - PubSubSubscription
  • Config Connector - PubSubTopic
  • Config Connector - RedisInstance
  • Config Connector - SpannerInstance
  • Kubernetes - ConfigMap
  • Kubernetes - Deployment
  • Kubernetes - Ingress
  • Kubernetes - Pod
  • Kubernetes - Service
  • Migrate for Anthos - Export
  • Migrate for Anthos - PersistentVolumeClaim
  • Migrate for Anthos - StatefulSet
  • Skaffold - Bazel
  • Skaffold - Getting-started
  • Skaffold - Helm deployment
  • Skaffold - Kaniko

补全上下文

Cloud Code 将根据当前架构提供上下文补全信息,以帮助您选择合适的选项。

针对 Kubernetes 架构补全上下文

验证 YAML 架构

Cloud Code 通过标记 YAML 文件中的无效标记和值并尽可能给出修正建议,来提供架构验证支持。

名称字段的值带红色下划线以突出显示无效值“1234”;悬停文字状态:“类型错误。预期字符串。”

验证 Skaffold YAML 文件

Cloud Code 支持修改其他 Skaffold 配置文件,还提供智能模板,使您可以轻松验证 skaffold.yaml 文件。请参阅这份关于将现有应用与 Cloud Code 搭配使用的指南

Skaffold yaml 模板

借助上下文补全 Skaffold 配置文件

Cloud Code 将根据当前架构提供上下文补全信息和相关文档,以帮助您选择合适的选项。

Skaffold 补全信息

启用 Skaffold 文件同步和热重载

为了提高本地开发工作流的效率,并避免重新构建、重新部署和重启 pod,Skaffold 支持会将更改后的文件复制到已部署的容器。这意味着,当您对静态和源代码文件进行更改时,只需几秒钟就能看到您所做的更改生效,从而实现更快的反馈循环!

对于静态文件(例如 HTML 和 CSS 文件),此文件复制行为称为文件同步

对于源代码文件,此行为称为热重载,且适用于以下文件类型:

  • Go: *.go
  • Java: *.java,、*.kt、*.scala、*.groovy、*.clj
  • NodeJS: *.js、*.mjs、*.coffee、*.litcoffee、*.json

配置热重载后,Skaffold 会检测对受支持文件的更改,并将这些更改同步到集群上运行的容器,从而免去繁琐的映像重建和 pod 重启。但是,对其他文件类型的更改会触发映像重建。

当您将 Buildpacks 作为首选构建器使用时,系统会默认启用自动文件同步和热重载。对于 Docker 等其他构建器,您可以在 skaffold.yaml 中为自定义的工件指定 sync 部分。

您的同步设置可以是以下其中一项(按优先顺序排列):

  • auto(仅适用于 Jib 和 Buildpacks 工件)
  • infer
  • manual

如果您要指定 manual 同步以将所有 /static-html HTML 文件同步到容器中的 static 文件夹,则您的 skaffold.yaml 将包含此 sync 部分:

build:
  artifacts:
    - image: gcr.io/k8s-skaffold/node-example
      context: node
      sync:
        manual:
          - src: 'static-html/*.html'
            dest: static

有关文件同步和指定同步规则的详细信息,请参阅文件同步的 Skaffold 指南

通过快速文档探索定义

如果您选中配置文件中的一行并点击查看 (View) > 快速文档 (Quick Documentation),Cloud Code 会显示资源的相关文档。

快速文档

针对结构和有效性问题对 YAML 执行 lint 请求

Cloud Code 提供有关常见架构问题的 Lint 支持,并提供描述性错误。

对 YAML 文件执行 lint 请求

应用 YAML 文件

如需运行 kubectl apply -f 以使用当前文件应用配置更改,您可以使用 IDE 的间距中显示的 kubectl 操作图标 kubectl 操作图标,然后选择应用。系统会显示一个差异视图,让您可以在点击应用前查看更改。

kubectl 操作列表中突出显示的“应用”选项

YAML 文件之间的差异

如果您想要查看源代码控制系统中的 YAML 文件与已部署的 YAML 文件之间的差异,您可以使用编辑器的间距中显示的 kubectl 操作图标 kubectl 操作图标。选择差异选项可显示一个差异视图,供您比较和对比两种架构文件。

kubectl 操作列表中突出显示的“差异”选项

对 YAML 文件执行试运行

如需对文件执行试运行并检查其有效性,您可以使用 IDE 的间距中显示的 kubectl 操作图标 kubectl 操作图标 来选择在服务器上试运行 (Dry-run on Server) 或在客户端上试运行 (Dry-run on Client).这将运行 kubectl apply -f dry-run=server(对于客户端选项,则为 kubectl apply -f dry-run=client),并会通知您是否可以在终端窗口中成功创建文件。

kubectl 操作列表中突出显示的“在服务器上试运行”(Dry-run on Server) 选项

获取支持

如需在 IntelliJ IDE 中提交反馈或报告问题,请转到工具 > Cloud Code > 帮助 / 简介 > 提交反馈或报告问题以报告 GitHub 问题或询问 Stack Overflow 问题。

您还可以加入属于 Google Cloud Slack 社区#cloud-code 频道。