【云原生 | Kubernetes 系列】--Envoy高级路由配置

1. Envoy高级路由配置

1.1 流量分割-1

1.1.1 docker-compose

六个Service:

  • envoy:Front Proxy,地址为172.31.55.10
  • 5个后端服务
    • demoapp-v1.0-1、demoapp-v1.0-2和demoapp-v1.0-3:对应于Envoy中的demoappv10集群
    • demoapp-v1.1-1和demoapp-v1.1-2:对应于Envoy中的demoappv11集群
version: '3'

services:
  front-envoy:
    image: envoyproxy/envoy-alpine:v1.21.5
    environment:
      - ENVOY_UID=0
      - ENVOY_GID=0
    volumes:
      - ./front-envoy.yaml:/etc/envoy/envoy.yaml
    networks:
      envoymesh:
        ipv4_address: 172.31.55.10
    expose:
      # Expose ports 80 (for general traffic) and 9901 (for the admin server)
      - "80"
      - "9901"

  demoapp-v1.0-1:
    image: ikubernetes/demoapp:v1.0
    hostname: demoapp-v1-0-1
    networks:
      envoymesh:
        aliases:
          - demoappv10
    expose:
      - "80"      
      
  demoapp-v1.0-2:
    image: ikubernetes/demoapp:v1.0
    hostname: demoapp-v1-0-2
    networks:
      envoymesh:
        aliases:
          - demoappv10
    expose:
      - "80"  
      
  demoapp-v1.0-3:
    image: ikubernetes/demoapp:v1.0
    hostname: demoapp-v1-0-3
    networks:
      envoymesh:
        aliases:
          - demoappv10
    expose:
      - "80" 
      
  demoapp-v1.1-1:
    image: ikubernetes/demoapp:v1.1
    hostname: demoapp-v1-1-1
    networks:
      envoymesh:
        aliases:
          - demoappv11
    expose:
      - "80"      
      
  demoapp-v1.1-2:
    image: ikubernetes/demoapp:v1.1
    hostname: demoapp-v1-1-2
    networks:
      envoymesh:
        aliases:
          - demoappv11
    expose:
      - "80"  

networks:
  envoymesh:
    driver: bridge
    ipam:
      config:
        - subnet: 172.31.55.0/24

1.1.2 envoy.yaml

通过路由中的match,定义了2个match demoappv10和demoappv11.其中demoappv10承担100%的流量.

如果调整demoappv10的流量为90%,那么剩余的10%流量就流向demoappv11,如果调整demoappv10到70%,那么就会有30%的流量流向demoappv11

admin:
  profile_path: /tmp/envoy.prof
  access_log_path: /tmp/admin_access.log
  address:
    socket_address:
       address: 0.0.0.0
       port_value: 9901

layered_runtime:
  layers:
  - name: admin
    admin_layer: {
    
    }
       
static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address: {
    
     address: 0.0.0.0, port_value: 80 }
    filter_chains:
    - filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          stat_prefix: ingress_http
          codec_type: AUTO
          route_config:
            name: local_route
            virtual_hosts:
            - name: demoapp
              domains: ["*"]
              routes:
              - match:
                  prefix: "/"
                  runtime_fraction:
                    default_value:
                      numerator: 100
                      denominator: HUNDRED
                    runtime_key: routing.traffic_shift.demoapp
                route:
                  cluster: demoappv10
              - match:
                  prefix: "/"
                route:
                  cluster: demoappv11
          http_filters:
          - name: envoy.filters.http.router

  clusters:
  - name: demoappv10
    connect_timeout: 0.25s
    type: STRICT_DNS
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: demoappv10
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: demoappv10
                port_value: 80

  - name: demoappv11
    connect_timeout: 0.25s
    type: STRICT_DNS
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: demoappv11
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: demoappv11
                port_value: 80

1.3 测试

1.3.1 初始状态

