使用机密 GKE 节点


本页面介绍如何使用机密 Google Kubernetes Engine 节点功能。机密 GKE 节点可为您的工作负载提供使用中加密功能。

概览

机密 GKE 节点是在 Compute Engine 机密虚拟机的基础上构建的,可对使用中的虚拟机内存内容进行加密。启用了机密 GKE 节点的集群会强制对所有节点使用机密虚拟机。这意味着您的节点(包括在这些节点上运行的工作负载)已进行使用中加密。如需了解控制层面,请使用 Access Transparency

部署机密 GKE 节点无需额外费用,但需要支付 Compute Engine 机密虚拟机的费用。但是,机密 GKE 节点在启动时生成的日志数据可能比标准节点生成的日志数据要多一点。如需了解日志价格,请参阅 Google Cloud 的运维套件的价格

可用性

机密 GKE 节点适用于以下情况:

  • 机密 GKE 节点适用于标准和快速发布渠道的 GKE 1.18.6-gke.1600 版及更高版本。
  • 机密 GKE 节点适用于提供了 N2D 实例的区域和可用区。
  • 机密 GKE 节点可用于 Container-Optimized OSContainer-Optimized OS (cos_containerd)
  • 机密 GKE 节点会强制在节点池中使用机密虚拟机。
  • 机密虚拟机仅适用于 Compute Engine 的 N2D 实例。

准备工作

在开始之前,请确保您已执行以下任务:

使用以下任一方法设定默认的 gcloud 设置:

  • 使用 gcloud init(如果您想要在系统引导下完成默认设置)。
  • 使用 gcloud config(如果您想单独设置项目 ID、区域和地区)。

使用 gcloud init

如果您收到 One of [--zone, --region] must be supplied: Please specify location 错误,请完成本部分。

  1. 运行 gcloud init 并按照说明操作:

    gcloud init

    如果您要在远程服务器上使用 SSH,请使用 --console-only 标志来防止命令启动浏览器:

    gcloud init --console-only
  2. 按照说明授权 gcloud 使用您的 Google Cloud 帐号。
  3. 创建新配置或选择现有配置。
  4. 选择 Google Cloud 项目。
  5. 为可用区级集群选择默认 Compute Engine 可用区,或为区域级集群或 Autopilot 集群选择区域。

使用 gcloud config

  • 设置默认项目 ID
    gcloud config set project PROJECT_ID
  • 如果您使用的是可用区级集群,请设置默认计算可用区
    gcloud config set compute/zone COMPUTE_ZONE
  • 如果您使用的是 Autopilot 集群或区域级集群,请设置默认计算区域
    gcloud config set compute/region COMPUTE_REGION
  • gcloud 更新到最新版本:
    gcloud components update

在新集群中启用机密 GKE 节点

您可以使用 gcloud 工具或 Google Cloud Console 创建启用了机密 GKE 节点的新集群。

gcloud

创建新集群时,请在 gcloud 命令行工具中指定 --enable-confidential-nodes 选项:

gcloud beta container clusters create CLUSTER_NAME \
  --release-channel=RELEASE_CHANNEL \
  --machine-type N2D_MACHINE_TYPE \
  --enable-confidential-nodes

请替换以下内容:

  • CLUSTER_NAME:新集群的名称。

  • RELEASE_CHANNEL:发布版本必须为 regularrapid

  • N2D_MACHINE_TYPE 是集群的默认节点池的机器类型,它必须是 N2d 机器类型

控制台

  1. 转到 Cloud Console 中的 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 点击 创建

  3. 标准部分中,点击配置

  4. 在导航窗格的集群下,点击安全

  5. 选中启用机密 GKE 节点复选框。

  6. 根据需要配置集群。

  7. 点击创建

如需详细了解如何创建集群,请参阅创建集群

创建具有机密 GKE 节点的集群后,在此集群中创建的所有节点池都只能是机密节点。

验证是否已启用机密 GKE 节点

您可以使用 gcloud 命令行工具或 Google Cloud Console 来验证您的集群是否使用了机密 GKE 节点。

gcloud

描述集群:

gcloud beta container clusters describe CLUSTER_NAME

如果启用了机密 GKE 节点,则该命令的输出将包括以下行:

confidentialNodes:
  enabled: true

控制台

  1. 转到 Cloud Console 中的 Google Kubernetes Engine 页面:

    转到 Google Kubernetes Engine

  2. 点击您要检查的集群的名称。

  3. 安全下的机密 GKE 节点字段中,验证机密 GKE 节点是否已启用

如需验证节点的机密性,您可以在 Compute Engine 日志中查看各个节点的启动证明事件。如需了解详情,请参阅使用 Cloud Monitoring 验证机密虚拟机

在机密 GKE 节点上运行应用

Google 的机密计算方法是为现有应用启用轻松的直接原样迁移。您当前运行的 GKE 工作负载无需更改代码即可在机密 GKE 节点上运行。

(可选)如果要以声明方式表明工作负载只能在具有机密 GKE 节点的集群上运行,您可以使用 cloud.google.com/gke-confidential-nodes 节点选择器。以下是使用此选择器的 Pod 规范示例:

apiVersion: v1
kind: Pod
spec:
  containers:
  - name: my-confidential-app
    image: us-docker.pkg.dev/myproject/myrepo/my-confidential-app
    nodeSelector: cloud.google.com/gke-confidential-nodes:true

限制

在新集群上启用机密 GKE 节点之前,请考虑以下限制:

  • 您无法在现有集群上启用机密 GKE 节点。
  • 在集群上启用机密 GKE 节点后,您无法将其停用。
  • 机密 GKE 节点与 GPU 不兼容。
  • 机密 GKE 节点与单租户节点不兼容。
  • 目前,如果已启用机密 GKE 节点,则无法添加本地 SSD 或永久性磁盘。
  • 仅支持 Container-Optimized OS 节点。不支持 Ubuntu 和 Windows 节点。
  • 不支持控制层面(主实例)节点的机密虚拟机。

后续步骤