Kubernetes Gateway API Controller는 Kubernetes 환경에서 네트워크 트래픽 관리를 위한 API 및 컨트롤러를 제공하는 기능입니다. 이 컨트롤러는 다음과 같은 주요 기능을 수행합니다:
Gateway: 외부 트래픽을 수신하고 내부 서비스로 라우팅하는 진입점을 정의합니다. Gateway는 L4/L7 프로토콜을 지원하며, 로드밸런싱, TLS 종료, 인증 등의 기능을 제공합니다.
GatewayClass: Gateway 구현체를 정의하고 구성하는 데 사용됩니다. GatewayClass는 Gateway 유형(예: Ingress, Service Mesh 등)과 구현 세부 사항을 설명합니다.
Route: 외부 트래픽을 내부 서비스로 라우팅하는 규칙을 정의합니다. Route는 호스트, 경로, 리소스 매칭 조건 등을 지정할 수 있습니다.
HTTPRoute, TCPRoute, TLSRoute: 각각 HTTP, TCP, TLS 트래픽을 처리하는 Route 유형입니다. 이들은 트래픽 규칙, 리소스 매칭, 로드밸런싱 등의 다양한 기능을 제공합니다.
ReferenceGrant: 다른 네임스페이스의 리소스를 참조할 수 있도록 권한을 부여합니다. 이를 통해 여러 네임스페이스에 걸쳐 있는 서비스 간 연결을 구성할 수 있습니다.
BackendPolicy: 백엔드 서비스의 상태 점검, 연결 관리, 서킷 브레이킹 등의 설정을 제공합니다.
Kubernetes Gateway API Controller와 AWS Gateway API Controller 연동을 위해 아래와 같은 단계로 설치를 진행합니다.
Step1. Client VPC에 EKS Cluster를 설치
Step2. VPC Lattice와 AWS GW API Controller간의 통신을 위한 구성
Step1. EKS Cluster 설치
EKS Cluster 설치 준비
# eksctl 기반의 cluster 생성을 위한 yaml을 만듭니다.
# ~/environment/vpclattice/cloud9/lattice_eks01.yaml 에 파일이 생성됩니다.
~/environment/vpclattice/cloud9/eks-cluster1.sh
EKS Cluster 설치
정상적으로 eksctl yaml이 생성되었으면, 아래 명령을 통해 eks clsuter "c1"을 구성합니다.
cd ~/environment/vpclattice/cloud9/
eksctl create cluster -f lattice_eks01.yaml
aws iam create-role --role-name VPCLatticeControllerIAMRole --assume-role-policy-document file://trust-relationship.json --description "IAM Role for AWS Gateway API Controller for VPC Lattice"
aws iam attach-role-policy --role-name VPCLatticeControllerIAMRole --policy-arn=$VPCLatticeControllerIAMPolicyArn
export VPCLatticeControllerIAMRoleArn=$(aws iam list-roles --query 'Roles[?RoleName==`VPCLatticeControllerIAMRole`].Arn' --output text)
echo "export VPCLatticeControllerIAMRoleArn=${VPCLatticeControllerIAMRoleArn}" | tee -a ~/.bash_profile
source ~/.bash_profile
aws eks create-pod-identity-association 명령을 사용하여 Service Account와 IAM 역할을 연결합니다.