在单个位置创建经济高效的 Google Kubernetes Engine (GKE) 集群和工作负载,并针对资源管理进行优化。本指南介绍了以下模板,您可以使用这些模板部署基本 Web 应用:
单区域 GKE 集群模板:创建单区域应用所需的基础架构。此模板会设置一个安全、私有的 GKE 集群,并针对资源管理进行优化。
单区域 GKE 工作负载 (预览版):部署 包含基本 Web 应用配置的 Helm 图表。 该工作负载配置为根据 CPU 负载进行扩缩,并确保在主动中断期间应用可用。
例如,您可以部署集群和工作负载模板来满足以下业务需求:
| 示例 | 业务需求 | 实现 |
|---|---|---|
| 内部业务线应用 | 内部应用需要在特定区域内严格遵守数据驻留要求,针对可预测的内部使用情况实现经济高效,并具有高可靠性。 | 使用单区域部署来确保数据存放区域。使用自动扩缩功能高效管理资源,以满足内部用户需求。 |
| 区域电子商务后端 | 电子商务平台需要在特定区域内实现高可用性,以确保服务不间断;需要可伸缩性,以应对销售活动期间的流量高峰;需要强大的安全性,以保护客户交易和数据。 | 创建多可用区集群配置,以提供区域高可用性。使用安全启动配置来增强敏感客户数据的安全态势。 |
| 区域数据处理和分析平台 | 用于处理和分析大型数据集的平台需要数据存放区域,以满足合规性和性能要求;需要针对间歇性批处理作业进行成本优化的计算;需要安全的数据访问。 | 单区域部署可确保数据保留在地理边界内。针对大型处理任务和空闲期扩缩资源。 |
架构
下图显示了模板中的组件和连接:
下面介绍了此模板中的组件配置:
GKE Standard 集群: 经济高效的单区域集群,用于运行工作负载。
下表介绍了此模板中的集群配置:
配置 用途 location设置为us-central1。将集群资源限制在单个地理区域内,确保数据存放区域,并最大限度地降低跨区域数据传输费用和延迟时间。 initial_node_count设置为1。定义在首次预配集群时在集群的默认节点池中创建的初始节点。在区域级集群中,这是每个可用区的节点数。 release_channel设置为{"channel":"REGULAR"}。确保 GKE 集群接收稳定且可预测的更新,从而在新功能和可靠性之间取得平衡。 enable_intranode_visibility设置为true。在 VPC 流日志中启用节点内流量的可见性,这是网络监控、问题排查和安全分析所必需的。 control_plane_endpoints_config设置为{"dns_endpoint_config":{"allow_external_traffic":true}}。GKE 控制平面配置为公开访问,以便您在 Virtual Private Cloud (VPC) 网络之外管理集群。 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: 2 |
创建两个初始副本,以建立初始级别的冗余。 |
image.repository: gcr.io/google-samples/hello-app |
使用基本 Web 服务器 Docker 映像。 |
resources.requests: {"cpu": "100m", "memory": "128Mi"} |
指定为每个 pod 保留的 CPU 和内存下限,确保可用资源和高效调度。 |
hpa: {"enabled": true, "minReplicas": 2, "maxReplicas": 10, "targetCPUUtilizationPercentage": 60} |
激活 Pod 横向自动扩缩器,以根据 CPU 利用率自动调整 pod 数量(介于 2 到 10 之间),确保性能和成本效益。 |
service: {"type": "ClusterIP", "port": 80} |
在标准 HTTP 端口上配置集群内的内部访问服务。 |
pdb: {"enabled": true, "minAvailable": 1} |
启用 Pod 中断预算,以确保在主动中断期间至少有一个副本保持可用,从而维持高可用性。 |
创建 Web 应用
使用“单区域 GKE 集群和工作负载”模板部署 Web 应用。
部署 Web 基础架构
配置并部署“单区域 GKE 集群”模板,以创建 Web 工作负载运行的基础架构。
复制并部署 单区域 GKE 集群 模板作为应用。
系统会在您选择的部署项目中创建一个 GKE 集群。
配置组件。详情请参阅以下内容:
点击部署 。应用会在几分钟后部署完毕。
在应用详情 面板中,点击输出 标签页。
确定应用的 cluster_id 。部署 Helm 图表时,您将使用此信息。
部署 Web 工作负载
使用“单区域 GKE 工作负载”模板将 Web 工作负载部署到您创建的集群中。 您将部署包含 Web 工作负载配置的 Helm 图表。
在 Google 目录 页面上,点击单区域 GKE 工作负载 模板中的创建新应用 。
在名称 字段中,输入应用的唯一名称。
在 GKE 部署目标 区域中,执行以下操作:
在项目列表中,选择您在其中部署了 GKE 集群的项目(来自“单区域 GKE 集群”应用)。
在区域 列表中,选择您在其中部署了 GKE 集群的区域。
在集群 列表中,选择已部署的 GKE 集群。
在命名空间 列表中,输入您在其中部署了 GKE 集群的命名空间。如果您未更改名称,请输入
default。点击创建应用 。
系统会创建应用并显示配置文件。
在 Helm 图表 面板中,执行以下操作:
几分钟后,Helm 图表配置会部署到 GKE 集群。
后续步骤
- 通过基于 Google 模板进行构建,复制并自定义此模板。
- 通过设计应用模板,定义您自己的配置。
- 使用Google Cloud 架构框架确定一般架构最佳实践。