google cloud
文章平均质量分 88
nvd11
大龄程序员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
GCP 4层 外部网络负载均衡器深度解析
文章摘要: 本文探讨了在GCP云原生架构中,如何通过L4外部网络负载均衡器(NLB)实现无公网IP虚拟机的SSH访问,并分析了L4与L7负载均衡器的关键差异。L4 NLB适用于TCP/UDP流量(如SSH),而L7 ALB仅支持HTTP(S)协议。通过Terraform代码示例,详细拆解了GCP L4 NLB的四层组件(健康检查、后端服务、转发规则、静态IP)及其依赖关系,强调转发规则(Forwarding Rule)即为LB实体本身。最后提供了无公网IP虚拟机的配置方案及非托管实例组(UnMIG)的实现代原创 2026-08-01 20:18:24 · 392 阅读 · 0 评论 -
Pub/Sub 的消费顺序和高并发
想要高吞吐和高可用,就必须接受物理传输层的乱序,把排序的苦差事交给应用层(比如 Beam 的 Window 和 Watermark)去死磕;想要绝对的有序,就只能老老实实回到单机单线程排队的龟速时代。不存在既要又要还要的魔法。原创 2026-07-26 05:35:20 · 172 阅读 · 0 评论 -
深入云原生数据治理:GCP Dataplex 与数据血缘(Data Lineage)的底层设计与实战博弈
Lineage” 一词在英语中代表血统、世系、家谱。顾名思义,“数据的家谱(数据世系/数据血缘)”!它最底层、最纯粹的含义,就像主人总结的一样,就是用来回答关于数据的“三大终极哲学问题”它从哪里来(Source):数据的物理源头是谁?它最初位于哪个系统、哪张表、甚至哪个具体的字段(Column)?它经历了什么转换(Process):在流转过程中,经历了哪些过滤(Filter)、关联(Join)、清洗(Clean)或计算聚合(Aggregation)?它流向了哪里(Destination)原创 2026-06-26 04:44:45 · 345 阅读 · 0 评论 -
Terraform 避坑:模块下线时,如何不破坏已有的 Instance Template?
Terraform 是声明式的。当我们要下线某个组合模块(Module)时,如果想保留其中的个别“子资源”,切忌直接一刀切count = 0。想放手:用state rm解耦,让 TF 遗忘,线上物理保留。想续管:在根级写好配置,用state mv过户,平滑承接。原创 2026-06-13 23:58:58 · 191 阅读 · 0 评论 -
深度解析:Apache Beam YAML 部署至 GCP Dataflow 的架构与最佳实践
Beam YAML 是数据分析师的神器,但其背后支撑起这一切的,是数据平台架构师通过 Flex Template 精心构建的、包含了无数复杂依赖的强大基础镜像体系。理解了这一层“套娃”关系,您才能在云端的大数据洪流中游刃有余。图 2:gcloud dataflow yaml run 快捷部署的底层交互流程。该架构展示了 GCP 如何在后台隐藏了繁琐的镜像构建与模板注册环节,通过调用预置的官方 Flex Template 与大底座镜像,实现了业务代码(YAML)的极速执行。原创 2026-06-03 03:01:37 · 676 阅读 · 0 评论 -
基于 GCP Eventarc 与 Terraform 实现 Spot 实例全自动容灾修复
摘要:GCP Spot实例自动容灾方案 本文介绍了一种基于GCP Eventarc与Terraform的Spot实例全自动容灾修复方案。针对GCP抢占式实例(Spot)随时可能被回收的问题,设计了事件驱动架构: 架构核心:通过Eventarc捕获Compute Engine的实例回收事件(v1.compute.instances.preempted),触发Cloud Functions自动重启实例 技术实现: 使用Python编写云函数处理事件,校验白名单后调用Compute API重启实例 通过Terra原创 2026-04-25 01:36:38 · 428 阅读 · 0 评论 -
GCP 无服务器事件驱动实战:使用 Terraform 构建 Pub/Sub 推送至 Cloud Run 的微型调度中心
本文介绍了如何利用GCP服务构建事件驱动的数据湖架构,解决传统流式处理方案中的资源浪费和DAG爆炸问题。通过将架构重构为"微型事件调度+轻量级批处理"模式,采用Cloud Run作为接收端和调度器,配合Pub/Sub Push Subscription实现自动缩容至零的机制。文章详细演示了使用Python FastAPI开发微服务接收端,以及通过Terraform编排基础设施,包括创建专用Service Account、配置OIDC Token鉴权等安全措施。测试验证表明,该架构能有效隔原创 2026-03-27 00:22:31 · 455 阅读 · 0 评论 -
Cloud Run IAP 认证与跨域通信解决方案全指南
这个模式在 GKE 是没问题的,因为前后端虽然部署在不同的 POD,但是可以共同 under 一个 GKE Gateway 之下。但是前端是无法直接通过 IAP 获取用户信息的,必须通过调用另一个同域的同样的 enable IAP 的 API (通常是同域的后端 API)而前后端都部署在 Cloud Run 上会不同了,两个 Cloud Run svc 天然有两个不同的域名。当前端开启 IAP 后,用户打开前端页面就会被重导向到 Google 账号登陆页面,当用户登陆后就会进入前端页面。原创 2026-01-10 00:49:27 · 893 阅读 · 0 评论 -
通过 Gmail API 发送邮件的完整指南
本文档详细介绍了如何通过编程方式调用 Google Gmail API 来发送电子邮件。整个过程不依赖于 SMTP,而是使用现代的 OAuth 2.0 授权流程和 REST API 调用,这使得它可以在任何网络环境(包括限制了 SMTP 端口的云服务器)下工作。原创 2026-01-04 23:04:03 · 1315 阅读 · 0 评论 -
GCP 路由奇案:一次 FastMCP 部署的深度复盘
这不只是一篇技术博客,这是一篇战报。它讲述了一个看似简单的部署任务,如何演变成一场长达数小时、穿越 GCP 负载均衡、Envoy、FastAPI 和 MCP 协议层层迷雾的调试之旅。如果你也曾经历过“本地猛如虎,上线死如狗”的服务,那么,泡杯咖啡,这个故事就是为你准备的。原创 2026-01-04 21:00:37 · 695 阅读 · 0 评论 -
创建自己的云开发环境-GCP Cloud Workstations 配置指南
本文档详细介绍了如何从零开始在 Google Cloud Platform (GCP) 上配置 Cloud Workstations 开发环境。原创 2025-12-27 23:33:01 · 781 阅读 · 0 评论 -
在 Cloud SQL for PostgreSQL 上启用 pgvector
摘要:本文介绍在Google Cloud SQL (PostgreSQL 13+)实例上启用pgvector扩展的方法。首先通过Terraform配置启用cloudsql.enable_vector_assist标志以优化向量搜索性能,此操作会导致实例重启。然后通过SQL命令CREATE EXTENSION vector安装扩展,并可通过\dx验证安装。文章还解答了常见问题,强调Google的性能优化虽非必需但强烈推荐,且无需额外下载安装包。支持PostgreSQL 11+,但建议使用PG 13及以上版本以原创 2025-12-25 23:02:43 · 464 阅读 · 0 评论 -
Tool Calling 与 Function Call 深度指南
AI Agent通过Tool Calling赋予大语言模型(LLM)连接外部世界的能力。本文解析了两种实现方式:早期不稳定的Prompt Engineering和现代标准化的Function Calling。后者通过JSON Schema定义工具,LLM生成结构化指令,由外部程序执行具体操作。文章详细展示了工作流程、数据结构,并提供了LangChain实现的代码示例,说明如何让LLM识别数学计算需求、调用乘法工具并返回结果。随着技术发展,AI正从单一工具调用向自主规划的多轮Agent交互演进。原创 2025-12-23 02:22:45 · 3085 阅读 · 0 评论 -
GCP 私有连接技术:PSA 与 PSC 的区别解析
Google Cloud中的PSA和PSC提供私有连接但原理不同:PSA像"小区快递驿站",需预留VPC IP段给Google服务,通过VPC Peering实现1对多连接;PSC则像"内线电话",使用独立IP通过Service Attachment连接特定服务,实现IP解耦和1对1连接。PSA适合Google托管服务,PSC兼容第三方服务,两者在IP归属、连接模型和应用场景上有本质区别。原创 2025-12-15 07:56:45 · 714 阅读 · 0 评论 -
Auth0 /userinfo 速率限制问题解决方案
本文档分析了集成Auth0后出现的429 Too Many Requests问题,原因是后端频繁调用Auth0的/userinfo接口(免费套餐限制每分钟10次)。解决方案是在后端引入缓存机制:使用Python的cachetools.TTLCache缓存用户信息1小时,避免重复调用。代码实现通过检查缓存、调用API和存储缓存三个步骤,确保同一token在1小时内只调用一次/userinfo接口,有效解决了速率限制问题。原创 2025-12-15 01:42:22 · 1074 阅读 · 0 评论 -
通俗易懂:什么是 IdP 和 IAP?
比喻:IdP 就是“身份证颁发机构”,比如公安局或车管所。IdP 的唯一职责就是回答“你是谁?”这个问题。它是一个专门用来认证 (Authentication)身份的服务。比喻:IAP 就是那个站在小区门口的“智能门禁保安”。IAP 是一个位于你(用户)和你的应用(小区)之间的代理或防火墙。它不仅要确认“你是谁”,还要根据小区的规定,决定“你能不能进?它负责认证 (Authentication)和授权 (Authorization)。原创 2025-12-13 03:22:38 · 952 阅读 · 0 评论 -
# 指南:从零开始为 GKE 应用启用 Google 账号登录 (IAP)
本文详细介绍了如何为部署在GKE上的Web应用(前端chat-ui和后端chat-api-svc)启用Google账号登录的IAP(Identity-Aware Proxy)保护。主要内容包括:1)架构设计,通过Google负载均衡器拦截请求并强制认证;2)创建OAuth凭证,配置授权重定向URI;3)将凭证存储为Kubernetes Secret;4)为后端API创建专用IAP Service和策略。该方案实现了用户访问前端时自动跳转Google登录,并将认证信息安全传递给后端服务,同时保持内部通信不受影原创 2025-12-13 03:14:39 · 1211 阅读 · 0 评论 -
GKE Gateway 30秒超时问题深度排查全纪录
摘要: GKE Gateway服务在处理长耗时请求时出现30秒超时中断问题,排查发现Kubernetes配置(HTTPRoute和BackendConfig)未生效。测试确认集群内部请求正常,问题出在外部负载均衡器。深入GCP底层资源发现BackendService和URL Map均保持默认30秒超时,手动修改BackendService无效。最终确认GKE控制器存在Bug,未正确应用Kubernetes配置,导致外部请求被强制中断。需进一步解决GKE控制器与GCP资源的同步问题。原创 2025-12-02 00:14:07 · 1002 阅读 · 0 评论 -
GKE Gateway超时问题排查指南
本文记录了在GKE托管Web服务中排查/chat接口超时问题的完整过程。最初发现长文本生成请求被截断,通过curl确认是HTTP/2 INTERNAL_ERROR。排查发现应用层设置300秒超时无异常,但HTTPRoute超时配置无效,GKE Gateway回退到默认短超时。最终采用GCPBackendPolicy方案,为后端服务设置300秒超时成功解决问题。关键教训包括:验证配置实际生效状态、优先参考云厂商特定文档、善用kubectl诊断工具。此次排查不仅解决了技术问题,更深化了对GKE Gateway工原创 2025-11-30 14:35:01 · 1117 阅读 · 0 评论 -
解决 Gemini API 连接卡住问题的方案
本文记录了py-github-agent项目中调用Google Gemini API时程序卡住问题的诊断与解决方法。问题表现为程序在调用API后无响应,经分析发现是gRPC协议与HTTP代理不兼容所致。解决方案是强制客户端使用REST API而非gRPC,通过在ChatGoogleGenerativeAI初始化时添加transport="rest"参数实现。修改后程序恢复正常,验证了REST API对代理的兼容性更好。原创 2025-11-28 23:34:15 · 1199 阅读 · 0 评论 -
GKE Gateway API: 统一入口下的前后端路由策略
本文解释了GKE Gateway API中前端UI和后端API服务路由规则的差异。前端应用(如SPA)通常需要URLRewrite过滤器进行路径剥离(如将/chat/profile重写为/profile),以简化开发并避免修改代码。而后端API服务(如FastAPI)则依靠框架的root_path配置自动处理完整路径(如/chat-api-svc/users/123),无需Gateway重写。这种差异源于前端静态资源无法动态适应路径,而后端框架具备运行时路径感知能力。通过合理选择路由策略,可实现统一域名下不原创 2025-11-28 03:13:17 · 376 阅读 · 0 评论 -
如何为 GCE 上的 Envoy 代理启用 HTTPS (使用 Google Cloud Load Balancer)
本文介绍了在Google Compute Engine(GCE)上为Envoy代理配置HTTPS的最佳实践方案。通过使用Google Cloud全球外部HTTPS负载均衡器托管SSL证书,将SSL终端放在负载均衡器层面,而非Envoy代理本身。这种架构具有简化配置、自动证书管理、增强安全性以及提升性能等优势。文章详细说明了流量路径:用户通过HTTPS访问负载均衡器,负载均衡器解密后通过HTTP将请求转发给运行Envoy的GCE虚拟机,再由Envoy路由到Cloud Run服务。同时解答了关于后端服务作用、多原创 2025-11-21 01:46:01 · 1429 阅读 · 0 评论 -
如何为 GKE Gateway 启用 HTTPS (Google 托管证书)
本文介绍了为域名gateway.jpgcp.cloud和jpgcp.shop启用HTTPS访问的技术方案。采用Google托管证书方案,具有完全免费、自动管理续订、高度可信等优势。实施过程分为两步:首先通过gcloud命令创建全局SSL证书资源;随后修改gateway.yaml配置,使用"TLS终止"模式将加密层前置到网关。这种架构既保障了外部通信安全,又简化了后端应用处理,无需管理证书或处理HTTPS加解密工作。特别说明了"TLS终止"模式的实际含义是将加密终点设在原创 2025-11-18 01:06:08 · 1500 阅读 · 0 评论 -
指南:为何及如何使用Envoy作为跳板机代理Cloud SQL
本文记录了通过配置GCE虚拟机作为Envoy代理,实现外部访问VPC内私有Cloud SQL实例的解决方案。在尝试直接连接和Cloud SQL Auth Proxy失败后,最终采用Envoy跳板机方案:将GCE公网IP的5432端口流量转发至Cloud SQL私有IP。文章详细描述了排查过程,包括VPC防火墙、GKE网络策略等检查,以及各种Proxy方案的失败原因分析。最终通过Envoy的TCP代理配置成功实现连接验证,为类似场景提供了可行参考方案。原创 2025-11-09 20:03:22 · 674 阅读 · 0 评论 -
GKE连接私有Cloud SQL疑难问题排查实录
本文详细记录了GKE Pod无法连接私有Cloud SQL实例的排查过程。通过检查VPC防火墙规则、GKE网络策略、IP伪装和VPC Peering路由传播,最终确定问题根源在于高级网络配置。采用Cloud SQL Auth Proxy作为解决方案,成功实现了安全可靠的数据库连接。经验表明,当直接IP连接出现难以诊断的网络问题时,使用官方认证的代理服务是最佳实践,既能保障安全又节省故障排查时间。原创 2025-11-09 19:57:17 · 1036 阅读 · 0 评论 -
使用Terraform创建私有Cloud SQL实例及连接测试
本文档详细记录了使用Terraform创建一个专用于VPC内部访问的Cloud SQL for PostgreSQL实例的全过程,并演示了如何从GCE和GKE环境中测试其连通性。原创 2025-11-09 19:56:18 · 536 阅读 · 0 评论 -
指南:将 Vite + Lit 单页应用部署到 GKE 的子路径
本文详细介绍了如何利用Vite和Lit构建单页应用(SPA),并通过Docker和Nginx容器化部署到Google Kubernetes Engine(GKE)。重点解决了在GKE Gateway API下将应用部署到子路径(如/chat/)的核心问题: 使用Vite初始化Lit项目并开发基础页面 通过多阶段Docker构建和Nginx配置实现容器化 提出"双管齐下"解决方案:前端通过Vite配置base路径,后端通过Gateway的URLRewrite过滤器剥离前缀 最终实现请求路径原创 2025-11-09 01:48:57 · 899 阅读 · 0 评论 -
指南:如何正确地将GKE服务日志导出到GCP Logging
摘要: 本文介绍如何配置py-api-svc服务在GKE上的日志,确保GCP Cloud Logging正确显示日志级别(如DEBUG、INFO)。默认情况下,GKE将stderr日志标记为ERROR,导致loguru等库的INFO日志被误判。解决方案是使用loguru输出JSON结构化日志到stdout,通过设置serialize=True,使GCP自动解析JSON中的level字段并正确分类日志级别。无需额外代理,仅需调整日志配置即可实现,并通过GCP日志浏览器验证效果。此方法兼顾准确性与简便性。原创 2025-11-08 10:50:26 · 758 阅读 · 0 评论 -
GKE 部署 - 从`kubectl` 到 Helm Chart 的演进
本文档旨在通过 `py-webhook-svc` 项目的实际案例,详细介绍在 Google Kubernetes Engine (GKE) 上进行部署的两种主要方法:传统的 `kubectl` 部署和现代的 Helm Chart 部署。我们将对比这两种方法的优劣,并深入讲解最终完善的 Helm Chart 配置。原创 2025-11-08 02:24:42 · 736 阅读 · 0 评论 -
使用gateway api来实现GKE 的pods 从外部访问
本文摘要: Kubernetes Gateway API 是新一代集群入口流量管理方案,相比传统 Ingress 具有角色分离、多协议支持等优势。文章以 GKE 平台为例,展示了 Gateway API 的实践应用:首先部署两个 Python Web 应用(py-api-svc 和 py-webhook-svc)并配置 ClusterIP,随后在 GKE 启用 Gateway API 功能(需执行特定 gcloud 命令),最后通过 YAML 配置文件定义 Gateway 资源。GKE 平台已内置 Gate原创 2025-10-05 00:12:38 · 929 阅读 · 0 评论 -
用terraform 创建一个GKE private cluster
GKE(Google Kubernetes Engine)是 Google Cloud 提供的容器管理服务,它基于 Kubernetes 构建,可以帮助您轻松部署、管理和扩展容器化的应用程序。您可以把它想象成一个强大的“容器编排大师”,让您的应用在云端高效、稳定地运行。GKE 简化了 Kubernetes 的复杂性,让您专注于应用开发,而无需花费大量精力在底层基础设施的管理上。它提供了自动伸缩、自动修复、滚动更新等功能,确保您的应用始终可用并保持最佳性能。原创 2025-10-03 23:10:14 · 1073 阅读 · 0 评论 -
gcloud cli 使用 impersonate模拟 服务帐号
本文介绍了GCP中的模拟服务帐号(impersonate service account)功能。主要内容包括:1)模拟服务帐号允许用户使用个人帐号登录,但以指定服务帐号的权限执行操作;2)使用场景包括继承服务帐号权限、无需密钥文件访问、统一操作日志记录等;3)配置方法需要为个人帐号添加roles/iam.serviceAccountTokenCreator角色;4)通过gcloud config设置模拟帐号后,所有API调用将以服务帐号身份执行。该功能实现了权限集中管理和操作审计的需求。原创 2025-09-06 23:58:39 · 514 阅读 · 0 评论 -
Sonarqube 和 Sonar-scanner的安装和配置
所谓sonarqube 就是代码质量扫描工具。官网:在个人开发学习中用处不大, 我草, 我的代码质量这么高需要这玩意?但是在公司项目中, 这个可是必须的, 你永远都不知道你的队友写了什么进git 仓库至于SanarScanner 就是1个本地工具, 用于把你的代码push 到SonarQube server 用于分析参考:steps:args:- '-c'- |set -xpwdargs:- '-c'- |set -xwhoamipwdls -l。原创 2024-09-08 02:23:42 · 2722 阅读 · 0 评论 -
K8S ingress 初体验 - ingress-ngnix 的安装与使用
1个ingress controller 可以对应多个ingress 吗?答: 可以的如果1个ingress 的controller 配有多个ingress instance, 里面的配置会冲突吗?如果有相同的path 设置答: 会冲突, 所以要保证多个ingress instance 的配置中 path 互相不重复如果一个 Ingress 控制器对应两个 Ingress 资源,并且这两个 Ingress 的配置中具有相同的路径,那么会发生冲突。原创 2024-07-12 03:16:18 · 1610 阅读 · 0 评论 -
VPC Access Connector 介绍 - 让 Non-VPC product 也可以访问VPC Network内的资源
在GCP 上, VPC product 指的是属于某个制定的vpc subnet, 具有至少1个 该 subnet 的内网ip的产品某些dataflow job (指定了 可选参数subnet )Cloud Composer (基于airflow)而 Non VPC product 通常是1个共用产品和 server less 的平台,例如:5. Pubsub。原创 2024-06-19 02:30:43 · 1341 阅读 · 0 评论 -
摆脱Jenkins - 使用google cloudbuild 部署 java service 到 compute engine VM
在之前 介绍 cloud build 的文章中已经介绍过, 用cloud build 去部署1个 spring boot service 到 cloud run 是很简单的, 因为部署cloud run 无非就是用gcloud 去部署1个 GAR 上的docker image 到cloud run 容器。原创 2024-06-09 05:33:17 · 1209 阅读 · 1 评论 -
创建google cloud storage notification 的权限问题
Google 文档也不是很靠谱, 更新并不是非常及时。原创 2024-06-08 13:31:04 · 798 阅读 · 0 评论 -
Google Cloudbuild yaml file 中 entrypoint 和 args 的写法
id: 显示在 cloud build logs 里的item 名字name: docker 镜像名字 - 下面的命令会在这个镜像的1个容器instance 内执行entrypoint: 执行的命令入口 , 只能有1个对象args: 命名的参数, 它是1个list问题来了, 如何理解深而慢是entrypoint 和 argsentrypoint 就是执行的命令 bin file 名字, args 是参数, 不能混淆中cat 就entrypoint。原创 2024-06-01 21:41:40 · 1234 阅读 · 0 评论 -
初探 Google 云原生的CICD - CloudBuild
Google Cloud Build(谷歌云构建)是谷歌云平台(Google Cloud Platform,GCP)提供的一项服务,可帮助开发人员以一致和自动化的方式构建、测试和部署应用程序或构件。它为构建和部署应用程序提供了一个完全托管、可扩展和灵活的环境。使用Cloud Build,开发人员可以使用配置文件(如YAML或JSON)定义构建流水线,指定构建过程中要执行的步骤和操作。可以根据事件(如代码库提交或更改)自动触发这些流水线,也可以由开发人员手动触发。原创 2024-05-02 03:42:50 · 2521 阅读 · 0 评论 -
使用 proxySQL 来代理 Mysql
我有若干台云主机, 但是只有1个台vm 具有外部ip而在另1台vm上我安装了1个mysql instance, 正常来讲, 我在家里的电脑是无法连接上这个mysql尝试过用nginx 代理, 但是nginx只能代理http协议的, mysql 3306 并不是http协议解决方案两种。原创 2024-04-09 00:05:05 · 2515 阅读 · 0 评论
分享