在 Cloud Shell 专用 Cloud Code 中使用 Google Cloud 和 Kubernetes YAML

Cloud Shell 专用 Cloud Code 旨在通过针对结构和有效值对架构执行 lint 请求并提供描述性错误来简化 Kubernetes 和 Cloud Build 配置。Cloud Code 提供针对常用架构的开箱即用解决方案、智能补全功能和通过悬停鼠标查看文档的功能。

支持的 YAML 配置文件

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

使用自定义架构

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

从集群中拉取架构

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

使用代码段进行配置

借助针对常用 YAML 架构的开箱即用代码段(使用 Command/Ctrl+Space 即可查看选项),您可以轻松启动新的 YAML 文件或向现有的 YAML 文件添加内容而不会产生错误,同时仍然遵循最佳做法。使用 Cloud Code,您可以更轻松地处理重复字段;只需填写第一个字段,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 文件中的无效标记和值并尽可能给出修正建议,来提供架构验证支持。

name 字段的值添加红色下划线,以突出显示无效值 1234;悬停文字状态:类型不正确。预期字符串。

通过悬停鼠标浏览文档

当您持有 指向架构中的值的指针。

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

访问资源定义

要查看某项资源的定义,请右键点击该资源,然后选择 前往“定义”Peek 定义

应用 YAML 文件

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

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

查看 YAML 文件之间的差异

查看源代码控制中的 YAML 文件与已部署的 YAML 文件之间的区别 YAML 文件,打开命令面板(按 Ctrl/Cmd+Shift+P 或点击 查看 >Command Palette)然后运行 Cloud Code:比较当前 JSON/YAML 文件与 K8s 部署的资源

对 YAML 文件执行试运行

在您输入信息时,Cloud Code 会自动执行试运行 ,并在出现的任何错误时用黄色的波浪线加下划线。

当服务器考虑代码的一部分时,会出现黄色波浪线 根据试运行结果报告错误。这可能包括违反政策、重复的名称,或 Cloud Code 未在客户端执行的验证(例如最大端口号)。

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

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

在 Cloud Code 与 Kubernetes 服务器进行检查之前,系统会针对检测到的错误显示红色波浪线。例如,在字符串的 则会触发红色波浪线。

使用 Secret

使用配置映射和 Secret 是使用 Kubernetes 的一个关键环节。如需使用 Cloud Code 查看 base64 Secret 的上下文,请将光标悬停在相应 Secret 上方以将其解码。

将指针悬停在密钥上方,以解码密钥

后续步骤