축하해요! Ingress 컨트롤러 선택 가이드의 처음 두 부분을 읽은 후에는 이제 컨트롤러를 선택할 준비가 거의 끝났습니다. 지금까지 우리가 어디까지 왔는지 요약해 보겠습니다.
1부 에서는 성능, 예산, 사용 사례, 아키텍처, 소유권을 비롯한 요구 사항을 식별하는 방법에 대해 설명합니다.
2부 에서는 잘못된 Ingress 컨트롤러를 선택함으로써 발생할 수 있는 위험에 대해 이야기하고 해당 선택 사항을 미래에도 사용할 수 있는 주요 영역을 설명합니다.
Ingress 컨트롤러는 오픈소스, 기본, 상업용의 세 가지 범주로 분류됩니다. 각각 사용 사례가 있으며 선택하기 전에 단기 및 장기 요구 사항을 명확히 하는 것이 중요합니다. 이 블로그에서는 각 카테고리의 장단점에 대해 살펴보겠습니다.
오픈소스 Ingress 컨트롤러
많은 오픈소스 Ingress 컨트롤러는 사용자 커뮤니티와 자원봉사 개발자에 의해 유지 관리되지만, 일부 컨트롤러는 전담 엔지니어링 팀을 보유하고 있습니다. 가장 인기 있는 오픈소스 Ingress 컨트롤러 두 가지는 NGINX 기반입니다. 하나는 Kubernetes 커뮤니티에서 유지 관리하고, 다른 하나는 핵심 NGINX 엔지니어링 팀이 주도하여 오픈 소스로 공개됩니다. NGINX 기반 Ingress 컨트롤러의 추가 비교는 4부를 참조하세요. 우리 시리즈의.
장점:
무료 및 커뮤니티 중심 – 많은 사람과 조직이 오픈 소스 프로젝트를 선택하는 이유는 타의 추종을 불허하는 가격(무료!) 때문뿐 아니라 커뮤니티에서 개발한 기술을 선호하기 때문입니다.
기능 속도 – 이러한 Ingress 컨트롤러는 기능 혁신의 최첨단에 있을 가능성이 더 높습니다.
단점 (일반적으로 오픈 소스 프로젝트와 동일) :
비용(시간) – 쉽게 설정하고 확장할 수 있는 "즉시 사용 가능한" 도구가 부족하여 특정 요구 사항에 맞게 사용자 지정 및 해결 방법에 시간을 허비하게 됩니다.
위험 – 기능 속도에 대한 강조와 기여자의 자발적인 성격으로 인해 안정성, 보안 및 신뢰성에 문제가 있을 수 있습니다. 일반적인 취약점 및 노출(CVE)에 대한 패치는 결코 나오지 않거나, CVE가 공개된 후 몇 달이 지나서야 나올 수도 있는데 , 그럴 경우 해커는 Ingress 컨트롤러를 공격할 충분한 시간을 갖게 됩니다.
최소한의 지원 또는 전혀 없음 - 대부분은 "자체 해결"입니다. 즉, 귀하와 의사 뿐입니다. 스스로 해결할 수 없는 문제에 부딪히면 도움을 받는 것이 어렵거나 불가능할 수 있습니다. 유일한 선택지는 커뮤니티 포럼에 문제를 게시하고 커뮤니티의 다른 구성원이 (a) 답변을 해주기를 바라는 것과 (b) 해결책을 알고 있기를 바라는 것입니다.
요약: 조직에서 Kubernetes를 처음 사용할 때 편의성이나 설명서에서 무료로 빠르게 설치하고 실행할 수 있다고 약속하기 때문에 오픈 소스 Ingress 컨트롤러를 선택하는 경우가 많습니다. 이 방법은 시작할 때, 테스트할 때 또는 소량 생산을 실행할 때 매우 효과적일 수 있습니다.
기본 Ingress 컨트롤러
많은 기본 Ingress 컨트롤러가 오픈소스 기술을 기반으로 하지만, 전체 Kubernetes 플랫폼을 제공하는 회사(그리고 종종 이를 관리하는 데 대한 지원)에서 개발 및 유지 관리하기 때문에 별도로 분류합니다. 이 범주의 예로는 퍼블릭 클라우드 Ingress 컨트롤러, Rancher, Red Hat OpenShift 라우터가 있습니다.
장점:
무료 또는 저렴한 가격 - 저렴한 가격표는 이러한 제품을 사용하는 설득력 있는 이유입니다. 이러한 기능은 플랫폼에 이미 통합되어 있으므로 처음 시작할 때 시간을 확실히 절약할 수 있습니다.
신뢰성과 지원 – 전담 엔지니어링 팀에서 유지 관리하므로 커뮤니티에서 유지 관리하는 Ingress 컨트롤러보다 더 안정적일 수 있습니다. 상업적 지원은 일반적으로 포함되거나 추가 비용을 지불하고 이용할 수 있습니다.
단점:
인프라 잠금 – 기본 인그레스 컨트롤러는 인프라에 독립적이 아니므로 클라우드 간에 컨트롤러나 구성을 가져올 수 없습니다. 즉, 배포 환경마다 다른 Ingress 컨트롤러가 필요하며, 이로 인해 도구가 난립하고 팀원들이 학습하는 데 시간이 오래 걸리며 Ingress 컨트롤러의 보안을 강화하기가 더 어려워집니다.
기본 기능 – 일반적으로 대규모 배포에 필요한 고급 트래픽 관리 및 보안 기능이 부족합니다.
예측할 수 없는 비용(시간과 비용) – 초기 비용은 없거나 낮지만 애플리케이션이 성장함에 따라 극적으로 예측 불가능하게 증가할 수 있습니다. 이는 Ingress 컨트롤러의 최소 기능 세트에서 누락된 기능을 앱에 빌드하는 데 필요한 시간 형태를 취할 수 있으며, 물론 앱을 업데이트할 때마다 해당 기능을 회귀 테스트해야 합니다. 일부 기본 도구의 또 다른 단점은 앱이 더 인기를 얻으면서 처음에는 무해해 보이는 처리량 요금으로 인해 클라우드 요금이 엄청나게 뛰는 것입니다.
이러한 Ingress 컨트롤러는 대규모 프로덕션 배포를 지원하도록 설계된 라이선스 제품입니다. 한 가지 예로는 F5 NGINX Ingress Controller 의 NGINX Plus 기반 버전이 있는데, 이에 대해서는 4부에서 자세히 설명하겠습니다.
장점:
다양한 기능 세트 – Commercial Ingress 컨트롤러에는 대규모 배포에 대한 고급 트래픽 관리 및 확장성을 지원하는 강력한 기능 세트가 포함되어 있습니다. WAF나 서비스 메시 등 다른 프로덕션 등급 제품과의 통합이 가능할 수도 있습니다.
확장성 – 조직에서는 이러한 옵션이 사용자 지정이나 해결 방법이 필요하지 않은 "즉시 사용 가능한" 기능을 더 많이 갖추고 있기 때문에 시간을 절약할 수 있다는 것을 종종 알게 됩니다. 이러한 기능을 자동화 파이프라인에 쉽게 추가하여 필요에 따라 인프라를 확장할 수 있습니다.
신뢰성과 지원성 - 상업용 제품의 주요 이점 중 하나는 안정적이라는 것입니다. 즉, 각 릴리스마다 광범위한 테스트를 거치고 필요에 따라 정기적인 소프트웨어 업데이트와 보안 패치를 실시한다는 의미입니다. 일반적으로 전체 상업적 지원은 여러 단계로 제공되므로 심각한 문제가 발생한 후 몇 분 또는 몇 시간 내에 기밀 지원을 받을 수 있습니다.
단점:
개발 속도가 느림 – 상업용 Ingress 컨트롤러의 경우 안정성이 중요하기 때문에 기능 속도가 오픈 소스 대응 제품보다 약간 느릴 수 있습니다.
비용(돈) – 상업용 제품의 현실은 돈이 든다는 것입니다. 현금보다 개발자의 업무 주기가 긴 조직의 경우, 상황이 바뀔 때까지 비용이 거래 중단 사유가 될 수 있습니다.
요약: 조직의 규모가 커짐에 따라 팀과 앱의 복잡성에 따라 Ingress 컨트롤러를 선택하는 것이 더욱 중요해집니다. 조직이 매우 높은 수준의 복잡성에 도달하면, 상업용 Ingress 컨트롤러를 사용하는 것이 합리적입니다. 이는 관리 복잡성을 줄이고 새로운 제품 기능의 출시 시간을 단축할 수 있기 때문입니다.
다음 단계: 옵션 평가
이 단계에서는 필요에 맞지 않는 옵션을 제거하여 Ingress 컨트롤러를 직접 시험해볼 준비가 되었습니다. 고급 기능 비교를 시작할 수 있는 좋은 곳 중 하나는 learnk8s 입니다. 이곳에서는 평가한 Ingress 컨트롤러에 대한 무료 비교 표를 제공합니다.
Ingress 컨트롤러를 조사하다 보면 많은 옵션이 NGINX 기반이라는 것을 알게 될 것입니다. NGINX 기반 선택에 대한 개요는 이 시리즈의 마지막 블로그인 Ingress 컨트롤러 선택 가이드, 4부를 확인하세요. NGINX Ingress 컨트롤러 옵션이 곧 출시됩니다.
"이 블로그 게시물에는 더 이상 사용할 수 없거나 더 이상 지원되지 않는 제품이 참조될 수 있습니다. 사용 가능한 F5 NGINX 제품과 솔루션에 대한 최신 정보를 보려면 NGINX 제품군을 살펴보세요. NGINX는 이제 F5의 일부가 되었습니다. 이전의 모든 NGINX.com 링크는 F5.com의 유사한 NGINX 콘텐츠로 리디렉션됩니다."