# ./send-request.sh 172.31.55.10
demoapp-v1.0:demoapp-v1.1 = 1:0
demoapp-v1.0:demoapp-v1.1 = 2:0
demoapp-v1.0:demoapp-v1.1 = 3:0
demoapp-v1.0:demoapp-v1.1 = 4:0
demoapp-v1.0:demoapp-v1.1 = 5:0
demoapp-v1.0:demoapp-v1.1 = 6:0
demoapp-v1.0:demoapp-v1.1 = 7:0
demoapp-v1.0:demoapp-v1.1 = 8:0
demoapp-v1.0:demoapp-v1.1 = 9:0
demoapp-v1.0:demoapp-v1.1 = 10:0
demoapp-v1.0:demoapp-v1.1 = 11:0
demoapp-v1.0:demoapp-v1.1 = 12:0
demoapp-v1.0:demoapp-v1.1 = 13:0
demoapp-v1.0:demoapp-v1.1 = 14:0
demoapp-v1.0:demoapp-v1.1 = 15:0
demoapp-v1.0:demoapp-v1.1 = 16:0
demoapp-v1.0:demoapp-v1.1 = 17:0
demoapp-v1.0:demoapp-v1.1 = 18:0
demoapp-v1.0:demoapp-v1.1 = 19:0

1.3.2 修改权重到90%

这样就有10%的流量分配到v1.1上

# curl -XPOST http://172.31.55.10:9901/runtime_modify?routing.traffic_shift.demoapp=90
OK
# ./send-request.sh 172.31.55.10
demoapp-v1.0:demoapp-v1.1 = 30:3
demoapp-v1.0:demoapp-v1.1 = 31:3
demoapp-v1.0:demoapp-v1.1 = 32:3
demoapp-v1.0:demoapp-v1.1 = 33:3
demoapp-v1.0:demoapp-v1.1 = 34:3
demoapp-v1.0:demoapp-v1.1 = 35:3
demoapp-v1.0:demoapp-v1.1 = 36:3
demoapp-v1.0:demoapp-v1.1 = 37:3
demoapp-v1.0:demoapp-v1.1 = 38:3
demoapp-v1.0:demoapp-v1.1 = 39:3
demoapp-v1.0:demoapp-v1.1 = 39:4
demoapp-v1.0:demoapp-v1.1 = 40:4

1.3.3 修改权重到80%

接近20%的流量到了v1.1上

demoapp-v1.0:demoapp-v1.1 = 90:14
demoapp-v1.0:demoapp-v1.1 = 91:14
demoapp-v1.0:demoapp-v1.1 = 92:14
demoapp-v1.0:demoapp-v1.1 = 93:14
demoapp-v1.0:demoapp-v1.1 = 94:14
demoapp-v1.0:demoapp-v1.1 = 95:14
demoapp-v1.0:demoapp-v1.1 = 95:15
demoapp-v1.0:demoapp-v1.1 = 96:15
demoapp-v1.0:demoapp-v1.1 = 97:15
demoapp-v1.0:demoapp-v1.1 = 97:16
demoapp-v1.0:demoapp-v1.1 = 98:16
demoapp-v1.0:demoapp-v1.1 = 99:16
demoapp-v1.0:demoapp-v1.1 = 99:17
demoapp-v1.0:demoapp-v1.1 = 100:17

1.2 流量分割-2

1.2.1 docker-compose

六个Service:

  • envoy:Front Proxy,地址为172.31.57.10
  • 5个后端服务
    • demoapp-v1.0-1、demoapp-v1.0-2和demoapp-v1.0-3:对应于Envoy中的demoappv10集群
    • demoapp-v1.1-1和demoapp-v1.1-2:对应于Envoy中的demoappv11集群
version: '3'

