dapr+envoy部署

docker-compose.yml

version: '3.4'

services:
  client:
    image: ${DOCKER_REGISTRY-}client
    build:
      context: .
      dockerfile: Client/Dockerfile
    networks:
      - daprdemo
  client-dapr:
    image: "daprio/daprd:1.13.2"
    depends_on:
      - client
    network_mode: "service:client"
    networks:
      - daprdemo

  server:
     image: ${DOCKER_REGISTRY-}server
     build:
       context: .
       dockerfile: Dapr.Server/Dockerfile
     networks:
       - daprdemo

  server-dapr:
     image: "daprio/daprd:1.13.2"
     depends_on:
       - server
     networks:
       - daprdemo
     network_mode: "service:server"

  envoy:
     image: envoyproxy/envoy:v1.28.0
     networks:
       - daprdemo

  envoy-dapr:
     image: "daprio/daprd:1.13.2"
     depends_on:
       - envoy
     networks:
       - daprdemo
     network_mode: "service:envoy"

  dapr-placement:
    image: "daprio/dapr:1.13.2"
networks:
  daprdemo:
    external: false
    name: daprdemo

docker-compose.override.yml

version: '3.4'

services:
  client:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    ports:
      - "6001:80"
  client-dapr:
    command: ["./daprd",
      "-app-id", "client",
      "-app-port", "80",
      "-placement-host-address", "dapr-placement:50000",
      "-components-path", "/components",
      "-config", "/configuration/config.yaml"
      ]
    volumes:
      - "./dapr/components/:/components"
      - "./dapr/configuration/:/configuration"

  server:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    ports:
      - "7001:80"
  server-dapr:
    command: ["./daprd",
      "-app-id", "server",
      "-app-port", "80",
      "-placement-host-address", "dapr-placement:50000",
      "-components-path", "/components",
      "-config", "/configuration/config.yaml"
      ]
    volumes:
      - "./dapr/components/:/components"
      - "./dapr/configuration/:/configuration"

  envoy:
    ports:
      - "8888:80"
    volumes:
      - "./envoy.yaml/:/etc/envoy/envoy.yaml"
  envoy-dapr:
    command: ["./daprd",
      "-app-id", "envoy",
      "-app-port", "80",
      "-placement-host-address", "dapr-placement:50000",
      "-components-path", "/components",
      "-config", "/configuration/config.yaml"
      ]
    volumes:
      - "./dapr/components/:/components"
      - "./dapr/configuration/:/configuration"

  dapr-placement:
    command: ["./placement", "-port", "50000", "-log-level", "debug"]
    ports:
      - "50000:50000"

envoy.yaml

# envoy.yaml
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
                access_log:
                  - name: envoy.access_loggers.stdout
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
                http_filters: # 定义http过滤器链
                  - name: envoy.filters.http.router # 调用7层的路由过滤器
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
                route_config:
                  name: local_route
                  virtual_hosts:
                    - name: backend
                      domains:
                        - "*"
                      routes:
                        - match:
                            prefix: "/c/"
                          route:
                            auto_host_rewrite: true
                            prefix_rewrite: "/v1.0/invoke/client/method/"
                            cluster: dapr
                        - match:
                            prefix: "/s/"
                          route:
                            auto_host_rewrite: true
                            prefix_rewrite: "/v1.0/invoke/server/method/"
                            cluster: dapr
  clusters: 
    - name: dapr
      connect_timeout: 0.25s
      type: STRICT_DNS
      dns_lookup_family: V4_ONLY
      lb_policy: ROUND_ROBIN
      load_assignment:
        cluster_name: dapr
        endpoints:
          - lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: 127.0.0.1
                      port_value: 3500

docker-compose运行

docker-compose  -f "C:\Users\用户\source\repos\DaprDemo\docker-compose.yml" -f "C:\Users\用户\source\repos\DaprDemo\docker-compose.override.yml" -f "C:\Users\用户\source\repos\DaprDemo\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose16114709943373327819 --ansi never up -d --no-build

访问

http://localhost:8888/c/swagger/index.html

源码地址

https://pan.baidu.com/s/1lE6OnfDbmzdKQF65wOan0g
提取码:a752

posted @ 2024-05-21 10:11  七星飘虫  阅读(25)  评论(0)    收藏  举报