Nginx Ingress Controller ส่งคืน 404 Kubernetes

Aug 16 2020

ฉันกำลังพยายามสร้างตัวควบคุมทางเข้าที่ชี้ไปที่บริการที่ฉันได้สัมผัสผ่าน NodePort

นี่คือไฟล์ yaml สำหรับตัวควบคุมทางเข้า (นำมาจากไฟล์ https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/):

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - host: hello-world.info
    http:
      paths:
      - path: /
        backend:
          serviceName: appName
          servicePort: 80

ฉันสามารถเชื่อมต่อโดยตรงกับพอร์ตโหนดและส่วนหน้าจะปรากฏขึ้น

โปรดทราบว่าฉันกำลังทำสิ่งนี้เนื่องจากแอปส่วนหน้าไม่สามารถเชื่อมต่อกับการปรับใช้อื่น ๆ ที่ฉันสร้างขึ้นและฉันอ่านว่าตัวควบคุมทางเข้าจะสามารถแก้ปัญหาได้ ฉันจะยังต้องเพิ่ม Nginx reverse proxy หรือไม่ ถ้าเป็นเช่นนั้นฉันจะทำอย่างไร? ฉันได้ลองเพิ่มสิ่งนี้ลงในไฟล์ config nginx แล้ว แต่ไม่สำเร็จ

location /middleware/ {
      proxy_pass http://middleware/;
   }

คำตอบ

2 Faheem Aug 16 2020 at 09:10

คุณต้องใช้ชื่อโฮสต์ที่เหมาะสมเพื่อเข้าถึงเส้นทางที่กำหนดไว้ในIngressออบเจ็กต์ อัปเดต/etc/hostsไฟล์ของคุณหรือใช้curl -H "hello-world.info" localhostคำสั่ง type หรือคุณสามารถลบการhostแมปและเปลี่ยนเส้นทางการรับส่งข้อมูลทั้งหมดไปยังบริการเริ่มต้นเดียว

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: appName
          servicePort: 80