services:
  front-envoy:
    image: envoyproxy/envoy-alpine:v1.21.5
    environment:
      - ENVOY_UID=0
      - ENVOY_GID=0
    volumes:
      - ./front-envoy.yaml:/etc/envoy/envoy.yaml
    networks:
      envoymesh:
        ipv4_address: 172.31.57.10
    expose:
      # Expose ports 80 (for general traffic) and 9901 (for the admin server)
      - "80"
      - "9901"

  demoapp-v1.0-1:
    image: ikubernetes/demoapp:v1.0
    hostname: demoapp-v1-0-1
    networks:
      envoymesh:
        aliases:
          - demoappv10
    expose:
      - "80"      
      
  demoapp-v1.0-2:
    image: ikubernetes/demoapp:v1.0
    hostname: demoapp-v1-0-2
    networks:
      envoymesh:
        aliases:
          - demoappv10
    expose:
      - "80"  
      
  demoapp-v1.0-3:
    image: ikubernetes/demoapp:v1.0
    hostname: demoapp-v1-0-3
    networks:
      envoymesh:
        aliases:
          - demoappv10
    expose:
      - "80" 
      
  demoapp-v1.1-1:
    image: ikubernetes/demoapp:v1.1
    hostname: demoapp-v1-1-1
    networks:
      envoymesh:
        aliases:
          - demoappv11
    expose:
      - "80"      
      
  demoapp-v1.1-2:
    image: ikubernetes/demoapp:v1.1
    hostname: demoapp-v1-1-2
    networks:
      envoymesh:
        aliases:
          - demoappv11
    expose:
      - "80"  

networks:
  envoymesh:
    driver: bridge
    ipam:
      config:
        - subnet: 172.31.57.0/24

1.2.2 envoy.yaml

通过weighted_clusters定义两个cluster demoappv10和demoappv11.并保证两个cluster权重相加为100

admin:
  profile_path: /tmp/envoy.prof
  access_log_path: /tmp/admin_access.log
  address:
    socket_address:
       address: 0.0.0.0
       port_value: 9901

layered_runtime:
  layers:
  - name: admin
    admin_layer: {
    
    }
       
static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address: {
    
     address: 0.0.0.0, port_value: 80 }
    filter_chains:
    - filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          stat_prefix: ingress_http
          codec_type: AUTO
          route_config:
            name: local_route
            virtual_hosts:
            - name: demoapp
              domains: ["*"]
              routes:
              routes:
              - match:
                  prefix: "/"
                route:
                  weighted_clusters:
                    clusters:
                    - name: demoappv10
                      weight: 100
                    - name: demoappv11
                      weight: 0
                    total_weight: 100
                    runtime_key_prefix: routing.traffic_split.demoapp
          http_filters:
          - name: envoy.filters.http.router

  clusters:
  - name: demoappv10
    connect_timeout: 0.25s
    type: STRICT_DNS
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: demoappv10
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: demoappv10
                port_value: 80

  - name: demoappv11
    connect_timeout: 0.25s
    type: STRICT_DNS
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: demoappv11
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: demoappv11
                port_value: 80

1.2.3 测试

1.2.3.1 初始状态

初始状态所有流量都泡在v1.0上

# ./send-request.sh 172.31.57.10
demoapp-v1.0:demoapp-v1.1 = 1:0
demoapp-v1.0:demoapp-v1.1 = 2:0
demoapp-v1.0:demoapp-v1.1 = 3:0
demoapp-v1.0:demoapp-v1.1 = 4:0
demoapp-v1.0:demoapp-v1.1 = 5:0
demoapp-v1.0:demoapp-v1.1 = 6:0
demoapp-v1.0:demoapp-v1.1 = 7:0
demoapp-v1.0:demoapp-v1.1 = 8:0
demoapp-v1.0:demoapp-v1.1 = 9:0
demoapp-v1.0:demoapp-v1.1 = 10:0

1.2.3.2 动态调整权重90%

# curl -XPOST 'http://172.31.57.10:9901/runtime_modify?routing.traffic_split.demoapp.demoappv10=90&routing.traffic_split.demoapp.demoappv11=10'
OK
demoapp-v1.0:demoapp-v1.1 = 98:7
demoapp-v1.0:demoapp-v1.1 = 98:8
demoapp-v1.0:demoapp-v1.1 = 99:8
demoapp-v1.0:demoapp-v1.1 = 100:8
demoapp-v1.0:demoapp-v1.1 = 101:8
demoapp-v1.0:demoapp-v1.1 = 102:8
demoapp-v1.0:demoapp-v1.1 = 103:8
demoapp-v1.0:demoapp-v1.1 = 104:8

