Score:0

Istio TCP Global อัตราจำกัด

ธง in

ฉันกำลังพยายามใช้ขีดจำกัดอัตราสากลสำหรับการเชื่อมต่อ tcp ผ่านเกตเวย์ istio ingressฉันได้ปฏิบัติตามเอกสารอย่างเป็นทางการสำหรับการใช้บริการตัวจำกัดอัตรา http ทั่วโลกและจัดการเพื่อให้ใช้งานได้ https://istio.io/latest/docs/tasks/policy-enforcement/rate-limit/แต่ไม่รองรับการเชื่อมต่อ TCP

นี่คือการกำหนดค่าขีด จำกัด อัตรา http

รุ่น api: networking.istio.io/v1alpha3
ประเภท: EnvoyFilter
ข้อมูลเมตา:
  ชื่อ: filter-ratelimit
  #namespace: istio-ingress
ข้อมูลจำเพาะ:
  ตัวเลือกภาระงาน:
    # เลือกตามป้ายกำกับในเนมสเปซเดียวกัน
    ป้ายกำกับ:
      istio: ทางเข้า
  configPatch:
    # การกำหนดค่าทูตที่คุณต้องการแก้ไข
    - ใช้กับ: HTTP_FILTER
      จับคู่:
        บริบท: เกตเวย์
        ผู้ฟัง:
          ห่วงโซ่ตัวกรอง:
            กรอง:
              ชื่อ: "envoy.filters.network.http_connection_manager"
              ตัวกรองย่อย:
                ชื่อ: "ทูต.ตัวกรอง.http.เราเตอร์"
      ปะ:
        การดำเนินการ: INSERT_BEFORE
        # เพิ่มตัวกรองขีด จำกัด อัตราทูตในห่วงโซ่ตัวกรอง HTTP
        ค่า:
          ชื่อ: envoy.filters.http.ratelimit
          พิมพ์_config:
            "@type": type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit
            # โดเมนเป็นอะไรก็ได้! จับคู่กับการกำหนดค่าบริการ ratelimter
            โดเมน: ctfd-ratelimit
            failure_mode_deny: จริง
            หมดเวลา: 10 วินาที
            อัตรา_จำกัด_บริการ:
              grpc_service:
                ทูต_grpc:
                  ชื่อคลัสเตอร์: rate_limit_cluster
                หมดเวลา: 10 วินาที
              transport_api_version: V3
    - ใช้กับ: CLUSTER
      จับคู่:
        บริบท: เกตเวย์
        กลุ่ม:
          บริการ: ratelimit.istio-ingress.svc.cluster.local
      ปะ:
        การดำเนินการ: เพิ่ม
        # เพิ่มคลัสเตอร์บริการจำกัดอัตราสำหรับบริการจำกัดอัตราที่กำหนดไว้ในขั้นตอนที่ 1
        ค่า:
          ชื่อ: rate_limit_cluster
          ประเภท: STRICT_DNS
          connect_timeout: 10 วินาที
          lb_policy: ROUND_ROBIN
          http2_protocol_options: {}
          load_assignment:
            ชื่อคลัสเตอร์: rate_limit_cluster
            จุดสิ้นสุด:
            - lb_endpoints:
              - จุดสิ้นสุด:
                  ที่อยู่:
                    ที่อยู่ socket_:
                      ที่อยู่: ratelimit.istio-ingress.svc.cluster.local
                      port_value: 8081
รุ่น api: networking.istio.io/v1alpha3
ประเภท: EnvoyFilter
ข้อมูลเมตา:
  ชื่อ: filter-ratelimit-svc
  #namespace: istio-ingress
