Products
GG网络技术分享 2026-04-15 22:03 3
说实话, 现在的技术圈儿真的是一天一个样,昨天还在谈容器化,今天就是云原生,明天估计又要搞什么量子计算了。咱们这些做技术的,真的是不进则退,退了就失业。特别是对于那些大一点的企业, 哈基米! 业务线乱七八糟,有的在阿里云,有的在腾讯云,有的甚至还在那个该死的自建机房里跑着物理机。这时候你要搞个服务治理,我告诉你,那简直就是灾难现场。真的,不骗你,那种痛苦谁懂啊?
这时候腾讯云微服务引擎 TSE搞出来的这个 MCP 功能, 说实话,我第一眼看到的时候是拒绝的。又是新协议,又是新概念,是不是又要割韭菜?但是后来仔细研究了一下哎?好像还真有点东西。它基于 SMI标准中的 MCP 协议,扮演了一个“云间服务枢纽”的角色。这名字听着就挺唬人的,对吧?

我开心到飞起。 简单它就是想解决那个让人抓狂的问题:怎么把散落在四面八方的服务给统一起来管?它允许不同的服务网格数据平面从它的集中式控制平面同步服务与路由配置。这就像是给每个孤岛都修了一条高速公路,虽然路修起来累,但是修好了以后跑起来是真的爽。
咱们别整那些官方的、一本正经的文档语言,看着就困。MCP 是一个开放协议,用于在服务网格控制平面和其后端配置存储系统之间传输动态配置信息。你可以将它类比为 Kubernetes 中的 kube-apiserver它是一个提供资源的唯一事实来源的服务器。懂了吧?就是那个“唯一真理源”,所有的小弟都得听它的,我舒服了。。
在腾讯云的语境下TSE MCP 广场 就是这个“配置存储系统”或“资源源”。它将腾讯云上注册的服务、 其他云或集群中的服务抽象成标准化的资源,并通过 MCP 协议提供给一个或多个订阅了它的服务网格控制平面。这就像是把各种乱七八糟的货币都换成了美元,然后大家统一结算,省去了汇率换算的麻烦,也是没谁了。。
但是!注意了啊,这里有个大坑。虽然概念听起来很美好, 什么“一键接入”、“开箱即用”,其实吧你去配的时候就会发现,这认证部分简直能让人把键盘敲碎。真的,我一点都不夸张。
我们一起... 下面我们将一步步演示如何将一个外部的服务网格连接到腾讯云 TSE MCP 广场,从而消费其上的服务信息。准备好了吗?深呼吸。
我深信... MCP 支持多种传输层协议,SSE是其中一种便于测试和简单使用的和采用的关键工具。
牛逼。 这是最核心的一步。我们需要修改 istiod 的部署配置,让其从腾讯云 MCP 广场拉取配置。这听起来简单,做起来……呵呵。
如果你使用 Helm 管理 Istio,可以在 中添加以下配置。看着这堆 YAML,是不是觉得眼晕?
# meshConfig: # 在 defaultConfig 中指定额外的根 CA defaultConfig: proxyMetadata: # 通常不需要, 除非有特定代理设置pilot: env: # 启用 MCP 客户端功能 ENABLE_MCP: "true" # 禁用原有的 Galley,高版本 Istio 已无 Galley # ENABLE_LEGACY_MCP: "false" # 配置 MCP Server 地址 configSource: - address: - your-mcp-instance-:443 # 你的 SSE URL 的主机名和端口 tlsSettings: mode: SIMPLE # 使用 TLS # 如果服务器使用公共可信证书,则 sni 可省略或设置为相同域名 sni: your-mcp-instance- # 指定 MCP 协议为 SSE-over-HTTP protocol: "HTTP_SSE" # 资源订阅列表,指定你希望从该 Server 获取哪些类型的资源 resourceTypes: - / - / - / - / # HTTP 认证 Header httpAuth: # 这是一个自定义的 Auth Header 注入方式。 # 其实吧,Istio 原生可能不直接支持腾讯云复杂的签名算法。 # 更常见的做法是使用一个 sidecar 代理来完成签名,如下文方式二所述。 custom: # 通常需要在这里注入 Authorization Header, 但签名计算复杂,建议看方式二
看到了吧?那个 httpAuth 部分,官方文档居然让你自己搞?腾讯云的签名算法 v3 那个复杂程度,简直了。你要自己去算哈希,自己去拼字符串,稍微错一个空格,整个请求就给你 403。这谁顶得住啊?
重要提示直接涉及多次哈希和特定格式组装。更可靠的方案是 你看啊... 使用一个 Sidecar 代理 来处理请求转发和签名。
谨记... 这才是聪明人的做法。别硬刚了咱们写个代理吧。
前提条件
1、 编写一个简单的代理程序。这个程序运行在 istiod Pod 中, 接收 istiod 的明文 HTTP SSE 请求,然后将其转发给腾讯云 MCP 广场,并在转发前为请求加上正确的腾讯云签名 v3 的 Authorization Header。 sign_ 示例:,不如...
from flask import Flask, request, stream_template from import credential from _profile import ClientProfile from _profile import HttpProfile from import sign import requests app = Flask TENCENT_MCP_URL = 'https://your-mcp-instance-/v1/resources?sse=true' SECRET_ID = 'your_secret_id' SECRET_KEY = 'your_secret_key' def get_authorization_header: # 使用腾讯云 SDK 或自定义方法生成签名 Header # 此处为示意, 实际签名逻辑非常复杂,请严格参考官方文档: # https:///document/product/1275/55565 cred = http_profile = HttpProfile client_profile = ClientProfile # ... 根据签名算法要求构造规范请求并签名 ... # 返回 Authorization 头,比方说 'TC3-HMAC-SHA256 Credential=AKID***...' authorization = sign return authorization @ def proxy: # 1. 获取 istiod 发来的原始请求内容 # 2. 生成指向腾讯云 MCP 的签名 Header auth_header = get_authorization_header headers = {key: value for in } headers = auth_header # 3. 将请求转发到腾讯云 MCP,并流式传输响应回 istiod resp = return stream_template) if __name__ == '__main__':
代码语言:python
看到了吗?这代码虽然看着乱,但是它是能跑的!这就是我们要的效果。别管它优不优雅,能抓到老鼠就是好猫,累并充实着。。
2、 修改 istiod 的部署配置,添加这个代理作为 人间清醒。 Sidecar并让 istiod 的配置源指向这个本地代理。
# 在 istiod 的 Deployment 中添加一个 sidecar 容器 spec: template: spec: containers: - name: istiod # ... 原有配置 ... # 修改 configSource, 指向本地 sidecar 代理 env: - name: P劳工T_MCP_CONFIGSOURCE_ADDRESS value: "localhost:8080" # 指向本地代理 - name: P劳工T_MCP_CONFIGSOURCE_PROTOCOL value: "HTTP_SSE" - name: mcp-auth-proxy # 新增的代理 Sidecar image: python:3.9 command: ports: - containerPort: 8080 volumeMounts: - mountPath: /app name: proxy-code volumes: - name: proxy-code configMap: name: mcp-proxy-code # 假设代理代码已放入 ConfigMap
这一步操作下来大体上你的 istiod 就变成了一个傀儡,所有的配置都从那个 Sidecar 代理那里拿,而代理再去跟腾讯云 MCP 要数据。虽然绕了一圈,但是稳啊!兄弟们,稳字当头,哎,对!。
你以为配完就完了?天真。怎么知道通没通?得测啊!
代码语言:bash
# 进入网格内的一个 Pod kubectl exec -it -c -- /bin/sh # 尝试解析 MCP 广场上的服务 nslookup ..
如果返回正确的 IP 地址,则证明服务发现同步成功。
如果看到 IP 了恭喜你,你可以去喝杯咖啡庆祝一下了。如果没看到,那就回去慢慢查日志吧,那种痛苦我就不描述了懂的都懂,开倒车。。
其实除了腾讯云 TSE, 市面上还有不少类似的产品,什么 Linkerd 啊,Consul 啊,都在抢这个市场。 我天... 但是说实话,各有各的坑。为了让大家心里有个底,我特意整理了一个表格,大家凑合着看吧,别太较真。
| 产品名称 | 所属厂商 | 协议支持 | 上手难度 | 我的吐槽指数 |
|---|---|---|---|---|
| TSE MCP | 腾讯云 | MCP | 难 | ★★★★★ |
| Istio | Google/IBM | XDS | 极难 | ★★★★★ |
| Consul Connect | HashiCorp | xDS | 中等 | ★★★ |
| Linkerd | CNCF | Proxy API | 简单 | ★★★ |
看这个表格大概就能明白, TSE MCP 虽然配置起来让人想骂娘,但是一旦你把它那个该死的签名搞定了它带来的多云治理能力是真的强。特别是对于已经在用腾讯云,或者想把自建 K8s 和腾讯云连起来的场景,这玩意儿简直是救命稻草,KTV你。。
腾讯云 TSE MCP 功能通过实现开放的 MCP 协议, 为企业构建统一的多云、混合云服务治理层提供了强大的基础设施。它将服务配置的“源”与“端”解耦, 允许你在一个控制台管理全局服务,而变更却能近乎实时地生效在所有异构环境中,我悟了。。
企业常常面临一个核心挑战:如何高效、统一地管理部署在不同云厂商、私有云或 Kubernetes 集群中的微服务? 离了大谱。 传统的点对点服务集成方式不仅繁琐,更会带来极高的维护成本和稳定性风险。
所以回到一开始的问题,TSE MCP 值不值得搞?我觉得值得。虽然过程很痛苦,代码很丑,配置很繁琐,但是为了以后能睡个安稳觉,这点苦算什么?对吧?别犹豫了赶紧去试试吧,试错了别怪我,试成了记得回来给我点个赞。
Demand feedback