title: Istio 설치 in production 환경
description: test 환경이 아닌 production 환경에 대한 kiali, jaeger등의 istio eco system 설치를 논한 문서는 생각 외로 찾기 어렵다. 기준이 되는 istio 공식 문서는 친절한 편이 아니라, istio package 간의 연결 구조 및 설치 세부 항목에 대해 잘 알지 않으면 해당 문서만으로는 쉽지 않다. istio 자체 설치에 대해 공식 문서를 기반으로 논한다.
cleanUrl: /sw-engineer/install-istio-in-production
floatFirstTOC: right
test 환경이 아닌 production 환경에 대한 kiali
, jaeger
등의 istio
eco system 설치를 논한 문서는 생각 외로 찾기 어렵다. 기준이 되는 istio
공식 문서는 친절한 편이 아니라, istio
package 간의 연결 구조 및 설치 세부 항목에 대해 잘 알지 않으면 해당 문서만으로는 쉽지 않다.
여기서는 일단 istio
자체 설치에 대해 공식 문서를 기반으로 논하고, 이후 kiali
, jaeger
, prometheus
, grafana
설치에 대해 논한다.
istio-system
으로 한다.values.yaml
에 jaeger collector 주소를 정확히 설정한다. 되도록이면 traceSampling
도 함께.다음은 istio가 제공하는 전체 component 목록 및 component 별 선정 여부 및 근거.
**istiod**
**istio-ingressgateway**
**istio-egressgateway**
istio-ingressgateway
의 반대로서, cluster 외부로의 모든 outbound taffic에 대한 gateway설치 방법 선정 기준은 설정 가시성을 최대화하면서 최대한 일반적 k8s 설치 방법을 따르는 것이다.
아래는 공식 문서에서 논하는 3가지 설치 방법으로, 아래 논의 결과에 따라 helm
을 이용한 설치를 사용한다.
**istioctl**
istioctl
은 운영 시 결국은 사용하게 되지만, 환경 별 variation에 대한 설정 가시성이 좋지 않다(특히, 상당부분을 차지하는 ConfigMap
의 문자열로 관리되는 각종 설정. 이로 인해 Kustomize
로도 환경 별 variation을 추출할 수 없다. e.g. **PILOT_TRACE_SAMPLING**
).**helm**
istioctl
에 대비 설정에 대한 가시성이 뛰어나다(앞서 예를 든 PILOT_TRACE_SAMPLING
경우 pilot.traceSampling
항목으로 수정 가능)