Docker 如何把普罗米修斯放在特使面前

Docker 如何把普罗米修斯放在特使面前,docker,docker-compose,prometheus,envoyproxy,Docker,Docker Compose,Prometheus,Envoyproxy,我试图把特使放在我们的普罗米修斯码头集装箱前面,但未能成功地使路线正常工作。我得到一个错误: “上游连接错误或在标头之前断开/重置。重置原因:溢出” 我已经尝试在example/front代理配置中操作“git clone”存储库,并更改了配置中的端口 Docker编写文件 services: front-envoy: build: context: . dockerfile: Dockerfile-frontenvoy volumes:

我试图把特使放在我们的普罗米修斯码头集装箱前面,但未能成功地使路线正常工作。我得到一个错误:

“上游连接错误或在标头之前断开/重置。重置原因:溢出”

我已经尝试在example/front代理配置中操作“git clone”存储库,并更改了配置中的端口

Docker编写文件

services:

  front-envoy:
    build:
      context: .
      dockerfile: Dockerfile-frontenvoy
    volumes:
      - ./front-envoy.yaml:/etc/front-envoy.yaml
    networks:
      - envoymesh
    expose:
      - "80"
      - "8001"
    ports:
      - "8000:80"
      - "8001:8001"

  prom1:
    container_name: prom
    image: prom/prometheus
    volumes:
      - ./service-envoy.yaml:/etc/service-envoy.yaml
    networks:
      envoymesh:
        aliases:
          - prom1
    environment:
      - SERVICE_NAME=1
    expose:
      - "80"
    ports:
      - "9090:9090"

networks:
  envoymesh: {}
前线特使

  listeners:
  - address:
      socket_address:
        address: 0.0.0.0
        port_value: 80
    filter_chains:
    - filters:
      - name: envoy.http_connection_manager
        config:
          codec_type: auto
          stat_prefix: ingress_http
          route_config:
            name: local_route
            virtual_hosts:
            - name: backend
              domains:
              - "*"
              routes:
              - match:
                  prefix: "/prom/1"
                route:
                  cluster: prom1
          http_filters:
          - name: envoy.router
            config: {}
  clusters:
  - name: prom1
    connect_timeout: 0.25s
    type: strict_dns
    lb_policy: round_robin
    http2_protocol_options: {}
    load_assignment:
      cluster_name: prom1
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: 0.0.0.0
                port_value: 80
admin:
  access_log_path: "/dev/null"
  address:
    socket_address:
      address: 0.0.0.0
      port_value: 8001
服务特使

  listeners:
  - address:
      socket_address:
        address: 0.0.0.0
        port_value: 80
    filter_chains:
    - filters:
      - name: envoy.http_connection_manager
        config:
          codec_type: auto
          stat_prefix: ingress_http
          route_config:
            name: local_route
            virtual_hosts:
            - name: service
              domains:
              - "*"
              routes:
              - match:
                  prefix: "/prom"
                route:
                  cluster: local_service
          http_filters:
          - name: envoy.router
            config: {}
  clusters:
  - name: local_service
    connect_timeout: 0.25s
    type: strict_dns
    lb_policy: round_robin
    load_assignment:
      cluster_name: local_service
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: 0.0.0.0
                port_value: 9090
admin:
  access_log_path: "/dev/null"
  address:
    socket_address:
      address: 0.0.0.0
      port_value: 8081

我希望能够转到localhost:8000/prom/1,并被路由到Prometheus docker容器

我对你的
前特使的阅读。yaml
让我相信你只是在循环中将流量路由回同一个特使实例。此外,在
prom/prometheus
图像中不会有一位特使作为副驾运行,以使用您提供的
服务特使.yaml
。您是否需要/希望通过侧车实现此功能?