Google Cloud Endpoints Helm Chart 实战:在 Kubernetes 上部署 NGINX 代理托管 API
【免费下载链接】charts⚠️(OBSOLETE) Curated applications for Kubernetes项目地址https://gitcode.com/gh_mirrors/chart/charts点击查看免费下载本指南以 stable/gcloud-endpoints/README.md 为主体结合仓库内 values.yaml、deployment.yaml、service.yaml 等模板源码系统讲解如何用 Helm 在 Google Kubernetes EngineGKE上部署 Google Cloud EndpointsESPExtensible Service Proxy为基于 Open APISwagger规范的 API 提供认证、监控与流量代理能力。读完本文你将掌握该 Chart 的全部配置参数、安装卸载流程以及参数与 ESP 运行时命令行参数、容器端口、Kubernetes Service 之间的完整映射关系。1. Chart 背景与定位Google Cloud Endpoints 是一个基于 NGINX 的代理ESPExtensible Service Proxy用于在 Google Cloud 上开发、部署、保护并监控 API。本 Chart 的作用是在 Kubernetes 集群中创建一个 Google Cloud Endpoints 的 Deployment 与 Service将集群内对 API 的请求代理到后端应用并接入 Google 的服务控制与认证体系。需要特别说明的事实依据 Chart.yaml该 Chart 当前版本为0.1.2appVersion为1engine为gotpl该 Chart 已被标记为deprecated: true原因是长期无人维护且 e2e 测试失败Chart 注释中明确提及 PR #2149 即为例证仓库根目录的 PROCESSES.md 描述了 Chart 弃用与重新启用undeprecate的流程官方 README 同时注明本 Chart 依据 Google 文档创建但不是 Google 官方支持或维护的产品。因此本文既介绍其标准用法也会在最后给出使用与迁移建议帮助读者在知情前提下决策是否采用。2. 工作原理从 Deployment 到 ESP 参数注入模板渲染的核心在 deployment.yaml。它创建一个extensions/v1beta1的 Deployment容器名为endpoints镜像取自{{ .Values.image }}默认b.gcr.io/endpoints/endpoints-runtime:1。容器启动后所有配置项通过**命令行参数args**注入 ESP 运行时模板中每个参数都使用if (.Values.xxx)守卫即只有显式设置了对应 value参数才会被注入Helm values 配置项注入的 ESP 命令行参数说明依据 deployment.yaml 与 values.yaml 注释httpPort--http_port接受 HTTP/1.x 连接的端口http2Port--http2_port接受 HTTP/2 连接的端口不能与 HTTP/1.x 端口相同sslPort--ssl_port接受 HTTPS 连接的端口同时支持 HTTP/1.x 与 HTTP/2backend--backend后端应用地址gRPC 后端需加grpc://前缀如grpc://localhost:8081默认localhost:8081service--serviceEndpoints 服务名不填且未设serviceConfigURL时ESP 联系元数据服务获取version--versionEndpoints 服务配置版本不填且未设serviceConfigURL时由元数据服务获取serviceAccountKey--service_account_key服务账号密钥 JSON 文件路径用于访问 Service Control 与 Service Management省略时 ESP 联系元数据服务获取访问令牌nginxConfig--nginx_config自定义 NGINX 配置文件路径statusPort--status_portESP 状态端口状态信息在 HTTP/1.x 的/endpoints_status路径提供默认80902.1 端口定义与默认行为模板对端口有一套明确的缺省逻辑见 deployment.yaml 中ports段落若设置了httpPort暴露名为http的 containerPort若未设置httpPort、http2Port、sslPort三者则默认暴露8080端口名为http这也是 values.yaml 注释中默认 httpPort 8080的由来若设置了http2Port额外暴露名为http2的 containerPort若设置了sslPort额外暴露名为https的 containerPort若设置了statusPort暴露名为status的 containerPort。2.2 健康检查只要设置了statusPort模板就会自动为容器配置存活与就绪探针见 deployment.yamllivenessProbe与readinessProbe均以 HTTP GET 方式请求/endpoints_statusinitialDelaySeconds: 5timeoutSeconds: 1。这意味着 ESP 的/endpoints_status健康端点被 Kubernetes 用来判断 Pod 存活与就绪任何自定义 NGINX 配置都不得屏蔽该路径。3. 前置条件按 README.md 的 Prerequisites 章节部署前需要满足一个运行在Google Container EngineGKE上的 Kubernetes 集群一份 API 的Open APISwagger规范 YAML 文件先通过以下命令部署 Open API 规范并记下返回的Project ID 与版本号$ gcloud beta service-management deploy swagger.yaml部署时用到的service参数通常形如project-id.appspot.comversion即上一步获得的版本号。4. 安装 Chart4.1 快速安装TL;DR一行命令即可完成最小化安装README.md 的 TL;DR 章节$ helm install stable/gcloud-endpoints --set serviceproject-id.appspot.com,versionversion-number,backendbackendapi.default.svc.cluster.local其中service形如project-id.appspot.com的 Endpoints 服务名version服务配置版本号backend后端 API 的 Kubernetes Service 地址如backendapi.default.svc.cluster.local。4.2 指定 release 名称安装使用--name指定 release 名例如my-release$ helm install --name my-release stable/gcloud-endpoints --set serviceproject-id.appspot.com,versionversion-number,backendbackendapi.svc.cluster.local提示使用helm list可以查看所有已部署的 release。4.3 通过 values 文件安装当参数较多时推荐将配置写入 YAML 文件再以-f传入$ helm install --name my-release -f values.yaml stable/gcloud-endpoints提示可以直接使用仓库自带的默认配置 values.yaml 作为模板在其基础上按需修改。4.4 安装后的访问方式Chart 的 NOTES.txt 会根据serviceType给出三种不同的访问指引NodePort先取节点端口与节点 IP再访问http://$NODE_IP:$NODE_PORT/export NODE_PORT$(kubectl get --namespace namespace -o jsonpath{.spec.ports[0].nodePort} services release-gcloud-endpoints) export NODE_IP$(kubectl get nodes --namespace namespace -o jsonpath{.items[0].status.addresses[0].address}) echo http://$NODE_IP:$NODE_PORT/LoadBalancerLoadBalancer IP 可能需要几分钟才就绪可执行kubectl get svc -w release-gcloud-endpoints观察状态就绪后export SERVICE_IP$(kubectl get svc --namespace namespace release-gcloud-endpoints -o jsonpath{.status.loadBalancer.ingress[0].ip}) echo http://$SERVICE_IP/ClusterIPvalues.yaml 的默认值通过 port-forward 访问export POD_NAME$(kubectl get pods --namespace namespace -l apprelease-gcloud-endpoints -o jsonpath{.items[0].metadata.name}) echo http://127.0.0.1:8080/ kubectl port-forward $POD_NAME 8080:80注意Service 名称是 release 名与 chart 名拼接后再做 24 字符截断的结果见 _helpers.tpl 中fullname的定义实际名称以渲染结果为准。5. 卸载 Chart卸载删除名为my-release的 release$ helm delete my-release该命令会移除与该 Chart 关联的所有 Kubernetes 组件并删除该 release。6. 配置参数详解6.1 完整参数表以下表格完整继承自 README.md 的 Configuration 章节ParameterDescriptionDefaultimageEndpoints imageb.gcr.io/endpoints/endpoints-runtime:0.3imagePullPolicyImage pull policyAlwaysifimagetag islatest, elseIfNotPresentbackendBackend API in which to proxy requestsserviceName of the Endpoints serviceserviceConfigURLURL to fetch the service configurationhttpPortPort to accept HTTP/1.x connections8080ifhttp2PortandsslPortare not providedhttp2PortPort to accept HTTP/2 connectionssslPortPort to accept HTTPS connectionsstatusPortPort for status/health (not exposed)8090versionConfig version of Endpoints serviceserviceAccountKeyService account key JSON filenginxConfigCustom NGINX config fileserviceTypeKubernetes Service typeLoadBalancerresourcesCPU/Memory resource requests/limitsMemory:128Mi, CPU:100m6.2 以仓库实际 values.yaml 为准的补充说明需要指出README 参数表与仓库实际默认值存在两处差异应以 values.yaml 为准镜像values.yaml 中实际默认镜像是b.gcr.io/endpoints/endpoints-runtime:1README 表格写的是:0.3Service 类型values.yaml 中serviceType的默认值是ClusterIP注释明确建议对于 minikube设置为 NodePort其他环境使用 LoadBalancer。values.yaml 还包含以下在参数表中未单列、但实际生效的默认值statusPort: 8090 resources: requests: memory: 128Mi cpu: 100m即状态端口默认8090资源请求默认内存128Mi、CPU100m。6.3 逐参数深入说明image / imagePullPolicyimageESP 运行时镜像。默认b.gcr.io/endpoints/endpoints-runtime:1。imagePullPolicy未设置时由 Kubernetes 默认规则决定——若 image tag 为latest则为Always否则为IfNotPresentdeployment.yaml 中通过{{ default .Values.imagePullPolicy | quote }}渲染空值交由平台默认。可以通过 deployment.yaml 确认其注入方式。backend后端 API 地址ESP 将收到的请求代理转发至此。默认localhost:8081若后端为 gRPC 服务须使用grpc://前缀例如grpc://localhost:8081见 values.yaml 注释。典型的跨命名空间写法为backendapi.default.svc.cluster.local这类完整 DNS 名。service / version / serviceConfigURL三者共同决定 ESP 如何获取服务配置显式设置serviceEndpoints 服务名形如project-id.appspot.com与version配置版本号是最直接的方式若两者省略但设置了serviceConfigURLESP 从该 URL 拉取服务配置若都不设置ESP 会联系集群的元数据服务自动获取服务名与版本见 values.yaml 中对应注释。httpPort / http2Port / sslPort控制 ESP 对外监听协议httpPortHTTP/1.x 端口默认值逻辑为当http2Port与sslPort均未提供时为8080http2PortHTTP/2 端口不能与 HTTP/1.x 端口相同sslPortHTTPS 端口同时接受 HTTP/1.x 与 HTTP/2 连接。三者均未设置时模板回退暴露容器端口8080见 deployment.yaml。statusPortESP 状态端口默认8090。状态信息通过 HTTP/1.x 的/endpoints_status路径暴露同时被用作存活/就绪探针的探测路径。README 参数表注明该端口不对外暴露not exposed仅作为容器内部健康检查使用。serviceAccountKey服务账号密钥 JSON 文件路径。ESP 用它访问 Service Control计费/监控/限流与 Service Management配置下发。省略时ESP 会联系元数据服务获取访问令牌见 values.yaml 注释。该参数通过--service_account_key注入容器命令行见 deployment.yaml。nginxConfig自定义 NGINX 配置文件路径通过--nginx_config注入用于覆盖 ESP 默认的 NGINX 行为见 deployment.yaml。注意不要屏蔽/endpoints_status健康端点。serviceTypeKubernetes Service 类型ClusterIP/NodePort/LoadBalancer。service.yaml 依据该值渲染 Service 的type字段不同类型的访问方式见本文 4.4 节。resources容器资源请求与限制默认requests: memory 128Mi / cpu 100m。模板通过 _helpers.tpl 中定义的递归toYaml辅助函数将resources对象渲染进 Deployment 的resources字段。7. Service 端口映射service.yaml 定义了对外 Service 端口与容器端口的映射关系与 deployment.yaml 中的端口定义一一对应Service 端口targetPort命名端口启用条件80HTTPhttp设置了httpPort或三者端口均未设置81HTTP/2http2设置了http2Port443HTTPShttps设置了sslPortService 的 selector 匹配app: {{ template fullname . }}标签fullname由 release 名与 chart 名拼接并截断为 24 字符见 _helpers.tpl。Deployment 的 selector 同样使用该标签保证 Pod 与 Service 正确关联。8. 注意事项与使用建议Chart 已弃用当前 Chart 标记为deprecated: true见 Chart.yaml原因是无人维护与 e2e 测试失败。新项目应优先评估 Google 官方推荐的替代部署方式如 ESPv2 相关方案如需继续使用本 Chart请自行验证模板在当前集群版本尤其是 Deployment API 从extensions/v1beta1演进下的兼容性。非 Google 官方产品Chart 依据 Google 文档创建但并非 Google 官方支持维护使用前应做好风险评估。API 版本陈旧模板使用extensions/v1beta1的 Deployment API见 deployment.yaml在较新版本的 Kubernetes 集群上可能无法直接应用需自行适配为apps/v1。健康端点/endpoints_status同时承担存活与就绪探针职责自定义nginxConfig时务必保留该路径。密钥安全serviceAccountKey对应服务账号密钥 JSON 文件生产环境建议结合 Kubernetes Secret 挂载避免将密钥直接写入 values 明文配置。9. 参考Chart 默认配置 values.yaml所有参数的完整注释与默认值Deployment 模板 deployment.yamlESP 命令行参数注入、端口定义与健康检查Service 模板 service.yaml对外端口映射与 Service 类型辅助模板 _helpers.tpl名称生成与toYaml递归渲染NOTES.txt三种 Service 类型下的访问指引Chart.yamlChart 元数据与弃用状态PROCESSES.md仓库维护流程含 Chart 弃用/恢复机制。赞分享【免费下载链接】charts⚠️(OBSOLETE) Curated applications for Kubernetes项目地址https://gitcode.com/gh_mirrors/chart/charts点击查看免费下载相关推荐PhotoPrism Plus Helm Chart 实战在 Kubernetes 上部署自托管 AI 照片管理平台PhotoPrism Plus Helm Chart 实战在 Kubernetes 上部署自托管 AI 照片管理平台 PhotoPrism® 是一款开源、支持后端前端图像处理人工智能AI 应用PraisonAI 部署实战使用 praisonai-agents-api Helm Chart 在 Kubernetes 上托管 Agent HTTP API/health 与 /chatPraisonAI 部署实战使用 praisonai agents api Helm Chart 在 Kubernetes 上托管 Agent HTTP AP人工智能AI AgentAgent 框架多智能体工作流自动化RAGMCP 服务在 Google Cloud 自托管 FlagsmithGKE Helm 与 Cloud Run 双路径部署实战指南在 Google Cloud 自托管 FlagsmithGKE Helm 与 Cloud Run 双路径部署实战指南 Flagsmith 是开源的功能开关后端前端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

