이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.
Amazon EKS Hybrid Nodes 게이트웨이 작업
이 페이지에서는 고가용성, 장애 조치 동작, 모니터링, 규모 조정 및 VXLAN 터널 수명 주기를 포함하여 Amazon EKS Hybrid Nodes 게이트웨이에 대한 2일차 작업을 다룹니다. 설치 지침은 EKS Hybrid Nodes 게이트웨이 시작하기을 확인하세요.
고가용성 및 장애 조치
Hybrid Nodes 게이트웨이는 Kubernetes 리스 기반 리더 선택과 함께 활성-대기 모델을 사용합니다. 두 개의 게이트웨이 포드는 포드 비선호도에 의해 적용되는 별도의 EC2 노드에서 실행됩니다. 두 포드 모두 시작 시 VXLAN 인터페이스를 생성하고 모든 하이브리드 노드에 대해 VTEP 항목을 유지 관리하는 노드 조정기를 실행합니다. 리더 포드만 VPC 라우팅 테이블 및 CiliumVTEPConfig CRD를 관리합니다. 대기 포드에는 이미 터널 항목의 전체 세트가 있으므로 장애 조치 시 항상 3~5초 이내에 트래픽을 전달할 준비가 되어 있습니다.
장애 조치 시퀀스
활성 게이트웨이 인스턴스에서 장애가 발생하면 다음 시퀀스가 진행됩니다.
-
대기 포드는 리더 리스가 만료되었음을 감지합니다.
-
대기 포드는 리스를 획득하고 새로운 리더가 됩니다.
-
새 리더에서 리더 설정 시퀀스를 실행합니다.
-
하이브리드 포드 CIDR이 새 리더의 프라이머리 ENI를 가리키도록 VPC 라우팅 테이블 항목을 업데이트합니다.
-
새 리더의 노드 IP 및 VXLAN MAC 주소로
CiliumVTEPConfig사용자 지정 리소스를 업서트합니다.
-
-
트래픽이 새 리더를 통한 흐름을 재개합니다.
두 포드 모두 항상 VXLAN 인터페이스와 VTEP 항목을 유지 관리하므로 새 리더는 장애 조치 중에 VXLAN 인터페이스를 다시 생성하거나 터널 항목을 다시 프로그래밍할 필요가 없습니다. VPC 라우팅 테이블 및 CiliumVTEPConfig 업데이트만 필요합니다.
예상 장애 조치 시간은 약 3~5초입니다. 장애 조치 중에 VPC와 하이브리드 포드 간 트래픽이 중단됩니다.
가용 영역 권장 사항
AZ 장애로 인해 리더와 대기가 모두 제거되지 않도록 두 가용 영역에 게이트웨이 노드를 분산합니다. EKS 자율 모드를 사용하는 경우 여러 AZ에서 서브넷 선택기를 사용하여 NodeClass를 구성합니다. 관리형 노드 그룹 또는 자체 관리형 노드의 경우 레이블을 지정할 때 다른 AZ의 노드를 선택합니다.
참고
게이트웨이와 VPC의 다른 리소스 간 교차 AZ 트래픽에는 표준 AWS 교차 AZ 데이터 전송 요금이 발생합니다.
리더 선정 파라미터
기본 리더 선정 파라미터는 빠른 장애 조치를 위해 조정됩니다.
| 파라미터 | 기본값 | 설명 |
|---|---|---|
|
|
|
리더가 갱신을 중지한 후 리더 외 포드가 리스 획득을 시도하기 전에 대기하는 시간입니다. |
|
|
|
리더가 포기하기 전에 리스를 갱신하려고 시도하는 시간입니다. |
|
|
|
후보가 리스 획득을 재시도하는 빈도입니다. |
이러한 값을 낮추면 장애 조치 시간이 줄어들지만 네트워크 파티션에서 잘못된 장애 조치의 위험이 증가합니다. 대부분의 배포에서 기본값이 적합합니다. 자세한 내용은 Amazon EKS Hybrid Nodes 게이트웨이 구성 참조 섹션을 참조하세요.
VPC 라우팅 테이블 관리
게이트웨이는 하이브리드 포드 CIDR로 향하는 트래픽이 활성 게이트웨이 인스턴스에 도달하도록 VPC 라우팅 테이블 항목을 관리합니다.
경로 관리 방법
게이트웨이 포드가 리더가 되면 구성된 각 VPC 라우팅 테이블에서 경로를 생성하거나 대체합니다. 각 경로는 대상 CIDR을 하이브리드 포드 CIDR로 설정하고 대상을 리더의 프라이머리 ENI로 설정합니다. 경로가 이미 존재하고 올바른 ENI를 가리키는 경우 게이트웨이는 업데이트를 건너뜁니다.
장애 조치 중에 새 리더가 자체 ENI를 가리키도록 기존 경로를 대체합니다. VPC 트래픽을 새 활성 게이트웨이로 리디렉션하는 메커니즘입니다.
라우팅 테이블 항목 예제
게이트웨이에서 경로를 구성한 후 VPC 라우팅 테이블에는 다음과 유사한 항목이 포함됩니다.
| 대상 주소 | 대상 | Status |
|---|---|---|
|
|
로컬 |
활성화 |
|
|
|
활성화 |
IAM 권한
게이트웨이에서 라우팅 테이블을 관리하려면 다음 IAM 작업이 필요합니다.
-
ec2:DescribeRouteTables -
ec2:CreateRoute -
ec2:ReplaceRoute -
ec2:DescribeInstances
게이트웨이 노드의 인스턴스 프로파일, Pod Identity 또는 IRSA 구성과 연결된 IAM 역할에 이러한 권한을 연결합니다.
모니터링
상태 및 준비 엔드포인트
게이트웨이는 포트 8088에서 상태 및 준비 엔드포인트를 노출합니다.
| 엔드포인트 | 경로 | 설명 |
|---|---|---|
|
상태 확인 |
|
게이트웨이 프로세스가 정상일 때 HTTP 200을 반환합니다. Kubernetes 활성 상태 프로브에서 사용됩니다. |
|
준비 확인 |
|
게이트웨이에서 트래픽을 처리할 준비가 되면 HTTP 200을 반환합니다. Kubernetes 준비 상태 프로브에서 사용됩니다. |
임시 디버그 컨테이너를 실행하거나 포트 전달을 통해서 진단을 위해 이러한 엔드포인트를 수동으로 쿼리할 수 있습니다.
kubectl port-forward -n eks-hybrid-nodes-gatewayPOD_NAME8088:8088 & curl -s http://localhost:8088/healthz curl -s http://localhost:8088/readyz
지표 엔드포인트
게이트웨이는 /metrics 경로의 10080 포트에 Prometheus 호환 지표를 노출합니다. 표준 컨트롤러-런타임 지표 외에도 다음과 같은 사용자 지정 지표를 사용할 수 있습니다.
게이트웨이 정보:
| 지표 | 유형 | 설명 |
|---|---|---|
|
|
Gauge |
게이트웨이 인스턴스에 대한 정적 정보입니다. 항상 1입니다. 레이블: |
하이브리드 노드:
| 지표 | 유형 | 설명 |
|---|---|---|
|
|
Gauge |
VTEP 항목이 구성된 하이브리드 노드의 현재 수입니다. |
VTEP 작업:
| 지표 | 유형 | 설명 |
|---|---|---|
|
|
Counter |
성공한 총 VTEP 추가 작업 수입니다. |
|
|
Counter |
실패한 총 VTEP 추가 작업 수입니다. |
|
|
Counter |
성공한 총 VTEP 제거 작업 수입니다. |
|
|
Counter |
실패한 총 VTEP 제거 작업 수입니다. |
리더 선정 및 라우팅 테이블:
| 지표 | 유형 | 설명 |
|---|---|---|
|
|
Gauge |
이 포드가 활성 리더인 경우 1, 대기인 경우 0입니다. |
|
|
히스토그램(Histogram) |
리더 설정 작업(라우팅 테이블 + CiliumVTEPConfig)의 기간(초)입니다. |
|
|
Counter |
성공한 총 AWS 라우팅 테이블 업데이트 작업 수입니다. |
|
|
Counter |
실패한 총 AWS 라우팅 테이블 업데이트 작업 수입니다. |
|
|
히스토그램(Histogram) |
AWS 라우팅 테이블 업데이트 작업 기간(초)입니다. |
네트워크 통계(스크레이프당 온디맨드 방식으로 수집됨):
| 지표 | 유형 | 설명 |
|---|---|---|
|
|
Gauge |
VXLAN 인터페이스에서 수신된 총 바이트 수입니다. |
|
|
Gauge |
VXLAN 인터페이스에서 전송된 총 바이트 수입니다. |
|
|
Gauge |
VXLAN 인터페이스에서 수신된 총 패킷 수입니다. |
|
|
Gauge |
VXLAN 인터페이스에서 전송된 총 패킷 수입니다. |
|
|
Gauge |
VXLAN 인터페이스에서 수신될 때 삭제된 총 패킷 수입니다. |
|
|
Gauge |
VXLAN 인터페이스에서 전송될 때 삭제된 총 패킷 수입니다. |
|
|
Gauge |
VXLAN 인터페이스에서 발생한 총 수신 오류 수입니다. |
|
|
Gauge |
VXLAN 인터페이스에서 발생한 총 전송 오류입니다. |
|
|
Gauge |
VXLAN 인터페이스가 UP이면 1, 그렇지 않으면 0입니다. |
|
|
Gauge |
VXLAN 인터페이스에서 현재 FDB 항목 수입니다. |
|
|
Gauge |
VXLAN 인터페이스를 통한 현재 경로 수입니다. |
|
|
Gauge |
프라이머리 네트워크 인터페이스에서 수신된 총 바이트 수입니다. |
|
|
Gauge |
프라이머리 네트워크 인터페이스에서 전송된 총 바이트 수입니다. |
|
|
Gauge |
프라이머리 네트워크 인터페이스에서 수신된 총 패킷 수입니다. |
|
|
Gauge |
프라이머리 네트워크 인터페이스에서 전송된 총 패킷 수입니다. |
|
|
Gauge |
프라이머리 NIC에서 수신될 때 삭제된 총 패킷 수입니다. |
|
|
Gauge |
프라이머리 NIC에서 전송될 때 삭제된 총 패킷 수입니다. |
|
|
Gauge |
프라이머리 NIC에서 발생한 총 수신 오류 수입니다. |
|
|
Gauge |
프라이머리 NIC에서 발생한 총 전송 오류입니다. |
|
|
Gauge |
프라이머리 NIC 이름입니다. 항상 1입니다. 레이블: |
CloudWatch 관찰성 추가 기능
Amazon CloudWatch Observability 추가 기능을 사용하여 게이트웨이 지표 및 로그를 수집할 수 있습니다. 포트 10080에서 게이트웨이 네임스페이스(eks-hybrid-nodes-gateway)를 스크레이핑하도록 추가 기능을 구성합니다. 올바른 구성 형식은 위에 연결된 추가 기능 설명서를 참조하세요.
스케일 아웃 고려 사항
Hybrid Nodes 게이트웨이는 리더 선정과 함께 활성-대기 모델을 사용하므로 한 번에 하나의 포드만 트래픽을 처리합니다. 복제본 수 증가를 통한 게이트웨이의 수평적 스케일링은 장애 조치 중에 인수할 준비가 된 대기 포드를 추가로 제공함으로써 가용성이 향상될 수 있지만, 트래픽이 여러 복제본에 분산되지 않으므로 성능이나 처리량이 향상되지 않습니다. 성능을 조정하려면 트래픽 볼륨에 맞게 충분한 네트워크 대역폭이 있는 EC2 인스턴스 유형을 선택하여 수직적 스케일링을 수행합니다.
인스턴스 유형 지침
게이트웨이 처리량은 EC2 인스턴스 네트워크 성능에 따라 제한됩니다. 인스턴스 크기를 선택할 때 다음을 고려합니다.
-
네트워크 대역폭 - 게이트웨이는 VPC 및 하이브리드 포드 사이에서 모든 트래픽을 전달합니다. 네트워크 대역폭이 피크 트래픽 요구 사항을 충족하는 인스턴스 유형을 선택합니다.
-
초당 패킷 수(PPS) - VXLAN 캡슐화는 패킷당 오버헤드를 추가합니다. 작은 패킷이 많은 워크로드(예: 요청 속도가 빠른 마이크로서비스)의 경우 PPS 제한이 높은 인스턴스 유형이 더 적합합니다.
-
하이브리드 노드 수 - 각 하이브리드 노드는 게이트웨이가 트래픽을 전달하는 VXLAN 터널 엔드포인트를 추가합니다. 하이브리드 노드 수가 늘면 게이트웨이를 통한 집계 트래픽이 증가합니다. 클러스터의 네트워크 간 피크 트래픽을 처리하기에 충분한 네트워크 대역폭을 보유한 인스턴스 유형을 선택합니다.
권장 인스턴스 유형
프로덕션(하이브리드 노드 10~100개, 중간 수준의 트래픽)
네트워크 간 트래픽이 안정적인 표준 프로덕션 워크로드에 적합합니다.
| 인스턴스 유형 | vCPU | Memory | Network | 참고 |
|---|---|---|---|---|
|
|
4 |
8GiB |
최대 1.25Gbps |
비용과 성능 간 바람직한 균형 |
|
|
4 |
8GiB |
최대 30Gbps |
네트워크에 최적화되었고, 프로덕션에 권장됨 |
|
|
4 |
8GiB |
최대 1.25Gbps |
최신 세대 컴퓨팅 최적화 |
|
|
4 |
16GiB |
최대 1.25Gbps |
게이트웨이 노드에서 다른 워크로드를 함께 배치하는 경우에 적합함 |
처리량이 높은 프로덕션(100개 이상의 하이브리드 노드, 많은 트래픽)
데이터 집약적인 워크로드 또는 많은 동시 연결과 같이 네트워크 간 대역폭 요구 사항이 중요한 환경의 경우.
| 인스턴스 유형 | vCPU | Memory | Network | 참고 |
|---|---|---|---|---|
|
|
8 |
16GiB |
최대 40Gbps |
처리량이 많은 프로덕션에 권장됨 |
|
|
8 |
21GiB |
최대 25Gbps |
이전 세대 네트워크에 최적화되었고, 비용 효율적임 |
|
|
16 |
32GiB |
최대 50Gbps |
매우 많은 워크로드의 최대 처리량 |
|
|
16 |
42GiB |
최대 25Gbps |
매우 빠른 패킷 속도를 위한 많은 vCPU 수 |
게이트웨이 지표(지표 엔드포인트 참조)를 사용하여 네트워크 사용률을 모니터링하고 필요에 따라 인스턴스 유형을 조정합니다.
VXLAN 터널 수명 주기
게이트웨이는 클러스터에 조인하거나 클러스터에서 나갈 때 하이브리드 노드에 대한 VXLAN 터널을 자동으로 유지 관리합니다.
터널 관리 방법
노드 컨트롤러는 클러스터에서 CiliumNode 객체를 감시합니다. 컨트롤러는 리더뿐만 아니라 모든 게이트웨이 포드에서 실행되므로 리더와 대기 포드 모두의 터널 상태는 최신입니다. CiliumNode 이벤트가 발생하면 컨트롤러는 eks.amazonaws.com/compute-type: hybrid 레이블을 찾아 노드가 하이브리드 노드인지 확인합니다.
하이브리드 노드가 클러스터에 조인하는 경우:
-
컨트롤러에서 새
CiliumNode객체를 감지합니다. -
CiliumNode사양에서 노드의 내부 IP 주소 및 포드 CIDR을 추출합니다. -
VXLAN 인터페이스에서 다음을 프로그래밍합니다.
-
VXLAN 인터페이스를 통해 노드의 IP를 사용하는 노드의 포드 CIDR에 대한 경로.
-
노드의 IP를 결정적 MAC 주소에 매핑하는 정적 ARP 항목.
-
캡슐화된 패킷을 노드의 IP로 보내도록 VXLAN 모듈에 지시하는 FDB 항목.
-
하이브리드 노드가 클러스터에서 나가는 경우:
-
컨트롤러에서
CiliumNode삭제를 감지합니다. -
VXLAN 인터페이스에서 해당 노드에 대한 경로, ARP 항목 및 FDB 항목을 제거합니다.
이 수명 주기는 완전히 자동입니다. 하이브리드 노드를 추가하거나 제거할 때 터널을 수동으로 구성하지 않아도 됩니다.
다음 단계
-
Amazon EKS Hybrid Nodes 게이트웨이 구성 참조 - 헬름 값, CLI 플래그 및 리더 선정 파라미터를 사용자 지정합니다.
-
Amazon EKS Hybrid Nodes 게이트웨이 문제 해결 - 일반적인 문제를 진단하고 해결합니다.
-
Amazon EKS Hybrid Nodes 게이트웨이 - 개요 페이지로 돌아갑니다.