
저는 프런트엔드, 백엔드 및 DB 서비스를 포함하는 매우 간단한 Kubernetes 클러스터를 설정하려고 합니다. 다음은 프런트엔드 서비스 정의 파일의 일부입니다.
apiVersion: v1
kind: Service
metadata:
name: frontend
labels:
tier: frontend
spec:
selector:
tier: frontend
ports:
- port: 80
nodePort: 30080
type: LoadBalancer
포트 30080에서 클러스터의 IP에 액세스하면 모든 것이 제대로 작동합니다.
이제 Azure에 클러스터 배포를 준비하기 위해 포트 80에서 작동하는 Ingress를 설정하려고 합니다. 모든 HTTP 트래픽을 프런트엔드로 보내고 싶습니다. 이것이 내 클러스터의 유일한 HTTP 서비스이기 때문입니다. 따라서 수신 정의 파일은 다음과 같습니다.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: zippori
annotations:
kubernetes.io/ingress.class: addon-http-application-routing
spec:
backend:
serviceName: frontend
servicePort: 80
그러나 내가 접속할 때http://minikube-ip다음과 같은 매우 간단한 오류가 발생합니다.
기본 백엔드 - 404
이는 마치 Ingress가 내 프런트엔드에 아무 것도 전달하지 않고 자체 기본 백엔드만 시도하는 것과 같습니다.
이 문제를 어떻게 해결할 수 있나요?
답변1
문제는 Ingress 서비스에 있습니다.
Ingress 종류 yaml에서는 주석을 사용하여 "ingress 백엔드"를 정의하고 있습니다. AKS의 경우 "addon-http-application-routing"이지만 minikube의 경우 기본적으로 작동하는 것은 다음과 같습니다.kubernetes.io/ingress.class: nginx
적절한 주석으로 Ingress를 업데이트하면 minikube 설정에 대한 서비스가 활성화됩니다.