WorkBuddy-win32-x64-user-5.7.6.40409493-306add2a.exe

WorkBuddy-win32-x64-user-5.7.6.40409493-306add2a.exe

https://download.codebuddy.cn/workbuddy/saas/win32-x64-user/WorkBuddy-win32-x64-user-5.7.6.40409493-306add2a.exe https://download.csdn.net/download/spencer_tseng/93660202 C:\Users\Administrator\AppData\Local\Programs\WorkBuddy 需要1.2G D:\WorkBuddy 需要1…

2026/10/15 10:41:44 阅读更多 →
移动轨迹代码

移动轨迹代码

一.代码 下面这段 Python 代码实现了一个简单的「路线追踪」程序:用户输入一串由 F/B/L/R 组成的字母,程序模拟从原点出发的移动轨迹,并输出每一步的坐标、最终位置和总步数。 def process_route(s):x, y 0, 0positions [(x, y)]steps 0fo…

2026/10/16 4:23:16 阅读更多 →
NLP 基础到高级 11:机器翻译

NLP 基础到高级 11:机器翻译

机器翻译 翻译是为 NLP 研究买单三十年的任务,现在仍在持续买单。 类型: 构建 语言: Python 前置条件: Phase 5 10(注意力机制),Phase 5 04(GloVe、FastText、子词) 预计用时: ~75 分钟 问题 模型读取一种语言的句子并生成另一种语言的句子。长度各异。词序各异。…

