当前位置: 首页 > news >正文

GCP设置Proxy来连接Cloud SQL

在之前的文章用Google CDC来同步Cloud SQL的数据到Bigquery_gzroy的博客-CSDN博客中,我通过在一个VM上设置反向代理的方式,使得Datastream可以通过私用连接连到Cloud SQL数据库进行数据复制。但是这种方式不太方便,主要是VM的状态我们不太方便去进行监控,而且资源也占用较大。那么我们是否可以在Kubernetes上面起Pod来提供这个反向代理的连接呢?答案是采用GCP的cloud sql auth proxy来做。

首先我们建立一个job的yaml文件,来启动Pod

apiVersion: batch/v1
kind: Job
metadata:name: cloud-sql-proxylabels:app.kubernetes.io/name: cloud-sql-proxynamespace: abc
spec:parallelism: 1template:spec:containers:- command:- /cloud_sql_proxy- -instances=XXXX=tcp:0.0.0.0:5432- -ip_address_types=PRIVATEimage: gcr.io/gce-proxy:1.28.0imagePullPolicy: IfNotPresentname: cloud-sql-proxyresources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: Fileports:- containerPort: 5432name: pg-portprotocol: TCPserviceAccountName: cloud-sql-pgdnsPolicy: ClusterFirstrestartPolicy: OnFailureschedulerName: default-schedulersecurityContext: {}terminationGracePeriodSeconds: 30ttlSecondsAfterFinished: 3600

其中instance参数需要填写我们的cloud sql的connection name, serviceAccountName需要填写我们K8S里面的service account。

然后我们需要绑定K8S service account和GCP service account,因为需要用到GCP的SA账号来去调用cloud sql的资源,这里是用到了GCP kubernetes workload identity的概念。

运行以下命令创建一个GCP的service account

gcloud iam service-accounts create gke-quickstart-service-account \--display-name="GKE Quickstart Service Account"

为这个service account赋予cloud sql权限

gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \--member="serviceAccount:gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com" \--role="roles/cloudsql.client"

把GCP的账号和K8S的账号绑定

gcloud iam service-accounts add-iam-policy-binding \--role="roles/iam.workloadIdentityUser" \--member="serviceAccount:YOUR_PROJECT_ID.svc.id.goog[YOUR_K8S_NAMESPACE/YOUR_KSA_NAME]" \gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com

运行K8S命令来对这个账号做annotation

kubectl annotate serviceaccount \YOUR_KSA_NAME  \iam.gke.io/gcp-service-account=gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com

之后运行kubectl apply -f部署这个Job就会看到有一个sql proxy的pod成功运行了。

然后可以建一个LoadBalancer的Service来暴露这个Pod的地址和端口

apiVersion: v1
kind: Service
metadata:name: cloudsql-servicenamespace: abc
spec:type: LoadBalancerselector:job-name: cloud-sql-proxyports:- protocol: TCPport: 5432targetPort: 5432

最后我们在datastream里面就可以用Loadbalancer的地址来建立连接了。

相关文章:

GCP设置Proxy来连接Cloud SQL

在之前的文章用Google CDC来同步Cloud SQL的数据到Bigquery_gzroy的博客-CSDN博客中,我通过在一个VM上设置反向代理的方式,使得Datastream可以通过私用连接连到Cloud SQL数据库进行数据复制。但是这种方式不太方便,主要是VM的状态我们不太方便…...

Python:为何成为当下最热门的编程语言?

文章目录 🍋引言🍋1. 简单易学🍋2. 多领域应用🍋3. 强大的社区支持🍋4. 丰富的库和框架🍋5. 跨平台兼容🍋6. 开源和免费🍋7. 数据科学和人工智能的崛起🍋8. 自动化和脚本…...

【echarts入门】:vue项目中应用echarts

一.安装echarts 在项目集成终端下载echarts npm install echarts --save 二.全局引入 创建/components/echarts/index.js // 引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口。 import * as echarts from "echarts/core";/** 引入任…...

Seata 源码篇之AT模式启动流程 - 上 - 02

Seata 源码篇之AT模式启动流程 - 02 自动配置两个关键点 初始化初始化TM初始化RM初始化TC 全局事务执行流程TM 发起全局事务GlobalTransactional 注解处理全局事务的开启 TM 和 RM 执行分支事务IntroductionDelegatingIntroductionInterceptorDelegatePerTargetObjectIntroduct…...

FFMPEG视频压缩与Python使用方法

