BIG-IP CIS 연동 사전 준비 – AS3, Partition, Proxy Protocol iRule 구성

BIG-IP CIS(Container Ingress Services)는 F5 BIG-IP와 Kubernetes/OpenShift 클러스터를 연동하여 외부 트래픽을 자동으로 제어할 수 있게 해주는 솔루션입니다. CIS를 통해 Kubernetes 리소스의 변화를 실시간으로 BIG-IP 설정에 반영할 수 있으며, 엔터프라이즈 환경에서 요구되는 고가용성, 보안, 고급 트래픽 제어 기능을 Kubernetes 네이티브 방식으로 활용할 수 있습니다.

이번 포스트에서는 BIG-IP CIS 배포에 앞서 BIG-IP 측에서 필요한 사전 구성 작업을 다룹니다.
구체적으로는 선언적 구성 관리를 위한 AS3 Extension 설치, CIS 전용 Partition 생성, 그리고 F5 NGINX Ingress Controller와 연동되는 IngressLink 구성 시 필요한 Proxy Protocol iRule 생성 과정을 순서대로 살펴보겠습니다.

목차

1. BIG-IP CIS란?
 1-1. BIG-IP CIS 동작 방식
2. 버전 정보
3. BIG-IP AS3 Extension 설치
4. BIG-IP CIS 관리용 Partition 생성
5. (선택) Proxy Protocol iRule 생성
6. 결론

1. BIG-IP CIS 란?

https://clouddocs.f5.com/containers/latest/_images/what-is-cis-diagram.png

BIG-IP CIS(Container Ingress Services)는 F5에서 제공하는 Kubernetes/OpenShift 전용 컨트롤러로, Kubernetes 클러스터와 BIG-IP 장비를 연동하여 외부 트래픽을 자동으로 제어하는 솔루션입니다.

전통적인 환경에서는 네트워크 엔지니어가 BIG-IP의 Virtual Server, Pool, iRule 등을 수동으로 구성해야 했습니다. 그러나 Kubernetes 환경에서는 Pod와 Service가 동적으로 생성·삭제되므로, 이러한 수동 관리 방식은 운영 부담이 크고 일관성을 유지하기 어렵습니다. BIG-IP CIS는 이 문제를 해결하기 위해, Kubernetes의 리소스 변화를 실시간으로 감지하고 BIG-IP 설정에 자동으로 반영합니다.

BIG-IP CIS가 지원하는 주요 Kubernetes 리소스는 다음과 같습니다.

  • Ingress: Kubernetes 표준 Ingress 리소스를 감지하여 BIG-IP Virtual Server 및 Pool을 자동 구성합니다.
  • VirtualServer / TLSProfile: CIS 전용 Custom Resource로, Ingress보다 세밀한 트래픽 제어 정책을 선언적으로 정의할 수 있습니다.
  • TransportServer: L4(TCP/UDP) 수준의 트래픽 라우팅을 처리하기 위한 Custom Resource입니다.
  • IngressLink: BIG-IP CIS와 F5 NGINX Ingress Controller를 연계하는 Custom Resource로, BIG-IP가 외부 트래픽의 진입점 역할을 하고, NGINX Ingress Controller가 클러스터 내부의 L7 라우팅을 담당하는 구조를 구성할 수 있습니다.
  • Route (OpenShift 전용): OpenShift 고유의 Route 리소스를 감지하여 BIG-IP 설정에 자동으로 반영합니다. Kubernetes 표준 Ingress 대신 Route를 주로 사용하는 OpenShift 환경에서 유용합니다.

이처럼 BIG-IP CIS는 단순한 Ingress Controller를 넘어, 엔터프라이즈 환경에서 요구되는 고가용성, 보안, 고급 트래픽 제어 기능을 Kubernetes 네이티브 방식으로 활용할 수 있도록 지원합니다.

1-1. BIG-IP CIS 동작 방식

BIG-IP CIS는 Kubernetes 클러스터 내부에 Pod 형태로 배포되며, 다음과 같은 방식으로 동작합니다.

  • Kubernetes API Server를 통해 Ingress, Service, Custom Resource 등을 감시
  • 변경 사항을 감지하면 BIG-IP REST API를 호출
  • BIG-IP 내부에 Virtual Server, Pool, iRule 등의 설정을 자동 생성/수정
  • AS3(Application Services 3)를 활용하여 선언적 방식으로 구성 관리

이러한 구조를 통해 DevOps 환경에서 요구되는 자동화 및 일관성 있는 네트워크 구성이 가능해집니다.

또한, CIS는 Ingress 뿐만 아니라 IngressLink, TransportServer 등 다양한 Custom Resource를 지원하여, F5 NGINX Ingress Controller와 연계하거나 고급 트래픽 제어 구성을 유연하게 구현할 수 있습니다.

2. 버전 정보

구성 요소버전
BIG IP VE17.5.0
AS3(Application Services 3) Extensionv3.56.0

3. BIG-IP AS3 Extension 설치

BIG-IP CIS 연동 사전 준비 과정에서 가장 먼저 필요한 요소는 AS3(Application Services 3) Extension입니다.

BIG-IP AS3(Application Services 3)는 F5 BIG-IP에서 애플리케이션 서비스 구성을 선언적 방식으로 관리할 수 있게 해주는 Extension입니다.
기존의 명령형 방식에서는 Virtual Server, Pool, iRule 등의 오브젝트를 하나씩 순서대로 생성·수정해야 했지만, AS3를 사용하면 원하는 최종 상태를 JSON 형식으로 정의하여 REST API로 전달하는 것 만으로 BIG-IP 구성이 자동으로 처리됩니다.

