Nginx Ingress Controller trả về 404 Kubernetes

Aug 16 2020

Tôi đang cố gắng tạo một bộ điều khiển xâm nhập trỏ đến một dịch vụ mà tôi đã tiếp xúc qua NodePort.

Đây là tệp yaml cho bộ điều khiển xâm nhập (lấy từ 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

Tôi có thể kết nối trực tiếp với cổng nút và giao diện người dùng được hiển thị.

Xin lưu ý rằng tôi đang làm điều này vì ứng dụng giao diện người dùng không thể kết nối với các triển khai khác mà tôi đã tạo và tôi đọc rằng bộ điều khiển xâm nhập có thể giải quyết vấn đề. Tôi vẫn sẽ phải thêm proxy ngược Nginx chứ? Nếu vậy tôi sẽ làm điều đó như thế nào? Tôi đã thử thêm tệp này vào tệp cấu hình nginx nhưng không thành công.

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

Trả lời

2 Faheem Aug 16 2020 at 09:10

Bạn phải sử dụng tên máy chủ phù hợp để truy cập tuyến đường được xác định trong Ingressđối tượng. Cập nhật /etc/hoststệp của bạn hoặc sử dụng curl -H "hello-world.info" localhostlệnh loại. Ngoài ra, bạn có thể xóa hostánh xạ và chuyển hướng tất cả lưu lượng đến một dịch vụ mặc định.

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