💻
DevOps Cookbook
  • Home
    • Meiko DevOps Cookbook
  • Gitlab
    • Tips
      • 사전 정의된 CI/CD 변수의 기본 세트
    • 딥다이브 Gitlab CI/CD
      • GitLab CI/CD 시작하기
        • .gitlab-ci.yml 파일
        • Runner
        • 파이프라인
        • CI/CD 변수
        • CI/CD 컴포넌트
      • CI/CD YAML 구문 참조
    • CI/CD Notifications
      • CI/CD slack notifiaction 구축작업 결과
  • Kubernetes
    • Persistence Volume
      • play-cluster
    • Ingress
      • Ingress란
      • 수동으로 ingress 배포하기
    • Security
    • HPA
      • hpa troubleshooting history
        • 1. HELM_UPGRADE_VALUES_FILE로 hpa가 추가되지 않는 원인
        • 2. targetCPUUtilizationPercentage 계산은 어떻게 되는가
        • 3. helm values에 cpu resource 단위를 1로 했을 때 실제 파드에 1m( 0.001 ) 코어가 부여된 것
        • 4. pod cpu resources가 할당받은 것을 나타내는 것인 지 현재 사용량을 나타내는 것인지 검증
        • 5. 설정한 hpa를 기반으로 pod auto scaling이 동작하는 지 검증
      • HorizontalPodAutoscaler의 behavior 필드 중 stabilizationWindowSeconds 값이 Kubernetes 코드에서 어떻게 사용되는지 분석
  • prometheus
    • prometheus 리소스 alert 세팅
      • 슬랙 채널 구성
      • alert 환경 구성 가이드
  • Loki
    • loki-grafana alert 세팅
      • 1차 검증 결과
      • Alert 환경 구성 가이드
  • load test
    • nGrinder
      • nGrinder Test Configuration 값들
      • 질문리스트
        • groovy는 JUnit 스타일에 포함되지 않는건가 ? + GTest가 뭔지 좀 헷갈린다
      • Script
        • Groovy Script Structure
          • reference
          • Groovy script deep dive
          • Groovy Script 실행 구조 분석
      • Test
        • [nGrinder] single endpoint load test 하기
          • [nGrinder] single endpoint load test script 기반 cpu 사용량 테스트
          • [nGrinder] single endpoint load test script 기반 pod autoscaling 테스트
        • [nGrinder] multi endpoint load test 하기
          • [nGrinder] multi endpoint load test script에 정의한 test들이 실행 순서를 보장 받는가?
  • AWS
    • aws-cli
      • eks cluster vpc 스펙보기
    • aws-vpc
  • EKS
    • youtube links
    • EKS best practice
    • 질문 정리
  • Istio
    • Istio Basic
      • Istio 컴포넌트 별 역할
      • Kubernetes Ingress와 Istio VirtualService의 관계
    • Gateway
      • Gateway 주요 특징
      • Istio Gateway와 Kubernetes Ingress의 주요 차이점
  • IAC
    • Terraform
      • 테라폼 설치
      • 테라폼 문서
      • 테라폼 개념
        • 언어 구조
        • 사용 순서
        • 상태파일 (tfstate)
        • 변수 정의 방법
      • Terraform - AWS VPC
    • Ansible
      • Ansible 초기 학습 내용
      • Ansible Playbook
      • Ansible Study
        • Inventory
        • Playbook
          • Module
        • Variable
  • etc
    • Toss SLASH24
    • Elastic Load Balancing
    • 낙서장
      • IRSA
    • deep dive
      • Istio 공식문서 번역
        • Overview
          • What is Istio?
          • Why choose Istio?
          • Sidecar or ambient?
        • Concepts
          • Traffic Management
        • Page
      • eks 에서 control plane < - > data plane 통신 원리
Powered by GitBook
On this page
Edit on GitHub
  1. Istio
  2. Istio Basic

Kubernetes Ingress와 Istio VirtualService의 관계

Kubernetes Ingress와 Istio VirtualService가 함께 존재하는 경우, 일반적으로 Kubernetes Ingress가 우선적으로 적용됩니다. 이는 다음과 같은 이유로 인해 발생합니다:

  1. 트래픽 흐름: Kubernetes Ingress -> Kubernetes Service -> Pod (with Istio sidecar)이 흐름에서 Istio의 VirtualService가 적용되기 전에 Kubernetes Ingress에 의해 트래픽이 이미 라우팅됩니다.

  2. 처리 순서: Kubernetes Ingress는 클러스터 수준에서 먼저 처리되며, Istio의 트래픽 관리 기능(VirtualService 등)보다 먼저 동작합니다.

  3. 네트워크 스택: Kubernetes Ingress는 일반적으로 클러스터의 네트워크 스택에서 더 상위 레벨에서 동작합니다.

  4. 설계 의도: Istio는 주로 서비스 메시 내부의 트래픽을 관리하도록 설계되었으며, Kubernetes Ingress는 외부 트래픽의 진입점 역할을 합니다.

  5. 컨트롤 플레인 분리: Kubernetes Ingress와 Istio VirtualService는 서로 다른 컨트롤 플레인에 의해 관리되므로, 서로 직접적인 상호작용이 없습니다.

따라서, Kubernetes Ingress와 Istio VirtualService를 함께 사용할 경우, Ingress의 라우팅 규칙이 우선적으로 적용되고, VirtualService의 세부적인 트래픽 관리 기능은 제한될 수 있습니다.이러한 상황을 해결하기 위해서는 다음과 같은 방법을 고려할 수 있습니다:

  1. Kubernetes Ingress 대신 Istio Gateway만 사용하여 외부 트래픽을 관리합니다.

  2. Kubernetes Ingress를 Istio Gateway로 마이그레이션합니다.

  3. 필요한 경우 Kubernetes Ingress와 Istio Gateway를 분리된 네임스페이스나 서비스 그룹에 적용하여 충돌을 방지합니다.

결론적으로, Kubernetes Ingress와 Istio VirtualService를 함께 사용할 때는 주의가 필요하며, 가능하면 Istio의 트래픽 관리 기능을 최대한 활용하기 위해 Istio Gateway만을 사용하는 것이 좋습니다.

PreviousIstio 컴포넌트 별 역할NextGateway

Last updated 9 months ago