1.2.3.3 动态调整权重50%

# curl -XPOST 'http://172.31.57.10:9901/runtime_modify?routing.traffic_split.demoapp.demoappv10=50&routing.traffic_split.demoapp.demoappv11=50'
OK
demoapp-v1.0:demoapp-v1.1 = 13:10
demoapp-v1.0:demoapp-v1.1 = 13:11
demoapp-v1.0:demoapp-v1.1 = 13:12
demoapp-v1.0:demoapp-v1.1 = 13:13
demoapp-v1.0:demoapp-v1.1 = 13:14
demoapp-v1.0:demoapp-v1.1 = 13:15
demoapp-v1.0:demoapp-v1.1 = 14:15
demoapp-v1.0:demoapp-v1.1 = 14:16
demoapp-v1.0:demoapp-v1.1 = 14:17
demoapp-v1.0:demoapp-v1.1 = 15:17
demoapp-v1.0:demoapp-v1.1 = 15:18
## 将所有流量切换到v1.1上
# curl -XPOST 'http://172.31.57.10:9901/runtime_modify?routing.traffic_split.demoapp.demoappv10=0&routing.traffic_split.demoapp.demoappv11=100'
OK
demoapp-v1.0:demoapp-v1.1 = 67:165
demoapp-v1.0:demoapp-v1.1 = 67:166
demoapp-v1.0:demoapp-v1.1 = 67:167
demoapp-v1.0:demoapp-v1.1 = 67:168
demoapp-v1.0:demoapp-v1.1 = 67:169
demoapp-v1.0:demoapp-v1.1 = 67:170
demoapp-v1.0:demoapp-v1.1 = 67:171
demoapp-v1.0:demoapp-v1.1 = 67:172
demoapp-v1.0:demoapp-v1.1 = 67:173
demoapp-v1.0:demoapp-v1.1 = 67:174
demoapp-v1.0:demoapp-v1.1 = 67:175
demoapp-v1.0:demoapp-v1.1 = 67:176
demoapp-v1.0:demoapp-v1.1 = 67:177
demoapp-v1.0:demoapp-v1.1 = 67:178
demoapp-v1.0:demoapp-v1.1 = 67:179

2. 流量镜像

主要是用来做测试,将流量转发至一个集群,同时再转发到另外一个集群(影子集群).原来集群任然承受100%流量

  • 无需等待影子集群返回响应
  • 支持手机影子集群的常规统计信息
  • 默认情况下,路由器会镜像所有请求;也可使用runtime_key参数配置转发的流量比例

2.1 docker-compose

六个Service:

  • envoy:Front Proxy,地址为172.31.60.10
  • 5个后端服务
    • demoapp-v1.0-1、demoapp-v1.0-2和demoapp-v1.0-3:对应于Envoy中的demoappv10集群
    • demoapp-v1.1-1和demoapp-v1.1-2:对应于Envoy中的demoappv11集群
version: '3'

