경로에 따라서 라우팅을 할 수 있도록 ALB Ingress를 작성하고 싶었습니다.
하지만 www.example.com/nginx 를 할 때마다 계속 404 에러가 났습니다. (jenkins 포함)
왜 에러가 났는지 포스팅하겠습니다.
해당 Ingress 파일 내용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
namespace: kube-system
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: instance
spec:
rules:
- host: www.example.com
http:
paths:
- path: /jenkins
pathType: Prefix
backend:
serviceName: jenkins-svc
servicePort: 443
- path: /nginx
pathType: Prefix
backend:
serviceName: nginx-svc
servicePort: 443
|
cs |
$ kubectl logs -f <NGINX_POD_NAME>
xxx.xxx.xxx.xxx - - [20/Dec/2021:05:32:53 +0000] "GET /nginx HTTP/1.1" 404 555 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xxx.xxx.xxx.xxx Safari/xxx.xxx" "xxx.xxx.xxx.xxx"
2021/12/20 05:32:53 [error] 37#37: *345 open() "/usr/share/nginx/html/nginx" failed (2: No such file or directory), client: xxx.xxx.xxx.xxx, server: localhost, request: "GET /nginx HTTP/1.1", host: "www.example.com"
alb ingress는 path를 수정하지 않고 그대로 전달하기 때문에 목적지 pod에 /nginx 디렉터리가 있어야 합니다.
/nginx -> / 으로 Re Write 하고 싶다면 Ingress Nginx Controller의 rewrite 기능이 있습니다.
참고: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#rewrite
'DevOps > Kubernetes' 카테고리의 다른 글
[EKS] eksctl create cluster yaml file 생성 (0) | 2022.03.18 |
---|---|
[EKS] AWS EBS 볼륨을 K8S PV로 사용 (0) | 2021.12.22 |
[ECS] Fargate 사용해보기 (0) | 2021.09.05 |
[EKS] alb-ingress-controller 사용해보기 (0) | 2021.08.31 |
[EKS] nginx-ingress-controller, NLB 사용해보기 (3) | 2021.08.25 |