Amazon EKS에서 LoadBalancer 유형 서비스에 대한 CIDR IP 주소를 제한하려면 어떻게 해야 합니까?

2분 분량
0

Amazon Elastic Kubernetes Service(Amazon EKS)에서 LoadBalancer 유형 서비스에 대한 CIDR IP 주소를 제한하려고 합니다.

간략한 설명

type:LoadBalancer 서비스를 생성하는 경우, 소스 0.0.0.0/0의 요청이 기본적으로 허용됩니다. 로드 밸런서가 퍼블릭 서브넷에 있는 경우 인터넷의 모든 위치에서 작업자 노드로 요청이 라우팅됩니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

환경 설정

1.    Amazon EKS 클러스터를 생성합니다.

2.    작업자 노드를 생성하고 시작합니다.

3.    kubectl을 설정합니다.

4.    AWS CLI를 설치합니다.

5.    AWS Load Balancer Controller를 설정합니다.

참고: AWS Load Balancer Controller는 다음과 같은 LoadBalancer 유형의 서비스에 대해 AWS Network Load Balancer 버전을 지원합니다. NLB ip 모드(버전 2.0.0 이상) 및 NLB 인스턴스 모드(2.2.0 이상)

중요: LoadBalancer 유형의 서비스에 대하여 새 Network Load Balancer를 프로비저닝할 때 AWS Load Balancer Controller를 사용하는 것이 가장 좋습니다. Kubernetes 인트리 서비스 로드 밸런서 컨트롤러 대신 AWS Load Balancer Controller를 사용합니다.

CIDR IP 주소 제한

1.    서비스 매니페스트 파일(svc.yaml)에서 .spec.loadBalancerSourceRanges 필드를 추가합니다. 예를 들면 다음과 같습니다.

apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx
  name: nginx
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: "external"
    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "instance"
    service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing"
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer
  loadBalancerSourceRanges:
  - "143.231.0.0/16"

2.    매니페스트 파일을 적용하려면 다음 명령을 실행합니다.

$ kubectl apply -f svc.yaml

3.    보안 그룹의 인바운드 규칙이 수정되었는지 확인하려면 다음 AWS CLI 명령을 실행합니다.

$ aws ec2 describe-security-groups --group-ids sg-XXXXXXXXXXXXXXXXX
...
    "CidrIp": "143.231.0.0/16"
...

마지막으로 다음을 고려하십시오.

NLB ip 모드를 사용하는 경우 기본적으로 .spec.loadBalancerSourceRanges 필드가 무시됩니다. 이 경우 다음 주석을 사용하십시오.

service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: preserve_client_ip.enabled=true

이 주석을 사용하면 클라이언트 IP 보존이 가능합니다.

Network Load Balancer 유형을 사용하는 서비스의 경우 최대 보안 그룹 제한을 고려하십시오. 각 노드 포트 및 서브넷 CIDR 범위에 대해 컨트롤러는 작업자 노드의 보안 그룹에 규칙을 만듭니다.


관련 정보

클러스터 인증

Kubernetes 서비스

AWS 공식
AWS 공식업데이트됨 3년 전
댓글 없음

관련 콘텐츠