오늘은 주니퍼 네트웍스의 제품 발전에 있어서 중대하고 기쁜 날입니다. 최근 2년 동안 주니퍼 엔지니어링 팀은 ‘CN2’라는 프로젝트 이름으로 Contrail Networking의 대대적인 개편을 위해 노력했습니다. CN2는 Contrail의 중요한 두 번째 버전을 의미하기도 하지만, 사실은 Juniper Cloud-Native Contrail Networking(주니퍼 클라우드 네이티브 Contrail Networking)의 약자입니다. CN2는 CNCN 또는 CN2보다 부르기 더 쉬운 이름이니까요.
CN2 및 Contrail 22.1의 출시에 따라 주니퍼는 자동화된 고성능 고확장성 클라우드 네이티브 네트워킹 솔루션과 하이퍼스케일러의 DevOps 효율성을 제공하는 Kubernetes 네이티브 아키텍처를 제공합니다. CN2는 Kubernetes와 OpenStack 환경 모두에서 애플리케이션을 안전하게 연결하도록 설계되었다는 점이 가장 중요합니다.
새로운 변화: Kubernetes와 OpenStack의 지원 양상 변화
저는 2012년 주니퍼의 Contrail Systems 인수 과정과 2013년 첫 제품을 출시 과정에 함께하는 행운을 누렸습니다. 2012년 첫 선을 보인 시점부터 이 기간 동안 Contrail은 OpenStack이 오케스트레이터 역할을 한 IaaS(Infrastructure as a Service)와 NFV(네트워크 기능 가상화)를 위한 대규모 SDN(Software-Defined Networking)의 난제를 해결하는 데 집중했습니다. 2015년 이후 몇 년 사이에 Kubernetes는 애플리케이션 개발과 실행, 그리고 최근에는 VM 실행에 대한 양상을 완전히 바꾸어 놓았습니다.
Kubernetes는 OpenStack보다 광범위하게 사용되고 있습니다. 주니퍼는 주니퍼 고객을 위한 Kubernetes 및 OpenShift 사용 사례를 더욱 효과적으로 제공하고 탁월한 OpenStack 지원으로 사용자가 두 환경을 모두 균형 있게 활용하거나 Kubernetes 환경으로 진화하면서 공통적인 경험을 유지할 수 있도록 CN2를 대대적으로 현대화했습니다.
이 노력은 지금까지 계속되었으며, 이제 CN2는 Kubernetes를 우선적으로 지원합니다. 또한 CN2는 이제 Kubernetes 네이티브입니다.
변경 사항: Kubernetes 네이티브로 진화
Contrail의 혁신은 클라우드 네이티브 서비스와 Kubernetes 중심의 에코시스템에 국한되지 않고 CN2를 Kubernetes 자체의 확장 기능으로 재구축하면서 Kubernetes를 위해 반드시 필요한 최적화까지 이루었습니다.
Kubernetes CNI 등 다양한 기능으로 작동하는 CN2는 맞춤형 리소스의 Kubernetes 확장 프레임워크를 채택함으로써 클러스터 인프라의 핵심 구성 요소로 통합됩니다. 이제 CN2의 모든 요소는 Kubernetes 자체와 함께 프로비저닝됩니다. 고객은 원하는 대로 kubectl, K9s, 또는 다른 Kubernetes 도구를 사용할 수 있습니다. 또한 널리 사용되는 Kubernetes GUI인 Lens 역시 Contrail 플러그인으로 확장했습니다. 즉, 이제 RBAC 및 인접한 IAM 시스템을 사용하여 CN2 API가 통합된다는 의미입니다. 또한 CN2가 이제 코드로 구성되어 손쉽게 GitOps를 활성화하고, 인프라를 코드로 사용하고, CICD를 활성화할 수 있다는 점도 중요한 장점입니다. ArgoCD 및 ArgoWorkflows를 기반으로 한 Contrail 파이프라인까지 도입하여 주니퍼의 새로운 테스트 세트가 포함된 Contrail의 SDN을 위한 턴키 CICD를 제공합니다.
또한, CN2는 비공개 소스로 설계되었습니다. 21.4 및 이전 버전까지는 오픈 소싱을 활용했지만 22.1 버전에서는 CN2가 첫 선을 보이며 주니퍼의 무료 평가판 라이선스를 이용할 수 있습니다!
그대로 유지되는 사항: 탁월한 확장성, 성능, 개방형 네트워킹
CNI의 아이디어는 Kubernetes를 위한 Contrail을 개략적인 수준에서 환원주의적으로 바라보는 관점에서 비롯합니다. Contrail에는 SDN 요소가 훨씬 많이 포함되었는데, 이러한 요소로는 마이크로세그먼테이션 보안 정책, 네임스페이스 격리 보안, 수신 로드 밸런싱(Ingress Load Balancing), 외부에서 사용 가능한 마이크로서비스를 위한 네이티브 로드 밸런싱, 트래픽 미러링, 라우팅 정책, 네이티브 BGP 지원, 가상 네트워크 토폴로지, 가상 네트워크 등이 있습니다. 이 모든 요소는 오버레이와 함께, 또는 오버레이 없이 사용할 수 있습니다(오버레이 사용 권장).
리치 네트워킹 기능은 엔터프라이즈 조직과 클라우드 및 서비스 프로바이더가 직접 커버하기에는 너무 범위가 방대하고 전문적입니다. 따라서 향후 공개되는 CN2가 제공하는 모든 기능에 관한 다양한 기술 블로그와 데모 버전을 확인하시기 바랍니다.
Kubernetes가 클라우드에서 실행된다는 사실은 누구나 알고 있습니다. 주니퍼는 여러 클라우드를 구축했으므로 Contrail 역시 클라우드에서 실행할 수 있습니다. 그러나 셀프 매니지드 베어메탈 클라우드에서 CN2를 실행하는 것은 프라이빗 데이터센터에 혁신을 가져옵니다. 왜냐하면 CN2의 개방형 표준 기반 및 단순 연합 모델은 중앙 컨트롤러에서 다른 CN2 컨트롤러, 특히 주니퍼와 다른 벤더들의 BGP 라우터로 가상 네트워크를 피어링하기 때문입니다. 또한 온프레미스 구축을 통해 고객이 SmartNIC 옵션을 활용하여 성능을 극한으로 끌어올릴 수도 있습니다.
지금도 훌륭하지만 더욱 향상되는 사항
멀티클라우드가 발전함에 따라 멀티 Kubernetes도 발전합니다. 이러한 발전은 두 가지 방법으로 이루어지는데, 클러스터 개수와 Kubernetes의 형태 또는 분산에 따라 이루어집니다.
많은 조직은 클라우드는 물론 구축된 셀프 매니지드 분산 환경에서 매니지드 Kubernetes를 사용합니다. 공통적인 경험을 조성하고 통합하여 원활한 상호 연결을 달성함으로써 OpenShift 및 OpenStack을 포함한 모든 Kubernetes 배포에 부응하는 하이브리드 기능 덕분에 CN2는 여전히 SDN에 적절한 선택입니다.
KubeSprawl이란 이름은 여러 오케스트레이터에 대한 서비스를 넘어, 여러 개의 Kubernetes 클러스터를 사용하는 것에서 기인합니다. 이제 멀티 클러스터 Kubernetes는 이제 CN2의 강점입니다.
Contrail은 항상 뛰어난 확장성과 보안, 탄탄한 멀티 테넌시를 위해 구축되었으므로 대규모의 다목적, 다수의 팀, 공유 클러스터에 좋습니다. 하지만 반대로 조직이 팀별, 애플리케이션별, 개발 용도, 테스트 용도, 스테이징 용도, 운영 용도 등을 위해 여러 작은 클러스터를 구축하는 방향으로 나아감에 따라 이제 CN2는 복잡한 다중 클러스터 전체를 정리하고 SDN을 통합하는 기능을 제공합니다. 단 하나의 기본 클러스터에서 실행되고 해당 클러스터 및 다양한 기타 요소에 대한 CNI로서 서비스할 수 있습니다. 마찬가지로 다중 클러스터 분석을 조합할 수 있습니다. CN2는 강력한 통합 기능으로 잘 알려져 있지만 이러한 다중 클러스터 모델에서는 클러스터 간의 통합을 거치지 않아도 원활한 가상 네트워크와 보안 정책 관리가 가능합니다.
마지막으로, Kubernetes는 훨씬 쉽게 구축할 수 있다는 면에서 OpenStack과 다릅니다. 프라이빗 및 퍼블릭 클라우드, 베어 메탈에서 사용할 수 있으며 노드 하나에 속한 다수의 소규모 구축으로 확장할 수 있습니다. 이 때문에 CN2를 매우 쉽게 시도해 보고 테스트해볼 수 있도록 제공해야 했습니다. 몇 분 만에 간편하게 CN2를 사용하여 노트북에서 minikube를 실행할 수 있습니다. 또한 주니퍼는 로깅, 시스템 분석, 네트워크 분석, 플로우 텔레메트리를 선택적으로 사용하여 어떤 구축 환경이든 원활한 린 환경으로 구축할 수 있는 기능을 제공합니다.
CN2는 주니퍼 제품과 엔지니어링 팀이 완성한 놀라운 결과물이자 새로운 버전의 Contrail과 CN2의 새 시대를 여는 출발점입니다.
추가 리소스