本页面介绍了如何在 Config Controller 集群上部署您自己的工作负载。
准备工作
在开始之前,请确保您已执行以下任务:
- 设置 Config Controller。
- 如果您的 Config Controller 集群的 GKE 版本低于 1.27 版,请将集群升级到 1.27 版或更高版本。
在 Standard 集群上启用节点自动预配功能
您必须启用节点自动预配才能在 Config Controller 集群上部署您自己的工作负载。这样,您就可以在您的工作负载与默认安装在 Config Controller 集群上的 Google 管理工作负载之间实现工作负载隔离。
如果您使用 Autopilot 集群,则无需启用节点自动预配功能,因为 GKE 会自动管理节点扩缩和预配。
gcloud
如需启用节点自动预配功能,请运行以下命令:
gcloud container clusters update CLUSTER_NAME \ --enable-autoprovisioning \ --min-cpu MINIMUM_CPU \ --min-memory MIMIMUM_MEMORY \ --max-cpu MAXIMUM_CPU \ --max-memory MAXIMUM_MEMORY \ --autoprovisioning-scopes=https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring,https://www.googleapis.com/auth/devstorage.read_only
请替换以下内容:
CLUSTER_NAME
:Config Controller 集群的名称。MINIMUM_CPU
:集群中的核心数下限。MINIMUM_MEMORY
:集群中的内存量下限 (GB)。MAXIMUM_CPU
:集群中的核心数上限。MAXIMUM_MEMORY
:集群中的内存量上限 (GB)。
控制台
如需启用节点自动预配功能,请执行以下步骤:
转到 Google Cloud 控制台中的 Google Kubernetes Engine 页面。
点击集群的名称。
在自动化部分的节点自动预配中,点击
修改。选中启用节点自动预配功能复选框。
设置集群的 CPU 和内存使用量下限和上限。
点击保存更改。
如需详细了解如何配置节点自动预配(例如设置默认值),请参阅配置节点自动预配。
部署工作负载
部署工作负载时,Config Controller 会自动启用 GKE Sandbox 以提供额外的安全防护,以防止不受信任的代码影响集群节点上的主机内核。如需了解详情,请参阅 GKE Sandbox 简介。
您可以通过编写工作负载清单文件,然后运行以下命令来部署工作负载:
kubectl apply -f WORKLOAD_FILE
将 WORKLOAD_FILE
替换为清单文件,例如 my-app.yaml
。
确认您的工作负载是否在自动预配节点上运行:
获取为工作负载创建的节点列表:
kubectl get nodes
检查特定节点:
kubectl get nodes
NODE_NAME
-o yaml将
NODE_NAME
替换为您要检查的节点的名称。
限制
- GKE Sandbox:GKE Sandbox 适合许多应用,但并不适合所有应用。如需了解详情,请参阅 GKE Sandbox 限制。
- 控制平面安全性:为工作负载授予权限时,请遵循最小权限原则,仅授予您所需的权限。如果您的工作负载遭到破解,则工作负载可以使用过于宽松的权限来更改或删除 Kubernetes 资源。
- 控制平面可用性:如果您的工作负载在短时间内导致流量增加,集群控制平面可能会变得不可用,直到流量减少。
- 控制平面调整大小:GKE 会根据需要自动调整控制平面的大小。如果您的工作负载导致负载大幅增加(例如,安装数千个 CRD 对象),GKE 的自动调整大小功能可能无法跟上负载增加的速度。
- 配额:在部署工作负载时,您应了解 GKE 的配额和限制,并避免超出这些配额和限制。
- 对控制平面和节点的网络访问权限:Config Controller 使用已启用主实例授权网络、已启用专用端点且已停用公共访问权限的专用节点。如需了解详情,请参阅 GKE 网络安全。
后续步骤
- 详细了解 Config Controller 最佳实践:Config Controller 可伸缩性、Config Controller 分片和为 Config Controller 配置高可用性
- 排查 Config Controller 问题
- 监控 Config Controller