1. 简介
本实验从技术角度介绍了如何使用 Gemini CLI 和 GKE Model Context Protocol (MCP) 服务器进行基础架构管理。在传统的 GKE 管理中,运维人员需要手动将基础设施要求转换为 gcloud 命令,并将应用定义转换为书面 YAML 清单。本实验将演示一种不同的方法:使用交互式界面将自然语言意图与 Google Kubernetes Engine (GKE) 上的技术执行联系起来。这种转变是平台工程领域更广泛趋势的一部分,该趋势将重点从构建僵化的自动化脚本转移到管理能够处理基础设施运营细微细节的智能代理。
核心概念
- 平台工程:这种实践活动旨在构建和维护内部工具和工作流,使软件开发者能够管理自己的基础架构,而无需精通每项底层云服务。目标是减少技术摩擦,同时保持一致性和安全性。通过创建标准化的黄金路径,平台团队可确保应用开发者能够安全快速地进行部署,同时平台团队可以保持对治理和成本的控制。
- Gemini CLI:这是一个命令行界面,可让您直接通过终端与 Gemini 模型互动。与基于网络的标准聊天机器人不同,CLI 旨在存在于您的开发环境中,从而更轻松地将 AI 集成到基于 shell 的现有工作流程中。借助该功能,您可以将其他命令的输出直接通过管道传输到模型,并在不离开终端环境的情况下执行指令。
- Model Context Protocol (MCP):MCP 是一种开放标准,可让 AI 模型连接到特定工具或数据源。如果没有 MCP,AI 模型只能了解其训练数据,而无法查看您的特定资源。借助 GKE MCP 服务器,Gemini CLI 可以主动查询您的 Google Cloud 项目的 API,检查集群的状态,并代表您执行命令。它充当模型推理引擎与实际 GKE API 之间的桥梁。
实验目标
学完本课程后,您将能够:
- 配置环境:访问 Cloud Shell 并对 GKE MCP 扩展程序进行身份验证,以允许 Gemini CLI 与您的 Google Cloud 资源进行交互。
- 基础设施设计:使用交互式提示,根据费用、管理开销和工作负载要求确定最佳集群配置。
- 资源管理:使用自然语言生成、审核和部署 Kubernetes 清单(Deployment、Service 等)。
- 运营分析:利用 AI 汇总日志和事件,找出部署失败的根本原因,并建议具体的修复技术。
2. 项目设置
在 Gemini CLI 与您的资源互动之前,您需要正确配置 Google Cloud 环境。此设置可确保您的项目具有正确的权限,并且所有必要的后端服务已准备好接收来自 AI 智能体的请求。
打开 Cloud Shell
在本实验中,我们将使用 Cloud Shell,这是 Google Cloud 提供的一个基于浏览器的终端环境。我们使用 Cloud Shell,因为它预配置了所需的所有工具,包括 Google Cloud CLI (gcloud)、kubectl 和 Gemini CLI,从而节省您在本地机器上安装这些工具的时间。
- 前往 Google Cloud 控制台。
- 查看控制台右上角的标题,然后点击激活 Cloud Shell 按钮(看起来像终端提示符
>_)。 - 终端会话将在浏览器窗口底部打开。如果出现提示,点击继续。
选择项目
在 Cloud Shell 终端中,确保您使用的是正确的项目。
- 在控制台中选择现有项目或专门为此实验创建新项目。
- 记下您的项目 ID。您可以通过运行以下命令在当前 shell 中设置项目:
gcloud config set project [YOUR_PROJECT_ID]
启用 API
对于新项目,Kubernetes 和 AI 功能默认处于未启用状态。启用这些 API 会初始化处理容器管理、生成式模型和集中式日志记录的底层 Google Cloud 服务。
👉💻 在 Cloud Shell 中运行以下命令以启用这些 API。此过程可能需要一分钟的时间。
gcloud services enable \
container.googleapis.com \
generativelanguage.googleapis.com \
cloudresourcemanager.googleapis.com \
logging.googleapis.com
- container.googleapis.com::Google Kubernetes Engine API。任何集群级层操作(包括创建、更新和删除集群)都需要此权限。
- generativelanguage.googleapis.com::此 API 可让 Gemini CLI 与 Gemini 大语言模型进行通信,以生成文本和进行推理。
- cloudresourcemanager.googleapis.com::代理检查项目级元数据、验证项目 ID 和管理 IAM 权限时需要此权限。
- logging.googleapis.com::对于问题排查至关重要,因为当出现问题时,它允许 MCP 服务器从容器中提取和分析日志。
3. 配置 Gemini CLI
Cloud Shell 默认包含 Gemini CLI,因此是此工作流程的理想环境。第一步是将其配置为“代理”,该代理具有管理 GKE 环境所需的权限和特定工具。此配置步骤至关重要,因为它可在 AI 的逻辑与实际云基础架构之间建立安全连接。
启动 Gemini CLI
在 Cloud Shell 终端中,创建一个新的工作目录并运行 Gemini CLI。此操作会启动一个会话,您可以在其中与模型进行持续对话。与一次性命令不同,交互模式会维护一个上下文窗口,用于记住您之前的指令和项目的状态。
👉💻 运行以下命令:
mkdir -p ~/gke-lab
cd ~/gke-lab
gemini