services:
  front-envoy:
    image: envoyproxy/envoy-alpine:v1.21.5
    environment:
      - ENVOY_UID=0
      - ENVOY_GID=0
    volumes:
      - ./front-envoy.yaml:/etc/envoy/envoy.yaml
    networks:
      envoymesh:
        ipv4_address: 172.31.60.10
    expose:
      # Expose ports 80 (for general traffic) and 9901 (for the admin server)
      - "80"
      - "9901"

  demoapp-v1.0-1:
    image: ikubernetes/demoapp:v1.0
    hostname: demoapp-v1-0-1
    networks:
      envoymesh:
        aliases:
          - demoappv10
    expose:
      - "80"      
      
  demoapp-v1.0-2:
    image: ikubernetes/demoapp:v1.0
    hostname: demoapp-v1-0-2
    networks:
      envoymesh:
        aliases:
          - demoappv10
    expose:
      - "80"  
      
  demoapp-v1.0-3:
    image: ikubernetes/demoapp:v1.0
    hostname: demoapp-v1-0-3
    networks:
      envoymesh:
        aliases:
          - demoappv10
    expose:
      - "80" 
      
  demoapp-v1.1-1:
    image: ikubernetes/demoapp:v1.1
    hostname: demoapp-v1-1-1
    networks:
      envoymesh:
        aliases:
          - demoappv11
    expose:
      - "80"      
      
  demoapp-v1.1-2:
    image: ikubernetes/demoapp:v1.1
    hostname: demoapp-v1-1-2
    networks:
      envoymesh:
        aliases:
          - demoappv11
    expose:
      - "80"  

networks:
  envoymesh:
    driver: bridge
    ipam:
      config:
        - subnet: 172.31.60.0/24

2.2 envoy.yaml

通过request_mirror_policies定义将流量镜像给demoappv11

admin:
  profile_path: /tmp/envoy.prof
  access_log_path: /tmp/admin_access.log
  address:
    socket_address:
       address: 0.0.0.0
       port_value: 9901

layered_runtime:
  layers:
  - name: admin
    admin_layer: {
    
    }
       
static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address: {
    
     address: 0.0.0.0, port_value: 80 }
    filter_chains:
    - filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          stat_prefix: ingress_http
          codec_type: AUTO
          route_config:
            name: local_route
            virtual_hosts:
            - name: demoapp
              domains: ["*"]
              routes:
              - match:
                  prefix: "/"
                route:
                  cluster: demoappv10
                  request_mirror_policies:
                  - cluster: demoappv11
                    runtime_fraction:
                      default_value:
                        numerator: 20
                        denominator: HUNDRED
                      runtime_key: routing.request_mirror.demoapp
          http_filters:
          - name: envoy.filters.http.router

  clusters:
  - name: demoappv10
    connect_timeout: 0.25s
    type: STRICT_DNS
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: demoappv10
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: demoappv10
                port_value: 80

  - name: demoappv11
    connect_timeout: 0.25s
    type: STRICT_DNS
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: demoappv11
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: demoappv11
                port_value: 80

2.3 测试

2.3.1 前台显示

前台显示所有流量都通过v1.0进行响应

# ./send-request.sh 172.31.60.10
ServerName: demoapp-v1-0-2
ServerName: demoapp-v1-0-2
ServerName: demoapp-v1-0-1
ServerName: demoapp-v1-0-1
ServerName: demoapp-v1-0-3
ServerName: demoapp-v1-0-3
ServerName: demoapp-v1-0-1
ServerName: demoapp-v1-0-3
ServerName: demoapp-v1-0-2
ServerName: demoapp-v1-0-1
ServerName: demoapp-v1-0-2
ServerName: demoapp-v1-0-2
ServerName: demoapp-v1-0-1
ServerName: demoapp-v1-0-3
ServerName: demoapp-v1-0-1
ServerName: demoapp-v1-0-3
ServerName: demoapp-v1-0-2
ServerName: demoapp-v1-0-2
ServerName: demoapp-v1-0-3
ServerName: demoapp-v1-0-2

2.3.2 后台

后台查看,流量会有20%镜像给v1.1

demoapp-v1.1-2_1  |  * Running on http://0.0.0.0:80/ (Press CTRL+C to quit)
demoapp-v1.0-2_1  | 172.31.60.10 - - [08/Oct/2022 05:00:58] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-2_1  | 172.31.60.10 - - [08/Oct/2022 05:00:59] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-1_1  | 172.31.60.10 - - [08/Oct/2022 05:00:59] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-1_1  | 172.31.60.10 - - [08/Oct/2022 05:01:00] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-3_1  | 172.31.60.10 - - [08/Oct/2022 05:01:00] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-3_1  | 172.31.60.10 - - [08/Oct/2022 05:01:01] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-1_1  | 172.31.60.10 - - [08/Oct/2022 05:01:01] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-3_1  | 172.31.60.10 - - [08/Oct/2022 05:01:02] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-2_1  | 172.31.60.10 - - [08/Oct/2022 05:01:02] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-1_1  | 172.31.60.10 - - [08/Oct/2022 05:01:03] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-2_1  | 172.31.60.10 - - [08/Oct/2022 05:01:03] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-2_1  | 172.31.60.10 - - [08/Oct/2022 05:01:04] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.1-2_1  | 172.31.60.10 - - [08/Oct/2022 05:01:04] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-1_1  | 172.31.60.10 - - [08/Oct/2022 05:01:04] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-3_1  | 172.31.60.10 - - [08/Oct/2022 05:01:05] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-1_1  | 172.31.60.10 - - [08/Oct/2022 05:01:05] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.1-1_1  | 172.31.60.10 - - [08/Oct/2022 05:01:06] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-3_1  | 172.31.60.10 - - [08/Oct/2022 05:01:06] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-2_1  | 172.31.60.10 - - [08/Oct/2022 05:01:06] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.1-2_1  | 172.31.60.10 - - [08/Oct/2022 05:01:06] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.1-1_1  | 172.31.60.10 - - [08/Oct/2022 05:01:07] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-2_1  | 172.31.60.10 - - [08/Oct/2022 05:01:07] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-3_1  | 172.31.60.10 - - [08/Oct/2022 05:01:07] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-2_1  | 172.31.60.10 - - [08/Oct/2022 05:01:08] "GET /hostname HTTP/1.1" 200 -

2.3.3 调整镜像比例

将后镜像比例调整为50%.此时前台任然全部是v1.0进行响应,但后台流量2:1的赋值给了v1.1

# curl -XPOST 'http://172.31.60.10:9901/runtime_modify?routing.request_mirror.demoapp=50'
OK
# ./send-request.sh 172.31.60.10
ServerName: demoapp-v1-0-1
ServerName: demoapp-v1-0-1
ServerName: demoapp-v1-0-3
ServerName: demoapp-v1-0-2
demoapp-v1.1-1_1  | 172.31.60.10 - - [08/Oct/2022 05:01:06] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-3_1  | 172.31.60.10 - - [08/Oct/2022 05:01:06] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-2_1  | 172.31.60.10 - - [08/Oct/2022 05:01:06] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.1-2_1  | 172.31.60.10 - - [08/Oct/2022 05:01:06] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.1-1_1  | 172.31.60.10 - - [08/Oct/2022 05:01:07] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-2_1  | 172.31.60.10 - - [08/Oct/2022 05:01:07] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-3_1  | 172.31.60.10 - - [08/Oct/2022 05:01:07] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-2_1  | 172.31.60.10 - - [08/Oct/2022 05:01:08] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-1_1  | 172.31.60.10 - - [08/Oct/2022 05:05:28] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.1-2_1  | 172.31.60.10 - - [08/Oct/2022 05:05:28] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-1_1  | 172.31.60.10 - - [08/Oct/2022 05:05:29] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-3_1  | 172.31.60.10 - - [08/Oct/2022 05:05:29] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-2_1  | 172.31.60.10 - - [08/Oct/2022 05:05:30] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.1-1_1  | 172.31.60.10 - - [08/Oct/2022 05:05:30] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-1_1  | 172.31.60.10 - - [08/Oct/2022 05:05:30] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-1_1  | 172.31.60.10 - - [08/Oct/2022 05:05:31] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-3_1  | 172.31.60.10 - - [08/Oct/2022 05:05:31] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.1-2_1  | 172.31.60.10 - - [08/Oct/2022 05:05:32] "GET /hostname HTTP/1.1" 200 -
demoapp-v1.0-3_1  | 172.31.60.10 - - [08/Oct/2022 05:05:32] "GET /hostname HTTP/1.1" 200 -

猜你喜欢

转载自blog.csdn.net/qq_29974229/article/details/127275192