ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

把 Higress 装进边缘盒子:从一条 Docker 命令到可用的网关

把 Higress 装进边缘盒子:从一条 Docker 命令到可用的网关 把 Higress 装进边缘盒子从一条 Docker 命令到可用的网关【免费下载链接】higress AI Gateway | AI Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/hi/higress工厂车间里十几台两 GB 内存的小盒子要统一承接云 API 和内网服务的流量又不想每台机器单独维护一套 ingress。我在边缘节点上用 Higress 网关的 all-in-one 镜像做了一次部署配置就是本地文件改动秒级生效全程没重启过进程。适用场景Higress 是基于 Envoy 数据面的云原生 API 网关它的单机模式在边缘环境比较顺手一个 Docker 容器里同时有数据面、配置控制器和网页控制台。如果你的场景是一台机器、几个到十几个服务、需要认证限流防护、服务列表经常变动值得往下看。两类情况不适合已有 Kubernetes 集群、要用完整的 CRD 编排能力Ingress、Gateway API 那套的直接走 Helm 部署只是静态站点或单个反代的nginx 更省成本不必引入整个网关。快速上手边缘节点最小化部署一台装好 Docker 的机器三个端口开放即可mkdir higress-edge cd higress-edge docker run -d --rm --name higress-edge \ -v ${PWD}:/data -p 8001:8001 -p 8080:8080 -p 8443:8443 \ higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/all-in-one:latest8001 是网页控制台8080 是 HTTP 网关入口8443 是 HTTPS 入口。关键在于-v ${PWD}:/data这个挂载配置会持续写进本地目录机器断电重启后带着旧配置恢复所以边缘部署不建议裸跑容器。拉镜像如果从杭州仓库超时换结构相同的北美us-west-1或东南亚ap-southeast-7镜像仓库tag 不变。整体结构上控制台和服务注册中心都写入控制器控制器再把配置经 xDS 推送到 Envoy 数据面业务流量只经过 Envoy 这一层关键配置三个最影响结果的点注册中心接入McpBridge。这个自定义资源定义告诉网关到哪里找服务字段对应注册中心地址、端口和版本类型Nacos 2.x 写nacos2低版本写nacosapiVersion: networking.higress.io/v1 kind: McpBridge metadata: name: default namespace: higress-system spec: registries: - type: nacos2 name: edge-nacos domain: 192.168.1.10 port: 8848路由目的地destination 注解。不想走注册中心时静态地址可以直接写在路由规则上每行是权重% 协议 host:port多行可以混用annotations: higress.io/destination: | 50% http://192.168.1.100:8080 50% https://192.168.1.101:443边缘灰度用这个形式很顺手调权重比例就是切流量不需要发版。走注册中心时 host 是固定四段式服务名.分组.命名空间.注册中心类型public 表示默认命名空间。响应缓存response-cache。内容变化不频繁的接口值得缓存一层直接省掉边缘到云端之间的带宽。这个插件从请求头或请求体提取 key把响应存进 Redis注意两个提取字段只能配一个cache: type: redis serviceHost: 192.168.1.20 cacheTTL: 300 cacheKeyFromHeader: x-cache-key请求头加x-higress-skip-response-cache: on可让单次请求跳过缓存直达后端排查数据不一致问题时会用到。进阶能力Wasm 插件热更新Higress 的扩展机制是 Wasm 插件免重启加载的扩展程序用 Go、Rust 或 JS 写逻辑打成镜像用 WasmPlugin 资源引用。更新插件时存量长连接不断开新逻辑作用于后续请求这是边缘环境敢在生产上热更新的底气。比如屏蔽 swagger 页面spec: url: oci://higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins/request-block:1.0.0 defaultConfig: block_urls: - swagger.html取舍有两点Wasm 沙箱的单请求性能略低于原生过滤器但边缘场景下免重启换插件通常比这点差距更重要defaultConfig是全局默认值路由级配置可以覆盖它按路由下发策略时留意优先级。问题排查镜像拉取超时。控制台容器起来了但数据面反复拉镜像一般是跨区网络问题。把镜像前缀换成离节点近的仓库北美或东南亚或者提前同步到自己内网仓库再引用。注册中心配好却找不到服务。多数是目的地 host 格式问题服务在默认命名空间时写服务名.DEFAULT-GROUP.public.nacos分组全大写命名空间有独立 ID 时要把 public 换成 ID。另一个坑是 Nacos 版本低于 2.0 仍用了type: nacos2必须改成nacos否则列表为空可对照Nacos 接入示例。缓存插件配置报错。cacheKeyFromHeader和cacheKeyFromBody同时配置会在解析阶段直接拒绝二选一即可。调试时看响应头x-cache-statushit 是命中缓存miss 是走了后端skip 是被跳过标记拦下了。单机、服务数量不多的边缘入口是这套部署方式最合适的区间要做完整的 K8s 编排就换成 Helm 模式。完整部署方式与插件清单见 Higress 官网文档社区有公开交流群遇到解不掉的问题可以直接去问。【免费下载链接】higress AI Gateway | AI Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/hi/higress创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表