创建集群

本页面介绍如何在启用了 Binary Authorization 的 Google Kubernetes Engine (GKE) 中创建集群。您可以在命令行中使用 gcloud 命令或在 Google Cloud 控制台中执行此步骤。这个步骤是设置 Binary Authorization for GKE 的一部分。

准备工作

创建启用了 Binary Authorization(仅 CV 监控)的集群

Binary Authorization 可与 Autopilot 或 Standard 集群搭配使用。如需配置“仅监控”评估模式,您必须至少指定一个基于检查的平台政策

如需创建启用 Binary Authorization(仅 CV 监控)的集群,请执行以下操作:

控制台

以下步骤用于配置 Standard 集群。

  1. 在 Google Cloud 控制台中,转到 GKE 页面。

    转到 GKE

  2. 点击创建集群。按照创建可用区级集群中的说明,为默认字段输入值。

  3. 在导航菜单中,点击安全

  4. 选择启用 Binary Authorization。 1. 选择仅审核,并配置您希望 Binary Authorization 用来评估集群映像的 CV 基于检查的平台政策

  5. 点击创建

gcloud

  1. 设置默认的 Google Cloud 项目:

    gcloud config set project PROJECT_ID
    

    根据您要在哪个项目中创建集群,将 PROJECT_ID 替换为相应的项目 ID。

  2. 创建仅使用基于 CV 平台政策的监控的集群:

    在使用下面的命令数据之前,请先进行以下替换:

    • CLUSTER_NAME:集群名称。
    • LOCATION:位置,例如 us-central1asia-south1
    • POLICY_PROJECT_ID:存储政策的项目的 ID。
    • POLICY_ID:政策 ID。
    • CLUSTER_PROJECT_ID:集群项目 ID。

    执行以下命令:

    Linux、macOS 或 Cloud Shell

    gcloud beta container clusters create CLUSTER_NAME \
        --location=LOCATION \
        --binauthz-evaluation-mode=POLICY_BINDINGS \
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID/platforms/gke/policies/POLICY_ID \
        --project=CLUSTER_PROJECT_ID

    Windows (PowerShell)

    gcloud beta container clusters create CLUSTER_NAME `
        --location=LOCATION `
        --binauthz-evaluation-mode=POLICY_BINDINGS `
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID/platforms/gke/policies/POLICY_ID `
        --project=CLUSTER_PROJECT_ID

    Windows (cmd.exe)

    gcloud beta container clusters create CLUSTER_NAME ^
        --location=LOCATION ^
        --binauthz-evaluation-mode=POLICY_BINDINGS ^
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID/platforms/gke/policies/POLICY_ID ^
        --project=CLUSTER_PROJECT_ID

创建集群可能需要几分钟时间。

创建启用 Binary Authorization(仅强制执行)的集群

Binary Authorization 可与 Autopilot 或 Standard 集群搭配使用。强制执行政策设置为项目政策,默认情况下允许所有映像。如需更改项目政策,请按照这些说明操作。

如需创建启用 Binary Authorization(仅强制执行)的集群,请执行以下操作:

控制台

以下步骤用于配置 Standard 集群。

  1. 在 Google Cloud 控制台中,转到 GKE 页面。

    转到 GKE

  2. 点击创建集群。按照创建可用区级集群中的说明,为默认字段输入值。

  3. 在导航菜单中,点击安全

  4. 选择启用 Binary Authorization

  5. 选择仅强制执行

  6. 点击创建

