블로그

속도와 규모: Kubernetes를 위한 Ingress 제어로서 F5 BIG-IP

로리 맥비티 썸네일
로리 맥비티
2017년 11월 13일 게시

컨테이너 지역엔 혼돈만큼이나 혼란도 많습니다. 컨테이너 오케스트레이션 환경의 세계에는 매일 새로운 기능이나 구성 요소가 추가되는 것 같습니다. 그것은 필요합니다. 왜냐하면 용기의 사용이 실험적인 것을 넘어 실존적인 것으로 확장되면서 여전히 성숙 단계에 있기 때문입니다.

속도와 규모는 컨테이너 배포의 두 가지 주요 동인입니다. 전자는 제공만큼이나 개발에 관한 것이므로 규모에 중점을 둡니다. 하지만 단순한 프로토콜 규모만이 아니라 애플리케이션 규모에 대해 이야기하고 있습니다.

이 구별은 중요합니다. 컨테이너는 마이크로서비스를 포함할 가능성이 가장 높은 것으로 투표되었으며, 마이크로서비스의 주요 규칙 중 하나는 API를 통해서만 통신한다는 것입니다. TCP가 아닌 HTTP 기반 API이므로 확장성을 위해 더 스마트한 솔루션이 필요합니다.

대부분의 컨테이너 오케스트레이션 환경은 바닐라 규모에 적합한 프록시와 함께 "기본 제공"으로 제공됩니다. 즉, TCP 계층에서 POLB(일반적인 부하 분산)를 사용합니다. IP 주소와 포트는 이러한 프록시의 공통어입니다. 이러한 기능은 IP 주소/포트 조합에 따라 서비스가 구분되는 환경에서는 잘 작동하지만, API 버전, URI, 호스트 이름 등 HTTP 계층 특성에 따라 구분되는 애플리케이션(서비스)에서는 제대로 작동하지 않습니다. 이는 앱 계층(HTTP) 구조이며 , 원하는 속도로 라우팅하고 확장하기 위해 더 스마트한 프록시가 필요합니다. 이러한 구성 요소는 클라이언트 측 엔터티로부터 요청을 받을 때 고려되어야 하는데, 대부분의 바닐라 규모 컨테이너 솔루션에서는 이를 제공할 수 없습니다.  

이러한 필요성에 부응하여 Ingress* 제어 개념이 생겨났습니다. 유입 제어는 기본적으로 앱 또는 HTTP 라우팅 또는 7계층 스위칭 또는 콘텐츠 스위칭 또는 이 기능이 세기의 전환기 이후로 사용되어 온 수십 가지의 다른 이름을 말합니다. Ingress 제어는 애플리케이션(HTTP) 계층에서 서비스 차별화를 가정하고, 이에 따라 컨테이너 환경 내에서 라우팅 및 확장 결정을 내릴 때 이를 반영합니다.

하지만 컨테이너 환경 앞에 F5 BIG-IP를 그냥 붙여놓고 Ingress 제어라고 부를 수는 없습니다. 원하는 규모 속도를 달성하려면 Ingress 컨트롤러도 컨테이너 오케스트레이션 환경과 통합되어야 하기 때문입니다. 그렇게 하려면 컨테이너 오케스트레이션과 BIG-IP를 기본적으로 지원하는 컨테이너 환경 내부에 있는 것이 필요합니다.

이것이 바로 Kubernetes용 BIG-IP 컨트롤러가 하는 일입니다. Kubernetes Pod에서 실행되는 Docker 컨테이너로, BIG-IP를 Kubernetes Ingress 컨트롤러로 사용할 수 있습니다. 즉, Kubernetes Ingress 리소스를 읽고 적절한 객체로 BIG-IP를 자동으로 구성하여 원하는 앱 계층 구성에 따라 요청이 확장되도록 할 수 있습니다.

이 컨트롤러가 출시되기 전에는 사람들은 컨테이너 오케스트레이션 환경 내부에서 실행되는 두 번째 프록시 계층에 트래픽을 "분사"하기 위해 BIG-IP를 사용하는 경향이 있었습니다. 해당 프록시는 Ingress 제어를 제공합니다. 이런 짓을 중단해야 하는 데는 몇 가지 이유가 있는데, 그 중 하나는 가용성을 제공하는 대상 내부에서 가용성 서비스를 실행하는 재귀적 문제입니다.

다른 좋은 이유는 다음과 같습니다.

  • DDoS 완화 활성화
  • API와 앱을 보호하기 위해 웹 애플리케이션 방화벽을 활용하세요
  • IPv4 컨테이너화된 앱을 사용하도록 IPv6 클라이언트 지원 
  • TLS를 BIG-IP로 오프로드하고 자체 서명 인증서로 다시 암호화
  • 성능 개선을 위해 애플리케이션 가속 옵션을 사용하세요

그 이유가 무엇이든 실제로는 Kubernetes의 Ingress 컨트롤러로 BIG-IP를 사용할 수 있습니다. 확장하려면 두 가지 계층이 필요하지 않습니다. 두 번째 규모의 단계를 제거하면 속도(전달 배포)가 향상되고 배포가 간소화되며 보안, 속도 및 규모를 위한 다양한 고급 서비스를 활성화할 수 있는 플랫폼이 제공됩니다.  

Kubernetes용 BIG-IP 컨트롤러에 대한 자세한 내용은 여기를 참조 하거나 Docker 허브에서 다운로드 하거나 직접 가져올 수 있습니다.

도커 풀 f5networks/k8s-bigip-ctlr

확장하세요.

* 예, 대문자 "I"는 중요합니다. 이는 단순히 "환경으로의 액세스"를 나타내는 기존 네트워크 용어인 "ingress"와 구별되기 때문입니다. 반면 "Ingress"는 "HTTP 라우팅"을 나타내는 데 사용됩니다. 그렇습니다. 우리는 일을 필요 이상으로 어렵게 만드는 경향이 있지만, 개발자들이 네트워크 구조를 구현하고 앱이 제공되는 방식 그 이상을 재정의하는 세상이 바로 그런 세상입니다.