2026/10/15 14:12:36 阅读更多 →

最新新闻

CKEditor 4 Table Selection 插件只读模式安全防护:从 1489 手动测试到源码修复解析

CKEditor 4 Table Selection 插件只读模式安全防护:从 1489 手动测试到源码修复解析

前端UI组件 【免费下载链接】ckeditor4 The best enterprise-grade WYSIWYG editor. Fully customizable with countless features and plugins. 项目地址: https://gitcode.com/gh_mirrors/ck/ckeditor4 点击查看 免费下载 导读 在 CKEditor 4 中启用 Table Sele…

2026/10/17 5:57:32 阅读更多 →
语音交互测试:识别率之外,响应延迟与打断策略才是体验分水岭

语音交互测试:识别率之外,响应延迟与打断策略才是体验分水岭

语音交互测试:除了识别率,我们还应关注什么?干语音测试这行,最容易被开口第一句话就问懵:“你这识别率多少?”仿佛识别率就是语音交互的质量本身。我在某智能语音产品团队摸爬滚打这几年,经验是…

2026/10/17 5:57:32 阅读更多 →
显存不够怎么办?qwen-image-edit-plus-nsfw-lora 硬件需求与部署优化完整方案

显存不够怎么办?qwen-image-edit-plus-nsfw-lora 硬件需求与部署优化完整方案