进入容器后,测试工具的基本感知能力,确保它可以识别您的环境:
- 👉💬 提示:
Which Google Cloud project is currently active in this shell?
系统可能会要求您确认是否为您执行 gcloud 命令,您可以接受。
您可以随时输入 /quit 退出该界面。
注意:如果 Gemini 2.5 Pro 出现容量问题,您可以打开 Gemini,然后
gemini -m gemini-2.5-flash
或使用
/model
界面中的命令。
连接 GKE MCP 扩展程序
默认情况下,Gemini CLI 是一种通用工具,不具备与集群交互的特定知识。您必须安装 GKE MCP 扩展程序。此扩展程序充当插件,用于定义一组特定的工具和函数(例如“列出集群”或“获取 pod 日志”),以便模型在需要执行任务时调用。
👉💻 运行以下命令以安装 GKE 扩展程序并重新打开 Gemini CLI:
gemini extensions install https://github.com/GoogleCloudPlatform/gke-mcp.git
gemini
您可以重新进入 Gemini CLI 并输入以下内容,验证该功能是否已正确启用:
/extensions
4. 预配基础架构
传统的基础设施配置通常需要查阅复杂的文档或编写数百行配置代码。使用代理后,您可以专注于描述自己的需求,让 AI 将其转换为正确的 API 调用。本部分演示了如何在规划阶段和实际创建 GKE 环境时使用代理。
技术规划和比较
在创建集群之前,您需要选择适合您需求的架构。GKE 提供两种主要模式:标准模式,您可完全控制底层节点;Autopilot 模式,Google 会管理节点,而您只需根据 Pod 请求的资源付费。让我们尝试一个简单的查询,了解两者之间的区别,并集思广益,确定在特定使用情形下应使用哪一个。
- 👉💬 提示:
I need to run a standard 3-tier web application. Compare GKE Standard and GKE Autopilot. Focus on the operational effort for a small team and the cost structure for small workloads.
不妨尝试询问其他基础设施创意。如果您要部署 AI 推理工作负载,需要极高的规模,或者有复杂的网络限制,该怎么办?尝试使用其他提示。
执行集群创建
查看比较结果并做出选择后,您可以指示代理构建集群。代理会分析您的请求,并从 GKE MCP 服务器调用 create_cluster 工具,以根据这些要求部署可用于生产用途的环境。
- 👉💬 提示:
Create a GKE Standard zonal cluster named 'gke-lab' in us-central1-a with 1 node with 4 CPUs. The cluster should have Workload Identity enabled.
注意:GKE 集群预配涉及设置控制平面、虚拟专用网络和初始节点配置,通常需要 8-10 分钟。请勿关闭 Gemini CLI 会话。
您可以询问集群状态,这会再次利用 GKE MCP 服务器返回最新信息。
- 👉💬 提示:
Is the new GKE cluster created and ready to use, yet?
5. 部署和验证
使用 AI 智能体进行平台工程设计的一大优势在于,它能够对您的配置执行“起飞前”检查和审核。您可以使用代理来验证 YAML 在到达集群之前是否在技术上合理且符合组织的安全政策,而无需部署清单并等待其失败。
生成清单
让代理创建部署清单。由于该代理了解 Kubernetes API 版本控制和架构,因此它会生成格式正确的 YAML,其中包含成功部署所需的所有字段。
- 👉💬 提示:
Generate a Kubernetes YAML manifest for an Nginx web server. I need 3 replicas. Set a memory limit of 256Mi and a CPU limit of 500m. Also, include a Service of type LoadBalancer to make it accessible via the internet. Save the manifest as web-server.yaml
技术验证和安全审核
手动创建 YAML 通常会导致配置以高于必要的权限运行,或者缺少基本的可靠性功能。您可以使用该代理来审核其刚刚创建的清单,以确保该清单符合最新的安全性和恢复能力标准。
- 👉💬 提示:
Review the Nginx manifest you just created. Does it include resource requests (not just limits)? Does it specify a non-root user for the container? Add a Pod Disruption Budget to ensure high availability during cluster maintenance. Make any necessary modifications to the file, and tell me what changes were made.
部署执行
完成上一部分中的集群配置后,请告知 Gemini CLI 将配置应用到新集群。代理将使用其工具与 Kubernetes API 服务器通信,并创建所请求的资源。
- 👉💬 提示:
Deploy the audited Nginx manifest to the 'gke-lab' cluster. Use the kubectl command to do this.
实时状态检查
您无需运行多个 kubectl get pods 或 kubectl describe 命令,只需让代理以自然语言总结部署进度即可。
- 👉💬 提示:
Are the Nginx pods running? Provide the external IP address assigned to the LoadBalancer once it is available.
遇到困难?
如果 Nginx 服务似乎未成功部署,请尝试使用 Gemini CLI 排查问题。它能为您提供帮助!
- 👉💬 提示:
The Nginx deployment doesn't start up as expected. Can you help troubleshoot?
6. 维护和问题排查
AI 驱动的平台最宝贵的方面之一是其“第二天”运营能力。当系统出现故障时,我们往往需要浏览数千行日志,才能找到重要的那条错误信息。将 Gemini CLI 与 MCP 搭配使用,您可以让代理汇总日志、事件和状态消息,从而为您提供高级别诊断和具体的问题解决途径。
手动故障注入
为了测试代理的诊断能力,我们将有意创建故障状态。在另一个终端标签页中,运行此命令以使用不存在的容器映像更新部署。这模拟了一个常见的人为错误:容器代码中的拼写错误。
👉💻 在 Gemini CLI 之外运行以下命令:
kubectl set image deployment/nginx nginx=nginx:invalid-version-xyz123
注意:您的部署可能不完全称为“nginx”。您可以通过运行 来验证这一点
kubectl get deployments
Kubernetes 将尝试拉取此映像,但由于找不到该标记而失败,并且 pod 将进入 ImagePullBackOff 状态。
使用 Gemini CLI 进行分析
返回到 Gemini CLI 会话。您可以让代理查找并说明错误,而无需手动在 Cloud Logging 控制台中搜索。
- 👉💬 提示:
The Nginx deployment on my 'gke-lab' cluster has stopped working. Use your tools to inspect the cluster state, check the recent events, and explain exactly why the pods are failing to start.
具体过程:Gemini CLI 会发现部署不正常。然后,它将使用可用的工具来检查失败的 pod。代理会识别出拉取错误,说明标记无效,并建议您恢复到已知良好的映像。
维护和风险评估
平台维护包括及时了解升级和弃用情况。您可以要求智能体充当 SRE,并评估集群的健康状况和使用寿命。
- 👉💬 提示:
Is my cluster 'gke-lab' running the latest version of GKE? Check for available upgrades and let me know if any of my current resources use deprecated APIs that would break during an upgrade.
这可能会导致 Gemini 调用 GKE MCP 服务器工具,例如集群状态和建议工具。
7. 总结
本实验展示了一种与云基础架构互动的新方式。通过 Gemini CLI 和 MCP 将 AI 智能体直接集成到终端工作流中,您已从手动编写命令转变为意图指导者。这种方法提供了一个智能界面,可处理 Kubernetes 管理中重复且容易出错的细节,从而让平台团队能够充分发挥其专业知识,同时让工程师专注于高级架构和问题解决。
实验总结
- 连接性:您已使用 Model Context Protocol 成功将 Gemini CLI 连接到 GKE API,从而使 AI 模型能够直接了解您的项目状态。
- 基础设施:您使用自然语言设计和预配 GKE 集群,无需记住复杂的 CLI 标志。
- 开发:您生成了 Kubernetes 资源,并对其进行了安全审核和部署,而无需手动编辑 YAML,从而确保从一开始就遵循最佳实践。
- 运营:您使用 AI 对损坏的部署执行了根本原因分析,通过让 AI 总结日志和事件,显著缩短了平均恢复时间。
清理
为避免系统因本实验中创建的资源向您的 Google Cloud 账号持续收取费用,您可以指示代理删除集群。
注意:如果您计划将 GKE 集群重新用于其他实验,请跳过此步骤。
- 👉💬 提示:
Delete the 'gke-lab' cluster and any associated resources.
后续步骤
建议进一步阅读以下内容:
- Gemini CLI 文档:Gemini CLI 的官方文档。
- GKE 文档:所有 GKE 文档的着陆页。
- Google Cloud 上的平台工程:有关如何在 Google Cloud 上开展平台工程的指南。
- GKE 上的 AI 和机器学习:有关在 GKE 上运行 AI/机器学习工作负载的文档。
- Google Cloud 架构中心:有关在 Google Cloud 上构建工作负载的指导信息和最佳实践。