해결된 질문
작성
·
97
0
k8s 클러스터에 Movie 서비스 외 Music 서비스를 추가하는 경우
istio에서 어떻게 해야 할지 궁금합니다
1) movie 서비스와 music 서비스가 서로 다른 IP를 사용하는 경우
LB에 의한 external IP를 할당해야 하는 데
ingress-gateway 를 2개 설치해야 하는 건가요 ??
여러 개 설치하는 것이 가능한지 ? 그리고 이것이 일반적인 접근인지 궁금합니다
2) movie 서비스와 music 서비스가 동일 IP에 서로 다른 port를 사용하는 경우
ingress-gateway 1개로 처리가 가능할 것 같은 데
gateway 나 virtualservice 를 어떤 형태로 정의해야 하는 지 궁금합니다
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
mw50.jeong님,
Kubernetes 클러스터에서 Istio를 사용하여 Movie 서비스와 Music 서비스를 추가하는 방법에 대해 설명드리겠습니다:
1) Movie 서비스와 Music 서비스가 서로 다른 IP를 사용하는 경우
여러 external IP를 사용하는 경우, 두 개의 ingress-gateway
를 설치해야 할 수 있습니다. Istio는 여러 개의 ingress-gateway
를 지원하며, 이러한 설정은 다중 테넌시 환경에서 일반적인 접근 방법입니다.
- ingress-gateway
를 여러 개 설치하는 것은 가능합니다.
- 각 서비스마다 독립적인 ingress-gateway
를 구성하여 서비스를 격리하고 관리할 수 있습니다.
예시:
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
name: external-istio-ingressgateway
spec:
components:
ingressGateways:
- name: istio-ingressgateway-movie
enabled: true
label:
istio: ingressgateway-movie
- name: istio-ingressgateway-music
enabled: true
label:
istio: ingressgateway-music
2) Movie 서비스와 Music 서비스가 동일 IP에 서로 다른 port를 사용하는 경우
하나의 ingress-gateway
를 사용해도 됩니다. 이 경우, gateway와 virtualservice를 적절히 정의하여 각 포트에 대한 라우팅 규칙을 설정하면 됩니다.
예시로 Gateway와 VirtualService를 다음과 같이 정의할 수 있습니다:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: movie-music-gateway
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
- port:
number: 8080 # Music service 포트
name: http-music
protocol: HTTP
hosts:
- "*"
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: movie-service
spec:
hosts:
- "*"
gateways:
- movie-music-gateway
http:
- match:
- port: 80
route:
- destination:
host: movie-service.default.svc.cluster.local
port:
number: 80
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: music-service
spec:
hosts:
- "*"
gateways:
- movie-music-gateway
http:
- match:
- port: 8080
route:
- destination:
host: music-service.default.svc.cluster.local
port:
number: 8080
이와 같이 각 서비스에 대해 개별적인 Gateway와 VirtualService를 정의하여 포트별로 라우팅을 설정할 수 있습니다.
더 자세한 정보는 Istio Documentation을 참조하시기 바랍니다.
감사합니다.