GCP 云平台实战与面试指南:从资源层级、IAM 与标签到 Compute Engine 与 Anthos 体系详解(devops-exercises 项目)
发布时间:2026/10/2 12:56:31来源:尧图网络
文档教程DevOps运维【免费下载链接】devops-exercisesLinux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions项目地址https://gitcode.com/GitHub_Trending/de/devops-exercises点击查看免费下载本文基于开源仓库 devops-exercises 中的 GCP 主题文档 整理而成。该主题以 DevOps 面试问答与动手练习为主线系统覆盖 Google Cloud Platform 的核心概念区域与可用区、资源层级、IAM 角色、日常运维命令gcloud、gsutil、虚拟网络与无服务器服务以及 GKE 与 Anthos 全栈体系。读完本文你将掌握 GCP 面试高频考点的标准回答并能借助仓库提供的 Console、gcloud 与 Terraform 三种解法独立完成建项目、授角色、建实例等真实运维操作。一、主题文档定位面试问答 动手练习双线结构在 devops-exercises 仓库中topics/gcp/README.md 是 GCP 子主题的入口文档采用两条主线组织内容Exercises动手练习以任务表格形式给出目标与答案链接强调能动手做而非能背概念Questions面试问答以details折叠块形式收录 48 个高频面试题覆盖基础设施、资源层级、IAM、标签、计算、网络、GKE 与 Anthos。全部练习均可通过 Console 控制台、gcloud命令行与 Terraform 三种方式完成同一任务给出多路径解法适合不同习惯的读者对照学习。二、动手练习账户设置与 Compute Engine2.1 创建项目Account Setup目标创建一个名称全局唯一的项目。练习原文见 exercises/create_project/exercise.md完整解法见 solution.md。Console 控制台操作步骤在顶部导航栏点击 New Project若已有项目则先点击项目名再点击 New Project或在搜索栏输入 Create Project输入一个全局唯一的项目名称可选选择所属组织Organization可选将项目放入特定文件夹Folder点击 Create 完成创建。Terraform 实现仓库中的 main.tf 演示了同时创建项目与文件夹的声明式写法resource google_project gcp_project { name Some Project project_id some-unique-project-id folder_id google_folder.some_folder.name } resource google_folder some_folder { display_name Department 1 parent organizations/some-organization }其中project_id是资源层级中真正用于标识项目的全局唯一 IDname仅是展示名folder_id将项目挂到some_folder下parent指向组织 IDorganizations/some-organization。配套的 versions.tf 声明了 Terraform 版本约束1.3.0与 Google Provider 版本范围 4.10.0, 5.0直接复制即可获得可复现的环境锁定。2.2 给成员分配角色IAM目标为组织内某成员分配 Compute Storage Admin、Compute Network Admin、Compute Security Admin 三个角色并验证分配结果。练习见 exercises/assign_roles/exercise.md解法见 solution.md。Console 操作步骤进入 IAM Admin点击 IAM再点击 Add 按钮选择要授予角色的成员账号在 Select role 中搜索目标角色并点击 Save验证该成员应能进入 Compute Engine API 并看到相关资源。Terraform 实现assign_roles/main.tf 将三个角色放入locals块并用for_each循环批量绑定避免重复代码locals { roles [ roles/compute.storageAdmin, roles/compute.networkAdmin, roles/compute.securityAdmin ] } resource google_service_account some_member { account_id ${substr(var.env_id, 0, min(length(var.env_id), 10))}-some-member display_name ${var.env_id} some-member } resource google_project_iam_member storageAdminMaster { for_each toset(concat(local.roles)) project ${var.project_id} role each.key member serviceAccount:${google_service_account.some_member.email} }这里体现了 GCP 角色的两个重要事实角色是一组权限的封装如 Owner 角色内含 3000 权限成员通过member字段绑定服务账号以serviceAccount:前缀标识。需要传入的变量project_id、env_id定义在 vars.tf 中版本约束见 versions.tf。substrmin的写法保证了account_id不超过 GCP 对账号 ID 的长度限制是值得在生产配置中复用的细节。2.3 创建并管理虚拟机实例Compute Engine目标创建名为instance-1、机型e2-micro、带appweb与envdev两个标签的实例随后用 gcloud 将app更新为db、删除env标签。练习见 exercises/instance_101/exercise.md完整解法见 solution.md。Console 步骤进入 Compute Engine - VM instances点击 Create Instance填入名称instance-1、点击 Add label 添加app: web与env: dev、选择机型e2-micro点击 Create选中实例并点击 show info panel在 labels 标签页将app改为db、移除env。gcloud 命令Shellgcloud config set project PROJECT_ID gcloud config set compute/region REGION NAME gcloud config set compute/zone ZONE NAME gcloud compute instances create instance-1 --labels appweb,envdev --machine-typee2-micro gcloud compute instances update instance-1 --update-labels appdb gcloud compute instances update instance-1 --remove-labels env三条命令分别对应创建 打标签、更新标签值与删除标签与文档 Labels and Tags 章节 的 gcloud 速查命令完全一致。先用gcloud config set固定 project/region/zone可避免每条命令重复传参。Terraform 实现instance_101/main.tf 演示了自定义模式 VPC 子网 实例的一体化编排与文档Other章节的 VPC 知识互相印证resource google_compute_network vpc_network { name my-custom-mode-network auto_create_subnetworks false mtu 1460 } resource google_compute_subnetwork default { name my-custom-subnet ip_cidr_range 10.0.1.0/24 region us-west1 network google_compute_network.vpc_network.id } resource google_compute_instance default { name instance-1 machine_type e2-micro zone us-west1-a labels { app db } }auto_create_subnetworks false对应文档所说的Custom mode VPC自定义模式子网由用户完全掌控GCP 不会自动创建而若设为 trueAuto mode每个区域会各自动生成一个子网。实例标签app db在代码中直接声明为最终状态体现了 Terraform 声明式管理标签的优势。三、全局基础设施Global Infrastructure3.1 区域Region与可用区ZoneGCP 的区域是分布在世界各地不同地理位置的数据中心集群每个区域内又有多个相互隔离的位置称为可用区Zone。每个 Zone 是一个或多个具备冗余网络、连接与电力供应的数据中心。多 Zone 设计保证了当某个 Zone 故障时系统仍可用——这是理解 GCP 高可用架构的基础。3.2 区域隔离与区域选择判断题每个 GCP 区域被设计为与其他区域完全隔离——正确。区域之间相互独立一个区域的故障不会级联到其他区域。选择区域时的考量因素服务可用性并非所有服务及其全部特性在所有区域都可用降低延迟在靠近客户的位置部署应用合规要求部分国家对数据驻留有严格规定数据必须留在本国或本区域边界内此时只能使用特定区域定价差异同一服务在不同区域的定价可能不一致。判断题所有 GCP 服务在所有区域/可用区都可用——错误。各区域支持的产品清单需以官方 locations 页面为准原文以链接方式给出此处不赘述外部地址。gcloud 速查列出全部区域用gcloud compute regions list。四、资源层级Resource HierarchyGCP 的资源层级自上而下为Organization组织 └── Folder文件夹 └── Project项目 └── Resources资源Organization对应公司/组织实体Folder通常对应部门、团队、产品线等Project可以是不同项目也可以是同一项目的不同环境dev、staging、productionResources实际的 GCP 服务Compute、App Engine、Storage 等。三个高频判断题一个项目中可以有一个或多个组织——错误。恰恰相反先有组织组织下可挂多个文件夹文件夹下可挂多个项目。资源必须关联至少一个项目——正确。不存在不挂项目的裸资源。项目名称必须全局唯一——正确。实践中更严格的是project_id全局唯一这在 2.1 节 Terraform 配置中已体现。五、IAM 与角色角色与权限的关系角色Role是一组权限Permission的封装。例如 owner 角色拥有 3000 条针对 GCP 不同组件与服务的权限。继承规则判断题宽松的父级策略总是覆盖严格的子级策略——正确。这是 IAM 继承模型的核心组织/文件夹/项目层层下放权限父级授予的权限不会被子级更严格的策略收回。理解这一点对设计最小权限方案至关重要——需要在更高层级收紧策略或在资源层显式 deny而非寄希望于子级补丁。六、标签Labels与网络标签Network Tags6.1 Labels 是什么可以把 GCP 的标签理解为贴在各种资源上的便利贴sticky notes它让资源更容易被检索例如给相关资源统一贴上web-app标签即可通过标签搜索到所有与 web-app 相关的资源。常见标签使用场景示例Location成本中心Project或环境、文件夹等Service type服务类型Service owner服务负责人Application type应用类型Application owner应用负责人6.2 网络标签Network Tags与 Labels 的区别如名称所示网络标签只能应用于网络资源关键区别Labels 不影响资源本身的行为而网络标签会实际影响资源——例如决定防火墙规则与网络路由是否生效。Other章节进一步补充网络标签通过 target tags 与 source tags 让防火墙规则作用于指定实例或实例组。6.3 gcloud 标签操作速查对名为instance-1的实例# 列出实例的标签 gcloud compute instances describe instance-1 --format yaml(labels) # 更新标签为 appdb gcloud compute instances update instance-1 --update-labels appdb # 删除标签 env gcloud compute instances update instance-1 --remove-labels env注意第一条命令通过--format yaml(labels)只输出 labels 字段是describe输出的精确裁剪技巧。七、Compute Enginegcloud 创建实例gcloud compute instances create instance-1 \ --labels appweb,envdev \ --machine-typee2-micro要点--machine-typee2-micro指定通用型经济机型--labels appweb,envdev以逗号分隔键值对一次打上多个标签。该命令与 2.3 节练习的命令完全对应是面试中用一行命令创建带标签实例的标准答案。八、其他高频考点网络、Serverless 与数据8.1 GCP 网络VPCVPCVirtual Private Cloud是物理网络的虚拟版运行在 Google 内部网络上是 GCP 中的全局资源子网Subnetwork/Subnet是区域级资源只能在特定区域内创建VPC 有两种创建模式Auto mode VPC创建 VPC 时 GCP 自动在每个区域生成一个子网Custom mode VPC不自动创建任何子网由用户完全掌控子网创建对应 instance_101/main.tf 中auto_create_subnetworks false的写法。8.2 Cloud FunctionsCloud Functions 是用于构建和连接云服务的无服务器serverless执行环境。开发者编写简单、单一用途的函数并将其挂接到云基础设施与服务发出的事件上当被监控的事件触发时函数即被调用。8.3 Cloud DatastoreCloud Datastore 是 Google 云上的无模式schemalessNoSQL 数据存储。应用可用 SQL 风格查询对数据进行过滤与排序数据会跨多个数据中心复制从而提供高水平的读写可用性。8.4 VPC Flow Logs流日志VPC Flow Logs 记录 VM 实例包括用作 GKE 节点的实例收发网络流量的采样可用于网络监控、取证、实时安全分析与成本优化。在控制台启用 Flow Logs 的步骤打开 VPC Network点击子网名称点击 EDIT 按钮将 Flow Logs 设为 On点击 Save。8.5 列出存储桶Buckets两种方式gsutil ls gcloud alpha storage ls前者是经典对象存储 CLI后者是新一代gcloud storage命令当前仍处于 alpha 阶段。8.6 其他零散考点启动时执行代码的元数据键startup-script原文档中笔误写作startap-script正确键名以 GCP 官方元数据文档为准。gcloud deployment-manager deployments create的作用创建新的 DeploymentDeployment Manager 是 GCP 的声明式基础设施编排服务。Cloud Code一组帮助开发者在 GCP 上编写、运行、调试基于 Kubernetes 的应用的工具集内置对开发与生产 K8s 环境中快速迭代、调试与运行的内建支持。九、Google Kubernetes EngineGKEGKE 是 GCP 上的托管 Kubernetes 服务用于借助 Google 基础设施部署、管理并扩缩容器化应用。它是 Kubernetes 生态在 GCP 的官方入口也是下一节 Anthos 的核心计算环境。十、Anthos 体系详解10.1 什么是 AnthosAnthos 是一个面向企业等大型组织的托管应用平台帮助遗留应用在混合云或多云世界中实现快速现代化并保持一致性。理解它的四个关键词Managed托管客户无需操心底层软件集成只需启用 APIApplication platform应用平台由 K8s、Knative、Istio、Tekton 等开源工具组成Enterprises企业通常指需求复杂的组织Consistency一致性相同的策略以声明式方式在任何地方安全运行——本地、GCP 或其他云AWS 或 Azure。小知识fun factAnthos 在希腊语中是花的意思——花长在地上earth却需要来自云clouds的雨水才能盛开。10.2 Anthos 的技术组件构成能力域组件基础设施管理Google Kubernetes EngineGKE集群管理GKE、Ingress for Anthos服务管理Anthos Service Mesh策略执行Anthos Config Management、Anthos Enterprise Data Protection、Policy Controller应用部署Cloud Build、GitLab 等 CI/CD 工具应用开发Cloud Code10.3 控制平面与节点Anthos 管理 GKE 工作负载部署的主要计算环境是 GKE。在 GCP 上Kubernetes API Server 是唯一暴露给客户的控制平面组件而节点实例由 Compute Engine 在项目中管理——这正是托管的核心含义。10.4 负载均衡选项Network Load BalancingL4与HTTP(S) Load BalancingL7均为托管服务无需额外配置Ingress for Anthos可部署跨多个 GKE 集群为应用提供服务的负载均衡器。10.5 部署形态与安全性Anthos on AWS已 GA可部署于 AWS企业级安全能力控制平面安全GCP 开箱即用地管理与维护 K8s 控制平面用户可用 Master Authorized Networks 与私有集群保护 API Server即通过为主节点分配私有 IP 禁用公网访问节点安全默认工作负载运行在采用 Google Container-Optimized OS 的 Compute Engine 实例上该 OS 实现了锁定防火墙、禁用 root 的受限账号与只读文件系统多租户场景还可启用 GKE Sandbox 获得更强隔离网络安全GKE 借助软件定义网络实现 Pod 间简单通信Network Policy 可在命名空间内锁定入站/出站连接对需要外部访问的服务可通过白名单 CIDR 范围过滤负载均衡入站流量工作负载安全工作负载以受限权限运行所有 Pod 默认应用 Docker AppArmor 安全策略Workload Identity for Anthos GKE 将开源 K8s Service Account 与 GCP Service Account 权限对齐审计日志管理员可对部署环境的事件进行保留、查询、处理与告警。10.6 本地on-prem场景的互联与隔离本地 GKE 集群工作负载安全连接 Google Cloud 服务的两条路径Cloud VPN安全网络连接与Cloud KMS密钥管理Island Mode孤岛模式配置集群内 Pod 可直接互相通信但无法从集群外部访问形成网络内部不与外部网络相连的孤岛。10.7 Anthos Config Management配置管理它是 Anthos 技术栈的核心组件为平台/服务/安全运维人员提供跨本地与云环境的统一多集群管理。它遵循 K8s 最佳实践倾向声明式而非命令式操作持续监控集群状态并应用 Git 中定义的期望状态。三大组件Importer从中央 Git 仓库读取将存储的配置数据同步为 K8s 对象的组件监控期望配置与实际集群配置之间漂移、并在需要时进行调和的组件。它的价值在于遵循现代软件工程实践使集群配置、管理与策略变更可审计、可回滚、可版本化从而强化 IT 治理并统一组织资源管理。10.8 Anthos Service Mesh服务网格它是监控与管理 Anthos 上各类形态云、混合、多云已部署服务的工具套件基于开源服务网格平台Istio的 API 与核心组件。两大组成数据平面Data plane一组分布式代理中介各服务间所有入站/出站流量由集中式控制平面与开放 API 配置控制平面Control plane完全托管的 GKE 集群外部服务简化运维负担并保障最高可用性。托管控制平面的组成Traffic DirectorGCP 全托管服务网格流量控制平面将 Istio API 对象翻译为分布式代理的配置信息并引导服务网格入口/出口流量Managed CA集中式证书颁发机构为各分布式代理提供 SSL 证书、认证信息与密钥分发Operations tooling原 Stackdriver托管遥测接入点负责代理产生的监控、链路追踪与日志数据的摄取支撑可观测性仪表盘助力 SRE 实践监控 SLI、建立 SLO。收益统一可观测性数据平面将服务间通信回报给控制平面生成服务依赖图代理的流量检查注入请求头以支持分布式追踪并采集服务日志与延迟、错误、可用性等服务级指标运维敏捷性提供网格间南北向与网格内东西向流量的细粒度控制策略驱动的安全服务通信默认安全可在异构协议与运行时上一致执行策略。流量控制的典型用例跨服务版本的流量拆分金丝雀或 A/B 测试熔断Circuit breaking防止级联故障故障注入Fault injection帮助构建有韧性、可容错的部署基于 HTTP header 在服务或版本间进行流量导向。10.9 Cloud Run for Anthos它是 Anthos 技术栈的一部分为 Anthos 带来无服务器容器体验在 K8s 集群之上提供高层平台能力基于开源 K8s 算子Knative构建提供无服务器应用服务与事件能力。简化运维的表现K8s 部署迁移容易没有 Cloud Run 时平台工程师必须配置 Deployment、Service 与 HorizontalPodAutoscalerHPA对接负载均衡与弹性伸缩应用已在服务流量时很难高效变更配置或回滚。使用 Cloud Run 后这一切都被托管Knative service 清单即描述了要弹性伸缩与负载均衡的应用弹性伸缩流量突增可能导致 K8s 容器过载崩溃Cloud Run 自动执行高效扩缩以支撑高流量网络内建负载均衡能力与多版本间流量拆分策略发布与上线支持 Knative API 的 revision 概念——描述应用新版本或不同配置并可通过流量拆分实现金丝雀发布监控观测并记录延迟、错误率、每秒请求数等指标。开箱即用的三大高级扩缩原语K8s 原生不具备基于请求的快速扩缩默认扩缩器监控请求指标可平滑应对尖峰流量并发控制限制每个容器最大在途请求数防止容器过载崩溃流量尖峰时自动增加容器并缓冲请求缩容到零Scale to zero应用长期无流量时缩容至零以减小资源占用也可关闭该特性以避免冷启动。适用场景由于不支持有状态应用与会话保持sticky sessions适合运行无状态应用例如机器学习模型预测如 TensorFlow Serving 容器API 网关、API 中间件、Web 前端与微服务事件处理器、ETL。十一、结语如何用这份资料备考与实操devops-exercises 的 GCP 主题是一份面试 实战双驱动的资料面试部分按 Global Infrastructure、Resource Hierarchy、IAM and Roles、Labels and Tags、Compute Engine、GKE、Anthos 逐层递进适合按章节自测实战部分则建议按以下路径动手用 创建项目练习 与 解法 完成项目初始化Console 或 Terraform 二选一用 分配角色练习 与 解法 实践 IAM 最小授权用 创建实例练习 与 解法 演练 gcloud 三连命令create / update-labels / remove-labels并对照 Terraform 配置 理解声明式标签管理。面试高频题如 owner 角色 3000 权限、宽松父策略覆盖严格子策略、Anthos 三组件与托管控制平面构成建议结合原文折叠块反复自测做到既能口头解释概念也能现场写出对应 gcloud 命令即可覆盖大部分 GCP 方向 DevOps 岗位的考察点。赞分享文档教程DevOps运维【免费下载链接】devops-exercisesLinux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions项目地址https://gitcode.com/GitHub_Trending/de/devops-exercises点击查看免费下载相关推荐devops-exercises 实战用 gcloud CLI 与 Terraform 在 GCP Compute Engine 创建带标签的 e2-micro 虚拟机实例devops exercises 实战用 gcloud CLI 与 Terraform 在 GCP Compute Engine 创建带标签的 e2 micr文档教程DevOps运维GCP IAM 角色分配实战用 Console 与 Terraform 为成员授予 Compute Admin 系列角色devops-exercises 项目演练GCP IAM 角色分配实战用 Console 与 Terraform 为成员授予 Compute Admin 系列角色devops exercises 项文档教程DevOps运维devops-exercises 仓库之 Grafana 观测平台实战问答与面试指南devops exercises 仓库之 Grafana 观测平台实战问答与面试指南 本篇技术指南以 devops exercises 开源仓库中 topics文档教程DevOps运维创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网