一、简介 FFMPEG 是一个完整的,跨平台的解决方案,记录,转换和流音频和视频。 官网:https://ffmpeg.org/ 二、安装 1、Linux: sudo apt install ffmpeg 2、Mac: brew install ffmpeg 3、Windows: 下载文件&#…...

SpringMVC自定义注解---[详细介绍]

一,对于SpringMVC自定义注解概念 是一种特殊的 Java 注解,它允许开发者在代码中添加自定义的元数据,并且可以在运行时使用反射机制来获取和处理这些信息。在 Spring MVC 中,自定义注解通常用于定义控制器、请求处理方法、参数或者…...

5.4 转换数据

5.4 转换数据 5.4.1 哑变量处理类别型数据5.4.2 离散化连续型数据1、等宽法2、等频法3、聚类分析法 数据集 E:/Input/ptest.csv 5.4.1 哑变量处理类别型数据 数据分析模型中有相当一部分的算法模型都要求输入的特征为数值型,但实际数据中特征的类型不一定只有数值…...

雷池社区WAF:保护您的网站免受黑客攻击 | 开源日报 0918

keras-team/keras Stars: 59.2k License: Apache-2.0 Keras 是一个用 Python 编写的深度学习 API,运行在机器学习平台 TensorFlow 之上。它 简单易用:减少了开发者认知负荷,使其能够更关注问题中真正重要的部分。灵活性强:通过逐…...

链表反转-LeetCode206

**题目:**给你单链表的头结点head,请反转链表,并返回反转后的链表。 示例: 输入:head [1,2,3,4,5] 输出:[5,4,3,2&#x…...

北邮22级信通院数电:Verilog-FPGA(3)实验“跑通第一个例程”modelsim仿真及遇到的问题汇总(持续更新中)

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 注意:本篇文章所有绝对路径的展示都来自…...

4G工业路由器,开启智能工厂,这就是关键所在

​提到工业物联网,首先联想到的就是数据传输。要把海量的工业数据从设备端传到控制中心,无线数传终端就发挥着重要作用。今天就跟着小编来看看它的“联”是怎么建立的吧! 原文:https://www.key-iot.com/iotlist/1838.html 一提到无线数传终端,相信大家首先想到的是…...

计组-机器字长、存储字长、指令字长以及和他们有关的机器位数

🌳🌳🌳前言:本文总结了机器字长、存储字长、指令字长的概念以及和它们相关的机器位数。 目录 字长 机器字长 指令字长 存储字长 寄存器的位数 总结 字长 🌟字长一个字中的二进制位数。 🌟字长由微处…...

解决express服务器接收post请求报错:“req.body==> undefined“

现象如下: 解决办法:在代码中加入body-parser解析 const bodyParser require("body-parser"); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); 参考: How to fix "req.body undefined&q…...

5.zigbee的开发,串口putchar重定向(使用print),单播实验,usb抓包实验

一。实验:单播 实验要求: 实现终端定时向协调器发送给“好好学习”字符串,并且从终端打印出来。 要求: 指定端点为 0x0005 指定簇为 0x0003 1.进入应用层SampleApp.c中,串口的重定向 报错&#xff…...

解决AU报“MME无法使用“问题

今天在Adobe Audition(简称AU)软件,打开麦克风时,弹出如下错误:“加载默认的输入和输出设备失败:MME设备内部错误”,如图(1)所示: 图(1) AU报“MME设备内部错误” 继续点击AU菜单栏上的【编辑】–》首选项–》音频硬件&#xff0c…...

Maven 安装配置

Maven 安装配置 文章目录 Maven 安装配置一、下载 Maven二、解压Maven核心程序三、指定本地仓库四、配置阿里云镜像仓库4.1 将原有的例子配置注释掉4.2 加入新的配置 五、配置 Maven 工程的基础 JDK 版本六、配置环境变量6.1 检查 JAVAHOME 配置是否正确6.2 配置 MAVENHOME6.3 …...

vscode 配置网址

