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

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

Cloud Code for Cloud Shell 通过针对架构和有效值对架构执行 lint 请求并提供描述性错误来简化 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 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”;悬停文字状态:“类型错误。预期字符串。”

通过悬停鼠标浏览文档

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

将指针悬停在架构中的值上时可查看文档信息

访问资源定义

如需查看资源的定义,请右键点击资源,然后选择 Go to Definition(转到定义)或 Peek Definition(查看定义)。

应用 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

对 YAML 文件执行试运行

如需执行配置试运行并检查其有效性,请打开命令面板(按 Ctrl/Cmd+Shift+P 或点击 View > Command Palette),然后运行 Cloud Code: dry-run current config for server-side verificationCloud Code: Dry-run Current Config for Client-side Validation

这将运行 kubectl apply -f dry-run=server(对于客户端选项,则为 kubectl apply -f dry-run=client),并以消息框通知形式显示成功验证(如果您的配置文件无效,则会显示错误消息)。

在以下示例中,配置文件 hello.deployment.yaml 的服务器端试运行验证会在尝试创建部署时返回错误,因为指定的命名空间 random-namespace 不存在。

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

使用 Secret

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

通过将指针放到密钥上来解码密钥