CIS는 Kubernetes 리소스의 변화를 감지할 때마다 AS3 API를 통해 BIG-IP에 구성을 전달합니다. 즉, AS3는 CIS와 BIG-IP 사이의 구성 전달 인터페이스 역할을 하며, CIS가 정상적으로 동작하기 위한 필수 구성 요소입니다.
AS3 Extension이 설치되어 있지 않으면 CIS가 BIG-IP에 설정을 반영할 수 없으므로, CIS 배포에 앞서 반드시 설치가 필요합니다.

설치에 사용되는 RPM 파일은 f5-appsvcs-extension F5 GitHub 리포지토리에서 다운로드 할 수 있습니다.
포스트 작성 시점 기준 최신 버전인 v3.56.0의 경우 v3.56.0 릴리즈f5-appsvcs-3.56.0-10.noarch.rpm 파일을 다운로드 합니다.

BIG-IP GUI에 admin 사용자로 로그인 합니다. BIG-IP AS3를 설치하려면 관리자 권한을 가진 사용자가 아닌, admin 사용자로 로그인이 필요합니다.

좌측 메뉴 바의 iApps > Package Management LX 메뉴로 이동합니다.

리스트 우측 상단의 Import 버튼을 클릭합니다.

앞서 다운로드한 RPM 파일을 선택하고, 업로드합니다.

리스트에 추가된 f5-appsvcs를 확인할 수 있습니다.

설치가 성공적으로 완료되면 https://(BIG-IP IP addr)/mgmt/shared/appsvcs/info 로 접속하여 다음과 같은 응답을 확인할 수 있습니다. 인증 정보가 포함되지 않은 요청은 401 응답을 반환합니다.

4. BIG-IP CIS 관리용 Partition 생성

BIG-IP CIS를 통해 Kubernetes 관련 오브젝트를 관리할 Partition(파티션)을 생성합니다.

BIG-IP GUI의 좌측 메뉴 바에서 System > Users > Partition List 메뉴로 이동합니다.

BIG-IP CIS 관리 파티션 생성

리스트 우측 상단의 Create 버튼을 클릭합니다.

BIG-IP CIS 관리 파티션 생성

원하는 이름으로 파티션을 생성합니다. Route Domain을 사용하지 않는 경우 별도의 설정은 필요하지 않습니다.

BIG-IP CIS 관리 파티션 생성

혹은 TMOS CLI로 생성할 수 있습니다.

$ create auth partition <BIG-IP_partition_name>

5. (선택) Proxy Protocol iRule 생성

BIG-IP CIS와, Kubernetes 클러스터 내부의 F5 NGINX Ingress Controller를 연동하여 사용하는 F5 IngressLink 기능을 사용하는 경우, Proxy Protocol iRule 구성이 필요합니다.
IngressLink를 사용하지 않을 경우 필수적이지 않지만, 다른 리소스에서 iRule을 사용하는 경우 생성 과정을 참고하실 수 있습니다.

BIG-IP GUI의 좌측 메뉴 바에서 iRules 메뉴로 이동합니다.

BIG-IP CIS IngressLink 연동용 iRule 생성

iRule 목록 우상단의 Create 버튼을 클릭하여 iRule을 생성합니다.

BIG-IP CIS는 Common 파티션의 iRule을 참조하여 공용으로 사용할 수 있으므로, Common 파티션에 생성하는 것을 권장합니다. 현재 선택된 파티션은 화면 우측 상단의 로그아웃 버튼 좌측에서 확인할 수 있습니다.

BIG-IP CIS IngressLink 연동용 iRule 생성

생성할 iRule의 이름을 입력하고, BIG-IP에서 F5 NGINX Ingress Controller로 PROXY protocol로 전송하기 위해 아래 값을 입력하여 생성합니다.

when SERVER_CONNECTED {
TCP::respond "PROXY TCP[IP::version] [IP::client_addr] [clientside {IP::local_addr}] [TCP::client_port] [clientside {TCP::local_port}]\r\n"
}
BIG-IP CIS IngressLink 연동용 iRule 생성

위와 같이 Common 파티션에 iRule을 생성하면, 이후 IngressLink 리소스에서 /Common/Proxy_Protocol_iRule과 같이 참조하여 사용할 수 있습니다.

6. 결론

이번 포스트에서는 BIG-IP CIS 배포에 앞서 BIG-IP 측에서 필요한 사전 구성 작업을 살펴보았습니다.

AS3 Extension 설치로 CIS와 BIG-IP 간의 선언적 구성 인터페이스를 준비하고, CIS 전용 Partition을 생성하여 Kubernetes 관련 오브젝트를 독립적으로 관리할 수 있는 환경을 구성했습니다. 또한 F5 NGINX Ingress Controller와의 IngressLink 연동을 위한 Proxy Protocol iRule 생성 방법도 함께 알아보았습니다.

이번 포스트의 사전 구성이 완료되었다면, 다음 단계로 Kubernetes/OpenShift 클러스터에 BIG-IP CIS를 배포하고 실제 트래픽 제어 구성을 시작할 수 있습니다.

BIG-IP CIS를 사용하여 Kubernetes 클러스터의 외부 노출 트래픽을 가장 안전하고 효율적으로 통합 관리하고 싶으시다면 NGINX STORE를 통해 문의하세요.

NGINX STORE를 통한 솔루션 도입 및 기술지원 무료 상담 신청

* indicates required