首先我的项目是一个面向医院的系统 我是在三个文件里都配置了网址 第一个文件:vue.config.js const path require(path) const webpack require(webpack) const createThemeColorReplacerPlugin require(./config/plugin.config)function resolve (dir) {retu…...

git 本地工作区和仓库区基本使用

(1)git 本地有三个区 工作区和暂存区和 git管理的仓库. (自行动手实践理解,然后就入门了)(2)本地初次使用git做的事情,需要做如下工作 git config --global user.name "xx" git config --global user.email xxxqq.com git config --globa…...

有效的括号(栈的高频面试题)

一、题目描述 题目连接:有效的括号 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺…...

GIS跟踪监管系统电子围栏

GIS跟踪监管系统电子围栏 (1)电子围栏展示。① 显示:② 隐藏:(2)电子围栏修改。① 新增电子围栏。② 修改电子围栏。工具箱(1)测量。① 测量距离:② 测量面积&#xff1a…...

基于MPC的双馈风机暂态过电压抑制策略研究

基于MPC的双馈风机暂态过电压抑制策略研究 摘要 弱电网条件下,双馈风机(DFIG)在电网故障清除瞬间易发生暂态过电压。传统矢量控制(VC)中,无功电流外环PI控制器存在响应滞后,导致无功功率回撤速度无法匹配系统电压的突变。本文提出一种基于模型预测控制(MPC)的转子侧…...

SQL Server数据库标记为SUSPECT的紧急修复指南:从单用户到多用户模式的完整恢复流程

1. 数据库被标记为SUSPECT的常见原因 数据库突然变成SUSPECT状态,就像电脑突然蓝屏一样让人措手不及。我遇到过最典型的情况是机房突然断电,导致SQL Server没来得及完成所有事务就强制关闭了。这种情况下,数据库引擎为了保护数据完整性&#…...

认知迷雾计划:用废话消耗AI算力

被低效会议吞噬的AI资源在软件测试领域,AI驱动工具正逐步承担自动化测试、缺陷预测、日志分析等高价值任务。然而,一种名为“认知迷雾”的隐形威胁——即低效会议产生的海量冗余信息——正在持续消耗宝贵算力资源。本文从测试工程视角,剖析废…...

突破国际漫游限制:Nrfr免Root工具的终极解决方案

突破国际漫游限制:Nrfr免Root工具的终极解决方案 【免费下载链接】Nrfr 🌍 免 Root 的 SIM 卡国家码修改工具 | 解决国际漫游时的兼容性问题,帮助使用海外 SIM 卡获得更好的本地化体验,解锁运营商限制,突破区域限制 …...

Qwen2-VL-2B-Instruct环境配置详解:Anaconda虚拟环境管理与依赖冲突解决

Qwen2-VL-2B-Instruct环境配置详解:Anaconda虚拟环境管理与依赖冲突解决 每次准备跑一个新的大模型,最头疼的往往不是模型本身,而是环境配置。特别是像Qwen2-VL-2B-Instruct这种多模态模型,它需要PyTorch、Transformers、CUDA&am…...

菊水PBZ40可编程电源RS232C通信协议实战指南

1. 认识菊水PBZ40可编程电源 如果你正在实验室里捣鼓自动化测试系统,大概率会遇到需要精确控制电源输出的场景。菊水PBZ40就是这样一款专业选手,它不仅能提供稳定的直流输出,还能模拟各种交流波形信号。我第一次接触这台设备时,就…...

快速掌握Fast-F1:Python赛车数据分析终极指南

快速掌握Fast-F1:Python赛车数据分析终极指南 【免费下载链接】Fast-F1 FastF1 is a python package for accessing and analyzing Formula 1 results, schedules, timing data and telemetry 项目地址: https://gitcode.com/GitHub_Trending/fa/Fast-F1 想要…...

除了CAN总线,UDS协议还能跑在哪些车上?手把手带你用Wireshark抓包分析

突破CAN总线限制:UDS协议在多种车载网络中的实战解析 当提到UDS(Unified Diagnostic Services)诊断协议时,大多数工程师的第一反应是它与CAN总线的紧密关联。确实,在传统汽车电子架构中,UDS over CAN是最常…...

C# .NET 周刊|2026年3月1期

国内文章.NET 11 预览版1:CoreCLR 在 WebAssembly 上的全面集成与性能突破https://www.cnblogs.com/shanyou/p/19629649.NET 11 Preview 1 正式发布,标志着 CoreCLR 运行时能原生支持 WebAssembly。这是微软在跨平台战略上的重大进展。CoreCLR 提供更优性…...

【AI黑话日日新】什么是采样温度?

摘要 在大语言模型自回归文本生成链路中,采样温度是调控输出随机性、逻辑性与创造力的核心超参数。它依托玻尔兹曼分布思想缩放模型原始Logits向量,重塑Token概率分布形态,直接决定推理阶段的内容风格。本文从数学本质、分布映射、分层效果、关联采样策略、代码实战及业务调…...