설치 및 초기 설정

이 문서에서는 Amazon EKS 클러스터에 Istio를 설치하고 초기 설정하는 방법을 다룹니다.

목차

사전 요구 사항

Istio를 설치하기 전에 다음 요구 사항을 충족해야 합니다:

1. Amazon EKS 클러스터

  • Kubernetes 버전: 1.28 이상 (권장: 1.34)

  • 노드 유형: 최소 2개의 워커 노드 (권장: 3개 이상)

  • 노드 크기: 최소 2 vCPU, 4GB RAM (권장: t3.medium 이상)

2. kubectl 설치 및 구성

3. 필요한 도구

  • AWS CLI: 2.x 이상

  • eksctl: (선택 사항) 클러스터 관리를 위해

  • Helm: 3.x 이상 (Helm 설치 방법을 사용하는 경우)

4. 클러스터 리소스

최소 리소스 요구 사항:

  • Control Plane: 1 vCPU, 1.5GB RAM

  • Sidecar (per pod): 0.1 vCPU, 128MB RAM

설치 방법 선택

Istio는 세 가지 주요 설치 방법을 제공합니다:

방법
장점
단점
권장 사용 사례

istioctl

간단하고 빠름, 검증 기능 제공

자동화 어려움

개발 및 테스트 환경

Helm

GitOps 친화적, 버전 관리 용이

구성 복잡할 수 있음

프로덕션 환경, CI/CD 파이프라인

Istio Operator

선언적 관리, 자동 업그레이드

추가 리소스 필요

대규모 프로덕션 환경

istioctl을 사용한 설치

istioctl은 Istio의 공식 CLI 도구로, 가장 간단한 설치 방법입니다.

1. istioctl 설치

2. 설치 전 클러스터 검증

3. Istio 설치

4. 설치 확인

Helm을 사용한 설치

Helm은 Kubernetes 패키지 매니저로, GitOps 워크플로우에 적합합니다.

1. Helm 저장소 추가

2. istio-base 설치

istio-base는 Istio의 CRD(Custom Resource Definitions)를 설치합니다.

3. istiod 설치

istiod는 Istio Control Plane입니다.

4. Istio Ingress Gateway 설치 (선택 사항)

5. values.yaml을 사용한 커스텀 설치

Istio Operator를 사용한 설치

Istio Operator는 선언적 방식으로 Istio를 관리합니다.

1. Istio Operator 설치

2. IstioOperator 리소스 생성

3. Operator를 통한 Istio 설치

설치 프로필

Istio는 다양한 사용 사례에 맞는 여러 프로필을 제공합니다.

사용 가능한 프로필

프로필
설명
구성 요소
권장 사용

default

프로덕션 배포용 기본 설정

istiod, ingress gateway

대부분의 프로덕션 환경

demo

모든 기능 활성화, 학습용

istiod, ingress gateway, egress gateway, 높은 추적 샘플링

개발 및 데모

minimal

최소한의 구성 요소만 설치

istiod only

리소스 제약 환경

remote

Multi-cluster 환경의 원격 클러스터

-

Multi-cluster 설정

empty

기본 구성 없음

-

완전한 커스텀 설정

preview

실험적 기능 포함

다양한 실험적 기능

테스트 환경

프로필 확인

프로필별 설치

프로필 커스터마이징

설치 검증

1. Control Plane 확인

2. Istio 버전 확인

3. Istio 구성 검증

4. Webhook 확인

샘플 애플리케이션 배포

Istio에는 Bookinfo라는 샘플 애플리케이션이 포함되어 있습니다.

1. 네임스페이스에 Sidecar 자동 주입 활성화

2. Bookinfo 애플리케이션 배포

3. 애플리케이션 접근 확인

4. Ingress Gateway 구성

5. 외부 접근 설정

Istio 제거

istioctl을 사용한 제거

Helm을 사용한 제거

Istio Operator를 사용한 제거

문제 해결

일반적인 문제

1. Sidecar 자동 주입 실패

증상: 파드에 Envoy sidecar가 주입되지 않음

해결 방법:

2. istiod 파드가 시작되지 않음

증상: istiod 파드가 Pending 또는 CrashLoopBackOff 상태

해결 방법:

3. Ingress Gateway가 External IP를 받지 못함

증상: LoadBalancer 타입 서비스가 Pending 상태

해결 방법:

디버깅 도구

istioctl analyze

istioctl proxy-status

istioctl dashboard

로그 수집

다음 단계

Istio 설치가 완료되었습니다! 이제 다음 문서를 참고하여 Istio를 활용해보세요:

  1. 기본 개념: Istio의 핵심 개념과 아키텍처 이해

  2. Traffic Management: Gateway, VirtualService, DestinationRule 학습

  3. Security: mTLS, 인증, 권한 부여 설정

참고 자료

마지막 업데이트