在 Cloud Code for VS Code 中使用 Google Cloud 和 Kubernetes YAML

Cloud Code for VS Code 旨在通过对结构和有效值进行架构检查并提供描述性错误,让 Kubernetes 和 Cloud Build 配置变得更加简单。Cloud Code 提供针对常用架构的开箱即用解决方案、智能补全功能和通过悬停鼠标查看文档的功能。

支持的 YAML 配置文件

Cloud Code 还开箱即用地支持热门的 Kubernetes 自定义资源定义 (CRD),例如 Kubeflow。

使用自定义架构

借助 Cloud Code,您可以在 settings.json 文件中使用 cloudcode.yaml.crdSchemaLocations 设置提供自己的 CRD 架构。您可以指向本地文件或网址。指向 github.com 的网址会自动转换为 raw.githubusercontent.com。

从集群拉取架构

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

使用代码段进行配置

借助针对常用 YAML 架构的开箱即用代码段(使用 Command/Ctrl+Space 即可查看选项),您可以轻松启动新的 YAML 文件或向现有的 YAML 文件添加内容而不会产生错误,同时仍然遵循最佳做法。Cloud Code 在您填写第一个字段后,会自动填写剩余的实例,从而简化重复字段的处理。

Cloud Code 提供以下代码段:

  • Anthos Config Management - Cluster
  • Anthos Config Management - Cluster Selector
  • Anthos Config Management - Config Management
  • Anthos Config Management - Namespace Selector
  • 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 - Secret
  • Kubernetes - Service
  • Migrate to Containers - Export
  • Migrate to Containers - PersistentVolumeClaim
  • Migrate to Containers - StatefulSet
  • Skaffold - Bazel
  • Skaffold - Getting-started
  • Skaffold - Helm deployment
  • Skaffold - Kaniko

根据上下文补全

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

针对 Kubernetes 架构补全上下文

验证 YAML 架构

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

“名称”字段的值以红色下划线突出显示,表示值 1234 无效;悬停文本显示:类型不正确。应为字符串。

悬停时显示文档

当您将指针悬停在架构中的某个值上时,Cloud Code 会显示相关文档。

将指针悬停在架构中的值上时显示的文档信息

访问资源定义

如需查看资源的定义,请右键点击该资源,然后选择前往定义或查看定义。

应用 YAML 文件

如需使用当前文件应用配置更改,请打开命令面板(按 Ctrl/Cmd+Shift+P,或点击 View [视图] > Command Palette [命令面板]),然后运行 Cloud Code: Apply Current JSON/YAML File to K8s Deployed Resource。

此命令将显示一个比较差异视图,供您查看更改。当系统提示您是否要应用此更改时,请点击应用。这将运行 kubectl apply -f。

查看 YAML 文件之间的差异

如需查看源代码控制中的 YAML 文件与已部署的 YAML 文件之间的差异,请打开命令面板(按 Ctrl/Cmd+Shift+P,或点击 View [视图] > Command Palette [命令面板]),然后运行 Cloud Code: Diff Current JSON/YAML File with K8s Deployed Resource(Cloud Code:将当前 JSON/YAML 文件与 K8s 已部署的资源进行比较)。

对 YAML 文件执行试运行

当您在 YAML 文件中输入信息时,Cloud Code 会自动执行试运行,并用黄色波浪线突出显示所有错误。

当服务器根据试运行结果认为您的部分代码存在错误时,系统会显示黄色波浪线。这可能包括违规、重复名称,或 Cloud Code 未在客户端执行的验证(例如最大端口号)。

如需查看 YAML 文件中错误的说明,请将指针悬停在带有黄色下划线的代码上。

“hello.deployment.yaml”上的服务器端试运行验证失败,并以消息框通知形式显示错误消息。错误详情可在输出通道中找到;命名空间“random-namespace”不存在

在 Cloud Code 与 Kubernetes 服务器进行检查之前,系统会以红色波浪线标记检测到的错误。例如,在需要字符串的位置放置数字会触发红色波浪线。

使用 Secret

使用配置映射和 Secret 是使用 Kubernetes 的关键部分。如需使用 Cloud Code 查看 base64 密钥的上下文,请将指针悬停在密钥上以对其进行解码。

将指针悬停在密文上即可解码密文

后续步骤

获取支持

如需发送反馈,请在 Stack Overflow 上提问。 如果您是 Google Cloud 客户,可以通过标准 Google Cloud 支持渠道提交工单。