서비스 품질 (QoS)은 대역폭, 지연 시간, 패킷 손실과 같은 요인을 제어하여 네트워크 트래픽을 관리하고 중요한 애플리케이션의 성능을 보장합니다. 이 기술은 네트워크 리소스가 제한되거나 혼잡할 때 다른 유형보다 특정 유형의 네트워크 트래픽에 우선순위를 부여합니다. 차등화 서비스 코드 포인트 (DSCP) 태그를 사용하여 최신 IP 네트워크에서 트래픽의 우선순위를 지정할 수 있습니다.
DSCP 태그를 사용하는 방법은 DSCP 태그 구성을 참고하세요.
EgressDSCP 태그 지정 작동 방식
서비스 품질 (QoS)은 대역폭이 낮은 상황에서 중요한 애플리케이션이 실행되도록 네트워크 트래픽을 관리합니다. 이그레스 DSCP 태그를 사용하면 IP 헤더에 DSCP 값으로 패킷을 태그하여 다운스트림 네트워크 기기에 우선순위 수준을 전달할 수 있습니다.
지원되는 워크로드
이그레스 DSCP 태그 지정은 다음 Google Distributed Cloud 워크로드의 트래픽 우선순위 지정을 지원합니다.
- 컨테이너 워크로드: 클러스터에서 실행되는 Kubernetes 포드 및 서비스입니다.
- 가상 머신 (VM): 기본 네트워크에 연결된 경우 VM 런타임을 통해 실행되는 VM 워크로드
DSCP 태그 지정 리소스 유형
Distributed Cloud는 특정 커스텀 리소스를 사용하여 DSCP 태그를 관리합니다. 다음 객체를 사용하여 패킷의 우선순위를 정의합니다.
EgressDSCP: 선택한 트래픽 패킷의 IP 헤더에 삽입할 특정 DSCP 값을 정의하는 맞춤 리소스입니다. 이 객체는0~63의 정수 값을 허용합니다.TrafficSelector: 네트워크 트래픽 흐름을 정확하게 선택하는 맞춤 리소스입니다. 이 리소스는0~65535의 우선순위 정수를 허용하며 기본값은1000입니다.TrafficSelector객체는EgressDSCP객체를 참조하여 식별된 트래픽에 특정 작업을 적용합니다. 네임스페이스 범위가 지정된TrafficSelector를 사용하는 경우에도 타겟 트래픽을 시작하는 포드의 네임스페이스를 명시적으로 식별하는 네임스페이스 선택기를 포함해야 합니다.
충돌 해결 방법
여러 TrafficSelector 리소스가 동일한 주제에 적용되는 경우 시스템은 특정 계층 구조를 사용하여 우선순위를 결정합니다. 시스템은 다음 원칙을 순서대로 사용하여 충돌을 해결합니다.
- 우선순위: 시스템은 숫자 우선순위 값이 가장 낮은
TrafficSelector를 적용합니다. - CIDR 범위 구체성: 규칙의 우선순위가 동일한 경우 시스템은 가장 구체적인 CIDR 제한 (가장 긴 접두사 일치)이 있는 규칙을 적용합니다.
- 포트 구체성: 규칙의 우선순위와 CIDR 범위가 동일한 경우 시스템은 포트가 가장 구체적인 규칙을 적용합니다.
더 구체적인 CIDR 규칙의 우선순위가 숫자상으로 더 높으면 (우선순위가 낮음) 시스템은 더 광범위한 규칙을 적용하고 더 구체적인 규칙을 무시합니다.
섀도잉 예시
동일한 대상에 적용되는 다음 두 가지 TrafficSelector 규칙을 고려하세요.
- 규칙 A: 우선순위
100, 대상 CIDR192.168.1.0/24, DSCP40표시 - 규칙 B: 우선순위
200, 대상 CIDR192.168.1.15/32, DSCP46표시
규칙 B가 더 정확한 대상 CIDR(192.168.1.15/32)을 지정하더라도 시스템은 우선순위 값이 숫자상으로 더 낮은 (100) 규칙 A에 우선순위를 부여합니다. 따라서 시스템은 규칙 B를 무시하고 192.168.1.15로 향하는 모든 아웃바운드 트래픽에 DSCP 태그 40를 적용합니다.
제한사항
DSCP 태그 지정 기능에는 현재 구현에 관한 몇 가지 제약 조건이 포함되어 있습니다.
- 외부 이그레스 트래픽: 워크로드에서 시작된 아웃바운드 트래픽과 Kubernetes 서비스에서 외부 클라이언트로의 반환 트래픽과 같이 클러스터를 벗어나는 North-South 트래픽만 태그할 수 있습니다.
- 내부 시행 없음: 시스템에서 클러스터 내 트래픽에 태그를 지정하지만 Kubernetes는 이러한 태그를 기반으로 내부적으로 QoS 정책을 시행하지 않습니다.
- 마킹만: 시스템에서 IP 헤더에만 태그를 지정합니다. 실제 QoS 적용을 처리하도록 업스트림 물리적 네트워크 인프라를 구성해야 합니다.
- 지원되는 프로토콜: IPv4 트래픽만 태그할 수 있습니다.
- 지원되는 서비스:
LoadBalancer및NodePort서비스의 트래픽에만 태그를 지정할 수 있습니다. - 가상 머신 네트워크: 기본 네트워크에 연결된 VM 워크로드에만 태그를 지정할 수 있습니다.
- 기능 사용 설정: 클러스터 리소스에
preview.baremetal.cluster.gke.io/traffic-selector: "enable"주석을 추가하여 기능을 사용 설정해야 합니다. - 반환 경로 기본값: 반환 경로 트래픽의 경우 DSCP 값은 명시적으로 다르게 구성되지 않는 한 기본적으로
0입니다.
보안 고려사항
승인되지 않은 사용자가 중요하지 않은 트래픽을 높은 DSCP 값으로 표시하여 클러스터 전반에서 중요한 서비스를 방해할 수 있습니다.
보안 위험을 완화하려면 Kubernetes 역할 기반 액세스 제어 (RBAC)를 사용하여 액세스를 제한하세요.
- 클러스터 전체 제어: 신뢰할 수 있는 클러스터 관리자에게 클러스터 범위
EgressDSCP리소스를 만들거나 수정할 권한을 제한합니다. - 네임스페이스 제어: 사용자가 특정 워크로드에만 영향을 줄 수 있도록 네임스페이스별로
TrafficSelector리소스를 관리합니다.