Nginx Ingress Controller ส่งคืน 404 Kubernetes
ฉันกำลังพยายามสร้างตัวควบคุมทางเข้าที่ชี้ไปที่บริการที่ฉันได้สัมผัสผ่าน 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/;
}
คำตอบ
คุณต้องใช้ชื่อโฮสต์ที่เหมาะสมเพื่อเข้าถึงเส้นทางที่กำหนดไว้ใน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