Score:0

เกตเวย์ขาเข้าของ Istio ไม่สามารถเชื่อมต่อกับแบบจำลองมากกว่าหนึ่งรายการสำหรับบริการหนึ่งๆ

ธง in

ฉันกำลังตั้งค่า Istio ในคลัสเตอร์ AWS EKS ใหม่ และสร้างการปรับใช้ nginx พื้นฐานเพื่อทดสอบ เมื่อการปรับใช้มีเพียงหนึ่งเรพลิกา จะทำงานอย่างสมบูรณ์ ตอบสนองในเวลาน้อยกว่า 100 มิลลิวินาที เมื่อฉันเพิ่มหนึ่งแบบจำลอง เวลาตอบสนองของพ็อดใหม่จะเพิ่มขึ้นอย่างบ้าคลั่ง เฉลี่ยประมาณ 10 วินาที

ตามคำแนะนำจากที่อื่น ฉันได้อัปเดต การกำหนดค่าตาข่าย เพื่อปิดใช้งานการลองใหม่อัตโนมัติ:

การกำหนดค่าตาข่าย:
   นโยบายเริ่มต้น HttpRetry: {}

หลังจากสิ่งนี้เกิดขึ้น ฉันพบว่าคำขอไปยังพ็อดที่สองมักจะล้มเหลว:

"GET / HTTP/1.1" 503 UF upstream_reset_before_response_started{connection_failure} - "-" 0 91 10003 - "108.249.9.111,10.1.0.117" "curl/7.68.0" "6fa51be8-1441-4454-8d 1b-a03c93b257"c" "c" example.com" "10.1.52.62:80" ขาออก|80||nginx.my-namespace.svc.cluster.local - 10.1.108.189:8080 10.1.0.117:21410 - -

การตั้งค่าของฉันมีดังต่อไปนี้:

# AWS ALB Ingress -> istio-ingressgateway (ClusterIP) -> เกตเวย์ -> virtualservice -> บริการ -> nginx

apiVersion: networking.istio.io/v1beta1
ชนิด: เกตเวย์
ข้อมูลเมตา:
  ชื่อ: ค่าเริ่มต้น
ข้อมูลจำเพาะ:
  ตัวเลือก:
    istio: ingressgateway
  เซิร์ฟเวอร์:
  - ท่า:
      จำนวน: 80
      ชื่อ: http
      โปรโตคอล: HTTP
    เจ้าภาพ:
    - "*"

---

apiVersion: networking.istio.io/v1beta1
ชนิด: VirtualService
ข้อมูลเมตา:
  ชื่อ: nginx
ข้อมูลจำเพาะ:
  เจ้าภาพ:
  - "example.com"
  เกตเวย์:
  - ค่าเริ่มต้น
  http:
  - เส้นทาง:
    - ปลายทาง:
        โฮสต์: nginx

---

api เวอร์ชัน: v1
ชนิด:บริการ
ข้อมูลเมตา:
  ชื่อ: nginx
  ป้ายกำกับ:
    แอพ: nginx
ข้อมูลจำเพาะ:
  ตัวเลือก:
    แอพ: nginx
  พอร์ต:
    - พอร์ต: 80
      ชื่อ: http

---
apiVersion: แอป/v1
ประเภท: การปรับใช้
ข้อมูลเมตา:
  ชื่อ: nginx
  ป้ายกำกับ:
    แอพ: nginx
    รุ่น: v1
ข้อมูลจำเพาะ:
  แบบจำลอง: 2
  revisionHistoryLimit: 1
  ตัวเลือก:
    ป้ายกำกับการแข่งขัน:
      แอพ: nginx
      รุ่น: v1
  แม่แบบ:
    ข้อมูลเมตา:
      ป้ายกำกับ:
        แอพ: nginx
        รุ่น: v1
    ข้อมูลจำเพาะ:
      ตู้คอนเทนเนอร์:
        - ชื่อ: nginx
          ภาพ: nginx: ล่าสุด
          พอร์ต:
            - ตู้คอนเทนเนอร์พอร์ต: 80
          ทรัพยากร:
            คำขอ:
              หน่วยความจำ: 100Mi
              ซีพียู: 100 ม
            ขีด จำกัด :
              หน่วยความจำ: 1500Mi
              ซีพียู: 1,000 ม

รุ่น:

รุ่น $ istioctl
เวอร์ชันไคลเอนต์: 1.13.2
รุ่นเครื่องบินควบคุม: 1.13.2
เวอร์ชันดาต้าเพลน: 1.13.2 (1 พร็อกซี)


รุ่น $ kubectl --short
เวอร์ชันไคลเอ็นต์: v1.21.11
เวอร์ชันเซิร์ฟเวอร์: v1.21.5-eks-bc4871b
Score:0
ธง in

ฉันพบว่าปัญหาของฉันเกิดจากกฎกลุ่มความปลอดภัยที่กำหนดค่าไม่ถูกต้องสำหรับโหนด ฉันไม่อนุญาตให้โหนดรับส่งข้อมูลโหนด ป้องกันไม่ให้เกตเวย์ istio ingress สื่อสารกับพ็อดในโหนดอื่น

เมื่อใช้โมดูล AWS EKS Terraform ฉันได้เพิ่มสิ่งต่อไปนี้:


  node_security_group_additional_rules = {

    ingress_self_all = {
      คำอธิบาย = "โหนดไปยังโหนดพอร์ต/โปรโตคอลทั้งหมด"
      โปรโตคอล = "-1"
      from_port = 0
      to_port = 0
      พิมพ์ = "ทางเข้า"
      ตัวตน = ความจริง
    }
    egress_all = {
      คำอธิบาย = "โหนดขาออกทั้งหมด"
      โปรโตคอล = "-1"
      from_port = 0
      to_port = 0
      พิมพ์ = "ขาออก"
      cidr_blocks = ["0.0.0.0/0"]
    }
  }

โพสต์คำตอบ

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