ข้อมูลจำเพาะ:
  ตัวเลือกภาระงาน:
    ป้ายกำกับ:
      istio: ทางเข้า
  configPatch:
    - ใช้กับ: VIRTUAL_HOST
      จับคู่:
        บริบท: เกตเวย์
        เส้นทางการกำหนดค่า:
          vhost:
            ชื่อ: ""
            เส้นทาง:
              การกระทำ: อะไรก็ได้
      ปะ:
        การดำเนินการ: ผสาน
        # ใช้กฎการจำกัดอัตรา
        ค่า:
          อัตรา_จำกัด:
            - การกระทำ: # การกระทำใด ๆ ในที่นี่
              - request_headers:
                  header_name: ":เส้นทาง"
                  descriptor_key: "เส้นทาง"
api เวอร์ชัน: v1
ประเภท: ConfigMap
ข้อมูลเมตา:
  ชื่อ: ratelimit-config
ข้อมูล:
  config.yaml: |
    โดเมน: tcp-ratelimit
    คำอธิบาย:
      - คีย์: เส้นทาง
        อัตรา_จำกัด:
          หน่วย: นาที
          request_per_unit: 1

ฉันได้เริ่มเปลี่ยนการอ้างอิงตัวกรองทูตให้เป็นไปตามเครือข่ายมากขึ้น แต่ฉันไม่แน่ใจว่าฉันขาดอะไรอีกหรือว่านี่เป็นวิธีที่ถูกต้องหรือไม่ นี่คือสิ่งที่ฉันเปลี่ยนจากการกำหนดค่าก่อนหน้าจนถึงตอนนี้

รุ่น api: networking.istio.io/v1alpha3
ประเภท: EnvoyFilter
ข้อมูลเมตา:
  ชื่อ: filter-ratelimit
  #namespace: istio-ingress
ข้อมูลจำเพาะ:
  ตัวเลือกภาระงาน:
    # เลือกตามป้ายกำกับในเนมสเปซเดียวกัน
    ป้ายกำกับ:
      istio: ทางเข้า
  configPatch:
    # การกำหนดค่าทูตที่คุณต้องการแก้ไข
    - ใช้กับ: NETWORK_FILTER
      จับคู่:
        บริบท: เกตเวย์
        ผู้ฟัง:
          ห่วงโซ่ตัวกรอง:
            กรอง:
              ชื่อ: "envoy.filters.network.ratelimit"
      ปะ:
        การดำเนินการ: INSERT_BEFORE
        # เพิ่มตัวกรองขีด จำกัด อัตราทูตในห่วงโซ่ตัวกรอง HTTP
        ค่า:
          ชื่อ: envoy.filters.network.ratelimit
          พิมพ์_config:
            "@type": type.googleapis.com/envoy.extensions.filters.network.ratelimit.v3.RateLimit
            # โดเมนเป็นอะไรก็ได้! จับคู่กับการกำหนดค่าบริการ ratelimter
            โดเมน: tcp-ratelimit
            failure_mode_deny: จริง
            หมดเวลา: 10 วินาที
            อัตรา_จำกัด_บริการ:
              grpc_service:
                ทูต_grpc:
                  ชื่อคลัสเตอร์: rate_limit_cluster
                หมดเวลา: 10 วินาที
              transport_api_version: V3
    - ใช้กับ: CLUSTER
      จับคู่:
        บริบท: เกตเวย์
        กลุ่ม:
          บริการ: ratelimit.istio-ingress.svc.cluster.local
      ปะ:
        การดำเนินการ: เพิ่ม
        # เพิ่มคลัสเตอร์บริการจำกัดอัตราสำหรับบริการจำกัดอัตราที่กำหนดไว้ในขั้นตอนที่ 1
        ค่า:
          ชื่อ: rate_limit_cluster
          ประเภท: STRICT_DNS
          connect_timeout: 10 วินาที
          lb_policy: ROUND_ROBIN
          http2_protocol_options: {}
          load_assignment:
            ชื่อคลัสเตอร์: rate_limit_cluster
            จุดสิ้นสุด:
            - lb_endpoints:
              - จุดสิ้นสุด:
                  ที่อยู่:
                    ที่อยู่ socket_:
                      ที่อยู่: ratelimit.istio-ingress.svc.cluster.local
                      port_value: 8081

สิ่งที่ฉันพยายามทำเป็นไปได้ไหม

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา