# Ingress는 서비스 이름만 바꿔서 동일한 pod를 실행 시킬수 있다.
아래는 예시이다.
NAME CLASS HOSTS ADDRESS PORTS AGE
api-ingress <none> * k8s-.ap-northeast-2.elb.amazonaws.com 80 3d23h
web-ingress <none> * k8s-.ap-northeast-2.elb.amazonaws.com 80 5d23h
web-ingress-test-alb <none> * k8s-.ap-northeast-2.elb.amazonaws.com 80 5m11s
위의 내용을 보면 web-ingress,api-ingress와 web-ingress-test-alb는 같은 서비스를 실행한 것이다.
web-ingress-test-alb는 2개의 api와 2개의 컨테이너를 맵핑한 결과이고, 나머지 web-ingress,api-ingress와 web-ingress-test-alb는 2개의 api 컨테이너를 각각 하나씩 올린것 이라고 볼 수 있다. 결국에는 2개를 한꺼번에 ingress로 올리느냐 아니면 각각 하나하나씩 서비스를 따로따로 올리느냐만 다르고 서비스는 같다고 볼 수 있다.
아래의 실행 코드를 보면 명확히 구분이 가능하다.
web-ingress-test-alb는 두개의 api를 컨테이너와 맵핑하여 실행한 것이고, 나머지는 개별로 하나하나씩 api를 컨테이너와 맵핑한 코드이다.
web-ingress-test-alb
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web-ingress-test-alb
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: instance
namespace: namespace
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: "web-service"
port:
number: 80
- path: /api
pathType: Prefix
backend:
service:
name: "api-service-alb"
port:
number: 9999
web-ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web-ingress
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: instance
namespace: namespace
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: "web-service"
port:
number: 80
api-ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: api-ingress
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: instance
namespace: namespace
spec:
rules:
- http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: "api-service-alb"
port:
number: 9999
결론은 ingress는 이름만 다르게 생성하면 여러개를 만들수 있다. ALB 이름은 다르지만 불러오는 서비스는 같은 종류의 로드밸런서를 여러개 생성 할 수 있다는 뜻이다. 유연한 서비스 연계와 테스트가 가능한 부분이라고 할 수 있다.
# 위의 서비스 구성내용은 아래와 같다. (ingress를 여러개 생성 후 내부 서비스 맵핑)
- 위와같이 하나의 ingress가 가변적인 api를 호출할 수 있다. 하나만 호출할수도 있고 다수의 api를 호출할 수도 있다. 이것은 ingeress의 주소만 다르게 하면 새로운 ALB가 생성되기 때문에 동일한 api서비스여도 같은 서비스를 가변적으로 생성 할 수 있다는 의미이다.
- 끝 -
'⭐ Kubernetes & EKS > Ingress (잉그레스)' 카테고리의 다른 글
Ingress 잉그레스 관련 사이트 모음 (0) | 2023.03.17 |
---|---|
Ingress Annotation을 활용한 ssl 적용하기 (0) | 2022.11.01 |
Ingress에 대한 이해가 안되는 내용 (0) | 2022.10.31 |
Ingress와 api의 관계에 대한 설명 (0) | 2022.10.25 |
Ingress의 동작구조 살펴보기 (0) | 2022.07.11 |