gcloud

  1. 设置默认的 Google Cloud 项目:

    gcloud config set project PROJECT_ID
    

    根据您要在哪个项目中创建集群,将 PROJECT_ID 替换为相应的项目 ID。

  2. 创建仅使用政策强制执行的集群:

    在使用下面的命令数据之前,请先进行以下替换:

    • CLUSTER_NAME:集群名称。
    • LOCATION:位置,例如 us-central1asia-south1
    • CLUSTER_PROJECT_ID:集群项目 ID。

    执行以下命令:

    Linux、macOS 或 Cloud Shell

    gcloud beta container clusters create CLUSTER_NAME \
        --location=LOCATION \
        --binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE \
        --project=CLUSTER_PROJECT_ID

    Windows (PowerShell)

    gcloud beta container clusters create CLUSTER_NAME `
        --location=LOCATION `
        --binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE `
        --project=CLUSTER_PROJECT_ID

    Windows (cmd.exe)

    gcloud beta container clusters create CLUSTER_NAME ^
        --location=LOCATION ^
        --binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE ^
        --project=CLUSTER_PROJECT_ID

Terraform

以下 Terraform 示例会创建并配置 Standard 集群:

resource "google_container_cluster" "enforce" {
  name               = "gke-standard-regional-binauthz-enforce"
  location           = "us-west1"
  initial_node_count = 1

  binary_authorization {
    evaluation_mode = "PROJECT_SINGLETON_POLICY_ENFORCE"
  }

  # Set `deletion_protection` to `true` will ensure that one cannot
  # accidentally delete this instance by use of Terraform.
  deletion_protection = false
}

如需详细了解如何使用 Terraform,请参阅针对 GKE 的 Terraform 支持

创建集群可能需要几分钟时间。

创建启用了 Binary Authorization(CV 监控和强制执行)的集群

Binary Authorization 可与 Autopilot 或 Standard 集群搭配使用。

为了强制执行,政策会设置为项目政策,默认情况下允许所有映像。如需更改项目政策,请按照这些说明操作。

对于 CV 监控,您必须至少指定一个基于 CV 检查的平台政策

如需创建启用 Binary Authorization(同时启用 CV 监控和强制执行)的集群,请执行以下操作:

控制台

以下步骤用于配置 Standard 集群。

  1. 在 Google Cloud 控制台中,转到 GKE 页面。

    转到 GKE

  2. 点击创建集群。按照创建可用区级集群中的说明,为默认字段输入值。

  3. 在导航菜单中,点击安全

  4. 选择启用 Binary Authorization

  5. 选择审核并强制执行,并配置 CV 基于检查的平台政策

  6. 点击创建

gcloud

  1. 设置默认的 Google Cloud 项目:

    gcloud config set project PROJECT_ID
    

    根据您要在哪个项目中创建集群,将 PROJECT_ID 替换为相应的项目 ID。

  2. 创建同时使用项目单例政策强制执行和基于 CV 平台政策监控的集群:

    在使用下面的命令数据之前,请先进行以下替换:

    • CLUSTER_NAME:集群名称。
    • LOCATION:位置,例如 us-central1asia-south1
    • POLICY_PROJECT_ID:存储政策的项目的 ID。
    • POLICY_ID:政策 ID。
    • CLUSTER_PROJECT_ID:集群项目 ID。

    执行以下命令:

    Linux、macOS 或 Cloud Shell

    gcloud beta container clusters create CLUSTER_NAME \
        --location=LOCATION \
        --binauthz-evaluation-mode=POLICY_BINDINGS_AND_PROJECT_SINGLETON_POLICY_ENFORCE \
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID/platforms/gke/policies/POLICY_ID \
        --project=CLUSTER_PROJECT_ID

    Windows (PowerShell)

    gcloud beta container clusters create CLUSTER_NAME `
        --location=LOCATION `
        --binauthz-evaluation-mode=POLICY_BINDINGS_AND_PROJECT_SINGLETON_POLICY_ENFORCE `
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID/platforms/gke/policies/POLICY_ID `
        --project=CLUSTER_PROJECT_ID

    Windows (cmd.exe)

    gcloud beta container clusters create CLUSTER_NAME ^
        --location=LOCATION ^
        --binauthz-evaluation-mode=POLICY_BINDINGS_AND_PROJECT_SINGLETON_POLICY_ENFORCE ^
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID/platforms/gke/policies/POLICY_ID ^
        --project=CLUSTER_PROJECT_ID

创建集群可能需要几分钟时间。

创建使用多个平台政策的 CV 集群(仅限 CV 监控)

Binary Authorization 可与 Autopilot 或 Standard 集群搭配使用。

您可以创建绑定多个平台政策的集群(请参阅 GKE API 参考文档了解详情)。

控制台

以下步骤用于配置 Standard 集群。

  1. 在 Google Cloud 控制台中,转到 GKE 页面。

    转到 GKE

  2. 点击创建集群。按照创建可用区级集群中的说明,为默认字段输入值。

  3. 在导航菜单中,点击安全

  4. 选择启用 Binary Authorization

  5. 选择仅审核,并配置一个或多个 Binary Authorization 用来评估集群的平台政策。

  6. 点击创建

gcloud

  1. 设置默认的 Google Cloud 项目:

    gcloud config set project PROJECT_ID
    
  2. 创建集群。

    在使用下面的命令数据之前,请先进行以下替换:

    • CLUSTER_NAME:集群名称。
    • LOCATION:位置,例如 us-central1asia-south1
    • POLICY_PROJECT_ID_1:存储第一个平台政策的项目的 ID。
    • POLICY_ID_1:第一个平台政策的政策 ID。
    • POLICY_PROJECT_ID_2:存储第二个平台政策的项目的 ID。多个政策可以存储在同一个项目中,也可以存储在不同项目中。
    • POLICY_ID_2:第二个平台政策的政策 ID。
    • CLUSTER_PROJECT_ID:集群项目 ID。

    执行以下命令:

    Linux、macOS 或 Cloud Shell

    gcloud beta container clusters create CLUSTER_NAME \
        --location=LOCATION \
        --binauthz-evaluation-mode=POLICY_BINDINGS \
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_1/platforms/gke/policies/POLICY_ID_1 \
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_2/platforms/gke/policies/POLICY_ID_2 \
        --project=CLUSTER_PROJECT_ID

    Windows (PowerShell)

    gcloud beta container clusters create CLUSTER_NAME `
        --location=LOCATION `
        --binauthz-evaluation-mode=POLICY_BINDINGS `
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_1/platforms/gke/policies/POLICY_ID_1 `
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_2/platforms/gke/policies/POLICY_ID_2 `
        --project=CLUSTER_PROJECT_ID

    Windows (cmd.exe)

    gcloud beta container clusters create CLUSTER_NAME ^
        --location=LOCATION ^
        --binauthz-evaluation-mode=POLICY_BINDINGS ^
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_1/platforms/gke/policies/POLICY_ID_1 ^
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_2/platforms/gke/policies/POLICY_ID_2 ^
        --project=CLUSTER_PROJECT_ID

