开始使用适用于 Kubernetes 的 Cloud Code for VS Code

借助 Cloud Code,您可以根据示例或现有项目创建 Kubernetes 应用。

通过模板创建应用

Cloud Code 随附了一系列代码示例模板,可帮助您快速上手。如需使用现有示例创建 Kubernetes 应用,请按以下步骤操作:

  1. 启动 Command Palette(按 Ctrl/Cmd+Shift+P 或点击 View > Command Palette),然后运行 Cloud Code: New Application
  2. 选择 Kubernetes 应用作为示例类型。
  3. 根据您要使用的语言,从可用选项中选择示例:NodeJS、Go、Python、Java。
  4. 在本地机器上选择首选应用位置,然后点击新建应用以保存。

    Cloud Code 会克隆您选择的示例,并打开您的新项目以供使用。

示例应用结构

所有语言示例应用都具有几乎相同的结构。这不是唯一受支持的结构,但是建议您在开始创建应用时使用此结构。

例如,Node.js Guestbook 应用结构如下所示:

.
|---- .vscode
|      ---- launch.json
|---- kubernetes-manifests
|     |---- guestbook-backend.deployment.yaml
|     |---- guestbook-backend.service.yaml
|     |---- guestbook-frontend.deployment.yaml
|     |---- guestbook-frontend.service.yaml
|     |---- mongo.deployment.yaml
|     ---- mongo.service.yaml
|---- src
|     |---- backend
|     |     |---- Dockerfile
|     |     |---- index.js
|     |     |---- app.js
|     |     ---- package.json
|     |---- frontend
|           |---- Dockerfile
|           |---- index.js
|     |     |---- app.js
|           ---- package.json
---- skaffold.yaml

我们来仔细看一下这个 Kubernetes Guestbook Node.js 示例应用,以下是一些关键文件及其用途:

  • .vscode
    • extensions.json:有关在打开此项目时请求下载相关扩展程序的提示
    • launch.json:启动配置(类型为 cloudcode.kubernetes)以运行或调试 Kubernetes 应用
    • tasks.jsonVisual Studio Code Tasks 的配置信息
  • kubernetes-manifests
    • guestbook-backend.deployment.yaml:后端节点的 pod 规范
    • guestbook-frontend.deployment.yaml:前端节点的 pod 规范
    • mongo.deployment.yaml:数据库的 pod 规范
  • src
    • (backend|frontend)/app.js:使用 Web 服务器逻辑的 Node.js 代码
    • (backend|frontend)/Dockerfile:用于为我们的程序构建容器映像
  • skaffold.yamlSkaffold 的配置文件,由 Cloud Code 用来构建、部署和调试 Kubernetes 应用

使用您自己的应用

如需了解使用现有项目的步骤,请参阅将 Cloud Code 与现有 Kubernetes 应用搭配使用

设置 Kubernetes 上下文

在运行应用之前,请确保您已准备好将应用部署到首选 Kubernetes 上下文。您可以在配置中指定此信息。

配置

使用 Cloud Code:在 Kubernetes 上开发运行配置时,您可以通过配置可用设置来自定义部署。

如需添加或修改配置,请依次选择 Run > Open Configurations,然后修改或添加配置。

构建设置

Cloud Code 支持 Docker、Jib 和 Buildpacks 工件类型。如需了解如何设置首选构建器及其相关设置,请参阅配置容器映像构建偏好设置指南

自定义启动配置

如需配置应用的运行方式,您可以自定义 skaffold.yaml 文件。

您还可以通过修改 .vscode/launch.json 文件中的 cloudcode.kubernetes 配置来配置启动。

如需详细了解如何自定义启动配置,请参阅 Cloud Code 中的 Kubernetes

运行您的应用

设置好应用后,您可以利用 skaffold dev 在 Kubernetes 集群上运行应用并查看其实时状态。您可以在本地集群(如 minikube 或 Docker Desktop)、Google Kubernetes Engine 或任何其他云服务商上运行应用。

  1. 打开 Command Palette(按 Ctrl/Cmd+Shift+P),然后运行 Cloud Code: Run on Kubernetes 命令。
  2. 确认要使用当前的 Kubernetes 上下文来运行应用(还是切换到首选 Kubernetes 上下文)。如需详细了解如何设置 Kubernetes 上下文,请参阅设置配置
  3. 如果您选择了远程集群作为上下文,请在出现提示时选择将映像推送到其中的映像注册数据库。如果您使用的是 Container Registry,则可以浏览至现有注册数据库,或指定要创建的注册数据库的名称。如果您的项目已启用 Artifact Registry API 并且至少有一个 Artifact Registry 代码库,则可以浏览并选择现有的 Artifact Registry 代码库。

    以下示例展示了如何为一些常用的注册表指定容器映像的存储位置:

    Artifact Registry {region}-docker.pkg.dev/{project_id}/{repo-name}
    Container Registry gcr.io/{project_id}
    Docker Hub docker.io/{account}
    如果您使用的是专用 Docker Hub 代码库,请确保已正确进行身份验证
    AWS Container Repository (ECR) {aws_account_id}.dkr.ecr.{region}.amazonaws.com/{my-app}
    Azure Container Registry (ACR) {my_acr_name}.azurecr.io/{my-app}

    Cloud Code 会将此映像注册表与 Kubernetes 清单中指定的映像名称连接,以生成最终映像代码库名称。

    如需了解详情,请参阅映像注册表处理指南

    您的选择会存储在 cloudcode.kubernetes 启动配置(可在 .vscode/launch.json 中找到)中

    Cloud Code 会构建您的容器,将其推送到注册表,将 Kubernetes 配置应用到集群,并等待发布。

查看日志

除了在开发和运行应用时在终端输出中作为实时流看到来自正在运行的 Pod 的日志,您还可以导航到 Kubernetes 部分来查看来自特定 Pod 的日志。

如需查看来自特定 pod 的日志,请按以下步骤操作:

  1. 在“Kubernetes”部分,展开 Deployment
  2. 右键点击要查看其日志的 pod,然后点击查看日志

    日志查看器随即会打开。

进行更改、重建和清理

如果您在启动配置中将监视模式设置为 false,并且您希望更改应用,然后重新构建和重新部署应用,请执行以下操作:

  1. 进行更改并保存。

  2. 在“Debug”工具栏中,点击 Pause (F6),然后点击 Restart (Ctrl/Cmd + Shift + F5) 以重新构建并重新部署应用。

  3. 如需停止运行应用,请在调试工具栏中点击停止

停止应用后,所有已部署的 Kubernetes 资源都将从集群中删除。您可以使用启动配置中的 cleanUp 标志来更改此行为。

存储 Secret

如果您的代码包含潜在的敏感数据,例如 API 密钥、密码和证书,我们建议您将它们存储为密文。借助 Cloud Code,您可以安全地将这些密文存储在 Secret Manager 中,并在需要时以编程方式提取它们。

如需详细了解如何使用 Cloud Code 创建和管理密文,请参阅 Secret Manager 指南

查看资源详情

Kubernetes 部分显示集群、命名空间、节点、工作负载(例如部署、副本集、pod 和容器)、服务和 Ingress、配置(例如 Secret 和 ConfigMap)以及存储(例如卷)。使用 Kubernetes 部分,您可以对其中一些资源执行独特的操作。

如需详细了解如何查看资源详情,请参阅 Kubernetes 概览

后续步骤

获取支持

如需发送反馈,请在 GitHub 上报告问题,或者在 Stack Overflow 上提问。