gremlin/envoy-plugin是一个Envoy HTTP过滤器扩展,用于集成Gremlin Failure Flags平台与服务网格,通过网络中间件实现基于Gremlin实验的应用级故障注入和负载突变。该插件为beta版本,提供相应的安装和配置选项,可部署在服务网格的边车代理中,对入站和出站HTTP连接进行检测。
Gremlin产品设计遵循生产环境安全标准,该插件及相关组件采用故障安全机制,运行于应用和服务的关键路径之外,确保不会影响核心业务流程的稳定性。
适用于需要在服务网格环境中进行故障注入测试、验证应用弹性能力的场景,特别适合:
环境要求:运行Istio 1.22(Sidecar模式)的Kubernetes集群
创建Kubernetes Secret存储Gremlin代理凭证,供插件查询Gremlin API获取实验元数据。将占位符替换为实际环境值:
yamlapiVersion: v1 kind: Secret metadata: name: gremlin-service-mesh-config namespace: <目标命名空间> type: Opaque stringData: config.yaml: | gremlin_team_certificate: <base64编码的团队证书> gremlin_team_id: <base64编码的团队ID> gremlin_team_private_key: <base64编码的团队私钥>
需对目标PodSpec进行三项修改,将插件安装到Envoy边车中:
通过注解告知Istio如何查找和配置插件:
yamlsidecar.istio.io/userVolumeMount: '[{"name":"gremlin-plugin","mountPath":"/gremlin/filter"}, {"name":"gremlin-service-mesh-config","mountPath":"/gremlin/config"}]' sidecar.istio.io/userVolume: '[{"name":"gremlin-service-mesh-config", "secret":{"secretName":"gremlin-service-mesh-config"}}]' sidecar.istio.io/logLevel: 'info'
定义用于存储插件的卷:
yamlvolumes: - name: gremlin-plugin emptyDir: { }
使用gremlin/envoy-plugin镜像将插件部署到边车代理可访问路径:
yamlinitContainers: - name: install-gremlin-plugin image: docker.io/gremlin/envoy-plugin:latest # 或指定版本如v0.5、envoy-1.30 imagePullPolicy: Always volumeMounts: - name: gremlin-plugin mountPath: /gremlin/filter
添加EnvoyFilter配置,将插件插入HTTP过滤链。替换占位符为环境实际值:
yamlapiVersion: networking.istio.io/v1alpha3 kind: EnvoyFilter metadata: name: gremlin-http-filter namespace: <目标命名空间> spec: configPatches: - applyTo: HTTP_FILTER match: context: ANY listener: portNumber: <服务暴露端口> filterChain: filter: name: "envoy.filters.network.http_connection_manager" subFilter: name: "envoy.filters.http.router" patch: operation: INSERT_BEFORE value: name: envoy.filters.http.golang typed_config: "@type": "type.googleapis.com/envoy.extensions.filters.http.golang.v3alpha.Config" library_id: gremlin-http-filter library_path: "/gremlin/filter/gremlin-http-filter.so" plugin_name: gremlin-http-filter plugin_config: "@type": type.googleapis.com/xds.type.v3.TypedStruct value: region: <部署区域> # 必填 cloud: <云平台名称> # 必填 gremlin_debug: true # 可选,默认false
配置完成后,可在Envoy边车Pod日志中查看插件运行日志。若安装成功,目标服务将显示在Gremlin应用的Failure Flags面板中。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429