创建集群可能需要几分钟时间。

创建使用多个平台政策(CV 监控和强制执行)的 CV 集群

Binary Authorization 可与 Autopilot 或 Standard 集群搭配使用。

您可以创建绑定多个平台政策的集群(请参阅 GKE API 参考文档了解详情)。

控制台

以下步骤用于配置 Standard 集群。

  1. 在 Google Cloud 控制台中,转到 GKE 页面。

    转到 GKE

  2. 点击创建集群。按照创建可用区级集群中的说明,为默认字段输入值。

  3. 在导航菜单中,点击安全

  4. 选择启用 Binary Authorization

  5. 选择审核并强制执行并配置 CV 监控政策。

  6. 点击创建

gcloud

  1. 设置默认的 Google Cloud 项目:

    gcloud config set project PROJECT_ID
    
  2. 创建同时使用项目单例政策强制执行和基于 CV 平台政策监控的集群:

    在使用下面的命令数据之前,请先进行以下替换:

    • CLUSTER_NAME:集群名称。
    • LOCATION:位置,例如 us-central1asia-south1
    • POLICY_PROJECT_ID_1:存储第一个平台政策的项目的 ID。
    • POLICY_ID_1:第一个平台政策的政策 ID。
    • POLICY_PROJECT_ID_2:存储第二个平台政策的项目的 ID。多个政策可以存储在同一个项目中,也可以存储在不同项目中。
    • POLICY_ID_2:第二个平台政策的政策 ID。
    • CLUSTER_PROJECT_ID:集群项目 ID。

    执行以下命令:

    Linux、macOS 或 Cloud Shell

    gcloud beta container clusters create CLUSTER_NAME \
        --location=LOCATION \
        --binauthz-evaluation-mode=POLICY_BINDINGS_AND_PROJECT_SINGLETON_POLICY_ENFORCE \
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_1/platforms/gke/policies/POLICY_ID_1 \
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_2/platforms/gke/policies/POLICY_ID_2 \
        --project=CLUSTER_PROJECT_ID

    Windows (PowerShell)

    gcloud beta container clusters create CLUSTER_NAME `
        --location=LOCATION `
        --binauthz-evaluation-mode=POLICY_BINDINGS_AND_PROJECT_SINGLETON_POLICY_ENFORCE `
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_1/platforms/gke/policies/POLICY_ID_1 `
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_2/platforms/gke/policies/POLICY_ID_2 `
        --project=CLUSTER_PROJECT_ID

    Windows (cmd.exe)

    gcloud beta container clusters create CLUSTER_NAME ^
        --location=LOCATION ^
        --binauthz-evaluation-mode=POLICY_BINDINGS_AND_PROJECT_SINGLETON_POLICY_ENFORCE ^
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_1/platforms/gke/policies/POLICY_ID_1 ^
        --binauthz-policy-bindings=name=projects/POLICY_PROJECT_ID_2/platforms/gke/policies/POLICY_ID_2 ^
        --project=CLUSTER_PROJECT_ID

创建集群可能需要几分钟时间。

验证 Binary Authorization 是否已启用

如需验证集群是否已启用 Binary Authorization,请执行以下操作:

控制台

  1. 打开 Google Cloud 控制台中的 GKE 页面。

    转到 GKE

  2. Kubernetes 集群下,找到您的集群。

  3. 安全性下,验证 Binary Authorization 是否已设置为已启用

gcloud

如需列出集群的政策绑定,请执行以下操作:

gcloud beta container clusters describe CLUSTER_NAME --location LOCATION --project CLUSTER_PROJECT_ID | grep -A 10 policyBindings:

请注意,政策绑定列表后面可能有其他信息。

后续步骤