【免费下载链接】qwen-image-edit-plus-nsfw-lora 项目地址: https://ai.gitcode.com/hf_mirrors/ScottzillaSystems/qwen-image-edit-plus-nsfw-lora 点击查看 免费下载 部署 qwen-image-edit-plus-nsfw-lora 时,"CUDA out of memory" 是最常…

2026/10/17 5:57:32 阅读更多 →
分布式账本性能调优实录:DAG+BFT共识与存储批量写改造

分布式账本性能调优实录:DAG+BFT共识与存储批量写改造

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 5:57:32 阅读更多 →
AI编程助手静默上传Git历史:开发者如何守护代码资产与信任边界

AI编程助手静默上传Git历史:开发者如何守护代码资产与信任边界

1. 事件全貌:48小时里,ZCode到底经历了什么1.1 引爆点是终端里的那行警告日志先说个很典型的场景。4月那个周末,不少开发者照常打开终端,输入zcode启动会话,正准备让这个基于智谱GLM大模型的AI编程助手帮忙看看代码。结…

2026/10/17 5:57:32 阅读更多 →
DashPlayer 安装教程:英语学习视频播放器从源码到跑起来的完整指南

DashPlayer 安装教程:英语学习视频播放器从源码到跑起来的完整指南

DashPlayer 安装教程:英语学习视频播放器从源码到跑起来的完整指南 【免费下载链接】DashPlayer 为英语学习者量身打造的视频播放器,助你通过观看视频、沉浸真实语境,轻松提升英语水平。#美剧 #播放器 #听力 项目地址: https://gitcode.com…

2026/10/17 5:56:32 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →