企业级生产 GKE 集群和工作负载

创建针对生产环境优化的高安全性 Google Kubernetes Engine (GKE) 集群和工作负载。本指南介绍了以下模板,您可以使用这些模板部署生产 Web 应用:

  • 企业级生产 GKE 集群模板:创建 生产应用所需的基础架构。此模板用于设置经过优化且安全私密的 GKE 集群,以确保完整性、高级网络功能和灾难恢复能力。

  • 企业级生产 GKE 工作负载预览版):部署 Helm 图表,其中包含高可用性 无状态 Web 应用的配置。该工作负载经过配置,可增强安全性、可靠性和服务连续性。

例如,您可以部署集群和工作负载模板来满足以下业务需求:

示例 业务需求 实现
全球交易平台 金融机构需要一个低延迟、全球分布式交易平台,该平台具有最长的正常运行时间、严格的安全性以及可审核的合规性,以处理高频交易。 使用具有高级网络功能的全球分布式多区域集群,以确保超低延迟和弹性。实施强大的网络政策、专用集群配置和高级安全功能,以实现数据保护和监管合规。
多租户 SaaS 平台 软件即服务 (SaaS) 提供商需要为数千家企业客户托管一个高度可伸缩、安全且经济高效的平台,该平台需要严格的租户隔离、动态资源分配以及不间断地持续交付新功能。 使用具有强大的命名空间隔离、网络分段和配额管理功能的多租户集群,以确保租户之间公平共享资源和安全性。
关键运营的实时推理 组织需要在任务关键型欺诈检测应用中部署 AI/ML 模型以进行实时推理,这需要极低的延迟、高吞吐量以及能够快速适应新模型版本并具有完整的可审核性。 为 AI 推理配置具有专用节点池的集群。确保低延迟网络连接,并实现到推理端点的高效流量路由。

架构

下图展示了模板中的组件和连接:

设计画布中连接到节点池的集群

下面介绍了此模板中的组件配置:

  • GKE Standard 集群: 运行工作负载的集群。

    下表介绍了此模板中的集群配置:

    配置 用途
    location: us-central1 确保地理边界内的数据本地化和合规性。该区域内的多可用区设置可提供高可用性。
    network: projects/PROJECT_ID/global/networks/enterprise-vpc 指定预先存在的 VPC,该 VPC 通常专为网络分段和连接而设计。
    subnetwork: projects/PROJECT_ID/regions/us-central1/subnetworks/gke-subnet 指定 VPC 中集群的子网,该子网通常专为适当的 IP 分配和网络隔离而设计。
    master_authorized_networks_config: [{"cidr_block": "10.0.0.0/8", "display_name": "Internal Network"}] 将对控制平面端点的访问权限限制为特定的可信 IP CIDR 块。这可以防止未经授权访问集群管理 API。
    private_cluster_config.enable_private_endpoint: true 确保只能使用 VPC 或授权网络中的内部 IP 地址访问控制平面。这可以通过消除公开暴露来增强安全性。
    private_cluster_config.enable_private_nodes: true 确保所有工作器节点都只有专用 IP 地址,从而将它们与公共互联网隔离开来,并减少攻击面。
    release_channel: STABLE 可预测且经过全面测试的更新可在生产环境中保持稳定性。
    network_policy.enabled: true 启用 Kubernetes 网络政策,该政策可控制 pod 到 pod 的通信,从而增强安全性并实现微细分。
    binary_authorization: true 强制执行部署政策,确保只有可信且已签名的容器映像才能在集群上运行。
    database_encryption: {"state": "ENCRYPTED_WITH_CMEK", "key_name": "projects/PROJECT_ID/locations/us-central1/keyRings/gke-keyring/cryptoKeys/gke-etcd-key"} 客户管理的加密密钥 (CMEK) 会对数据库进行加密,从而提供数据安全性并满足合规性要求。
    workload_identity_config: {"enabled": true} 允许 Kubernetes 服务账号充当 Google Cloud 服务账号,从而使用 IAM 实现对资源的精细安全访问。
    logging_configmonitoring_config 设置为 {"component_config": {"enable_components": ["SYSTEM_COMPONENTS", "WORKLOADS"]}} 与 Cloud Logging 和 Cloud Monitoring 集成,确保对生产工作负载进行全面可观测性、审核和提醒。
    maintenance_policy: {"daily_maintenance_window": {"start_time": "03:00"}, "recurring_window": {"start_time": "00:00", "end_time": "04:00", "recurrence": "FREQ=WEEKLY;BYDAY=SAT,SUN"}} 维护窗口控制 GKE 执行自动升级的时间,从而最大限度地减少对关键应用的中断。
    enable_shielded_nodes: true 安全强化型 GKE 节点提供安全启动和完整性监控等安全功能,以防范 rootkit 和启动级恶意软件。
    gateway_api_config: {"channel": "CHANNEL_STANDARD"} 针对企业应用中的复杂路由、负载均衡和 API 管理的高级流量管理。
    security_posture_config: {"mode": "ENTERPRISE", "vulnerability_mode": "VULNERABILITY_ENTERPRISE"} 高级安全状况管理,包括漏洞扫描和政策执行。
  • GKE 节点池: 一组运行应用容器的工作器节点。

    下表介绍了此模板中的节点池配置:

    配置 用途
    location: us-central1 指定创建此节点池的区域。与集群的位置类似,这可确保节点池资源位于单个地理区域内。
    autoscaling: {"max_node_count":3, "min_node_count":1} 为此节点池配置集群自动扩缩器。 确保节点池始终至少保留一个节点,并将上限设置为三个节点,以控制费用和资源消耗。
    node_config: {"machine_type":"e2-medium", "oauth_scopes":["https://www.googleapis.com/auth/cloud-platform"], "shielded_instance_config":{"enable_secure_boot":true}} 对该池中的节点进行分组配置。机器类型是 CPU 和内存的平衡,适用于通用工作负载。定义授予服务帐号的访问权限。为安全强化型虚拟机实例启用安全启动,有助于防范启动级恶意软件。

Helm 图表配置

下表列出了 Helm 图表配置,这些配置已针对在 GKE 上部署和伸缩基本 Web 应用进行了自定义。

配置 用途
replicaCount: 3 创建三个初始副本,为应用建立初始级别的冗余和基本高可用性。
image.repository: gcr.io/google-samples/hello-app 使用基本 Web 服务器 Docker 映像作为占位符。
resources.requests: {"cpu": "100m", "memory": "128Mi"} 指定为每个 pod 保留的 CPU 和内存下限,确保资源可用性和高效调度。
resources.limits: {"cpu": "250m", "memory": "256Mi"} 指定为每个 pod 保留的 CPU 和内存上限,防止单个 pod 垄断资源。
networkPolicy.enabled: true 为应用启用 Kubernetes 网络政策,该政策可让您定义 pod 如何相互通信以及与其他网络端点通信的规则,从而强制执行网络分段和隔离。
service: {"type": "ClusterIP", "port": 80} 在标准 HTTP 端口上配置集群内部访问的服务。
pdb: {"enabled": true, "minAvailable": 1} 启用 Pod 中断预算,以确保在自愿中断期间至少有一个副本保持可用,从而保持高可用性。

创建 Web 应用

使用 企业级生产 GKE 集群和工作负载 模板部署 Web 应用。

部署 Web 基础架构

配置并部署 企业级生产 GKE 集群 模板,以创建运行 Web 工作负载的基础架构。

  1. 复制并部署 企业级生产 GKE 集群 模板作为应用。

    系统会在您选择的部署项目中创建 GKE 集群。

  2. 配置组件。详情请参阅以下内容:

  3. 点击部署 。应用会在几分钟后部署完毕。

  4. 应用详情 面板中,点击输出 标签页。

  5. 确定应用的 cluster_id 。部署 Helm 图表时,您将使用此信息。

部署 Web 工作负载

使用 企业级生产 GKE 工作负载 模板将 Web 工作负载部署到您创建的集群中。您将部署包含 Web 工作负载配置的 Helm 图表。

  1. Google 目录 页面上,点击 Enterprise-grade production GKE workload (企业级生产 GKE 工作负载)模板上的 Create new application (创建新应用)。

  2. 名称 字段中,输入应用的唯一名称。

  3. GKE Deployment Target (GKE 部署目标)区域中,执行以下操作:

    1. Project list(项目列表)中,选择您从中部署 GKE 集群的项目(来自 企业级生产 GKE 集群 应用)。

    2. 区域 列表中,选择您部署 GKE 集群的区域。

    3. 集群 列表中,选择已部署的 GKE 集群。

    4. 命名空间 列表中,输入工作负载的命名空间。如果您未更改名称,请输入 default

    5. 点击创建应用

    系统会创建应用并显示配置文件。

  4. Helm chart (Helm 图表)面板中,执行以下操作:

    1. 查看配置详情

    2. 可选:自定义配置以满足您的独特需求。

    3. 如需将 Helm 图表部署到集群,请点击部署

      如需了解详细步骤,请参阅部署应用

    几分钟后,Helm 图表配置会部署到您的 GKE 集群。

后续步骤