주니퍼 블로그
Moderator Moderator , Moderator Moderator Moderator
주니퍼 블로그
Kubernetes: 최신 커널
Dec 10, 2019

 

1Blog1.jpg

 

2019년 북미 KubeCon + CloudNativeCon을 앞두고  주니퍼는 이 행사에서 예상되는 주요 주제 몇 가지에 대한 일련의 블로그를 게시하고 있습니다. 첫 번째 게시물에서는 모놀리식(monolithic)에서 마이크로서비스 기반 애플리케이션으로의 전환에 대해 살펴보고 Kubernetes를 모든 구성 요소의 오케스트레이터로 사용하여 마이크로서비스가 제공하는 속도와 확장성의 이점을 간략히 설명했습니다.

 

Kubernetes는 새로운 소프트웨어 정의 솔루션으로, SDN(Software-Defined Networking) 같이 만능 해결책으로 비쳐질 수 있습니다. 주니퍼에서는 이를 만화에 나왔던 캐릭터인 무지갯빛 나비 유니콘 고양이에 빗대어  JKitty라고 부릅니다. 그런데 나비 효과에 대해 들어보셨을 겁니다. Kubernetes의 파장은 나비의 날갯짓만큼이나 클 수 있습니다. Kubernetes는 실로 놀랍지만 아직 놀랍도록 쉽지는 않습니다. 마이크로서비스 아키텍처로의 전환에 따라 Kubernetes로 해결되는 문제만큼이나 많은 과제가 발생할 수 있습니다.

 

애플리케이션을 마이크로서비스로 나누면 보안과 네트워킹이 중요해집니다. 네트워크를 통해 여러 마이크로서비스가 서로 통신하여 더 큰 애플리케이션으로 통합되기 때문입니다. , 보안과 네트워킹에 문제가 있으면 실제로 문제가 발생합니다.

 

이번 주 개최되는 KubeCon에서 주니퍼가 명실공히 명성을 떨쳐온 확장 가능한 네트워킹 및 보안 부문에서 솔루션을 선보입니다.

 

이러한 솔루션은 Kubernetes로 인해 발생하는 과제를 해소할 수 있는 최적의 솔루션입니다. 자세히 알아보겠습니다. 자세히 알아보겠습니다.

 

마이크로서비스와 Kubernetes에 따른 기회 및 과제


제대로 설계된 마이크로서비스 기반 애플리케이션은 컨테이너 또는 서비스 노드 하나가 유실되더라도 계속 운영될 수 있습니다. 오케스트레이션 플랫폼을 통해 애플리케이션이 요구를 충족하도록 적절한 서비스의 충분한 인스턴스를 활성 상태로 유지한다면 말입니다마이크로서비스 기반의 애플리케이션은 결국 필요에 따라 개별 서비스 인스턴스를 추가하거나 제거하기 위한 것입니다.

 

Kubernetes는 제한 기반의 다양한 추가 스케줄링 기능을 통해 이 같은 장애 내구성을 구현하는 스케일아웃(scale-out) 오케스트레이션을 수행합니다. 이러한 이유로 Kubernetes는 종종 클라우드를 위한 운영 체제 커널로 불립니다. Kubernetes는 여러 면에서 분산 마이크로서비스 기반 애플리케이션 클러스터를 위한 강력한 프로세스 스케줄러입니다. 하지만 애플리케이션이 동작하는 데 필요한 것은 커널이 전부가 아닙니다.

 

업계 최대의 당면 과제를 해결하기 위해 주니퍼는 Engineering Simplicity를 모토로 스토리지, 보안, 네트워킹 및 모니터링 영역의 과제를 해결하고 있습니다. 고객의 이야기와 주니퍼의 고유한 경험을 토대로 볼 때 자체 Kubernetes 구축을 직접 관리하는 경우 이러한 과제를 확실하게 해결해야만 이 새로운 IT 플랫폼을 성공적으로 관리할 수 있습니다.

 

과제를 해결하는 한 가지 방법은 아웃소싱하는 것입니다. 서비스형 Kubernetes를 사용하면 어느 정도 문제가 간소화될 수 있지만 비용과 멀티클라우드 이식성 및 일관성 문제가 따릅니다. 따라서 대부분의 기업이 Kubernetes 클러스터를 직접 운영할 가능성이 높으며, 주니퍼는 이에 도움을 드릴 수 있습니다.

 

한계 없는 도전을 위한 한계 타파

 

Kubernetes 운영자는 클러스터의 규모를 제한하여 과제를 해결하려는 경우가 많습니다.

 

클러스터의 규모가 작아지면 보안과 안정성 영향 범위가 제한되고 모니터링, 스토리지 및 네트워킹 요구가 축소되어 하나의 대규모 공유 클러스터보다 요구를 해결하기가 쉬워 보입니다. 애플리케이션 팀마다 자체 클러스터를 구축하는 경우도 있고, 개발 수명주기 단계(개발, 테스트, 스테이징, 프로덕션)마다 자체 Kubernetes 클러스터를 두는 경우도 있습니다. 이렇듯 다양한 방식으로 많은 Kubernetes 운영자가 소규모 클러스터를 구축하고 있습니다. 예를 들어 10~20개의 노드에 각각 몇 개의 애플리케이션을 실행합니다. 하지만 Kubernetes는 이보다 훨씬 큰 규모로 확장할 수 있습니다.

 

많은 소규모 클러스터를 구축하면 무분별한 Kube 증가라는 문제가 발생합니다.

 

소규모 클러스터 설계는 이점이 있을 수 있지만 복잡성을 해소하는 것이 아니라 단순히 복잡성을 다른 곳으로 이동시키는 것으로, 금새 새로운 과제를 낳습니다. 여러 클러스터 관리에 따른 운영 과제에는 더 많은 Kubernetes 버전을 전송, 업그레이드 및 패치 적용하는 추가 작업이 포함됩니다. 게다가 이 모든 작업을 수행하기 위해 더 많은 엔지니어를 투입하거나 추가 작업을 통해 자체적인 자동화를 구현해야 합니다.

 

더욱이 각 서버 또는 VM 노드는 하나의 Kubernetes 클러스터에만 속할 수 있기 때문에 대규모 공유 클러스터에 비해 효율성이 저하됩니다. 리소스 효율성과 규모의 경제는 다양한 애플리케이션, , 배치(batch) 및 최대 사용 시간이 있을 때 나타납니다.

 

소규모 클러스터에 불과 몇 개의 애플리케이션을 실행하는 경우 전체 리소스 풀을 꾸준히 사용할 만큼 충분히 다양한 애플리케이션이 없어 리소스가 낭비될 수 있습니다. 운영자는 컨테이너형 애플리케이션처럼 클러스터 노드 수 자체를 유연하게 만들 수 있지만 각 소규모 클러스터 내 애플리케이션의 고유한 요구에 따라 이러한 오케스트레이션을 자동화하고 구축하기란 어렵습니다. Kubernetes 클러스터에는 고가용성을 위해 최소 3개의 서버 노드가 필요하므로 유지하는 클러스터 수만큼 낭비가 발생합니다.

 

다수의 클러스터는 개발자에게 새로운 과제를 안깁니다. 마이크로서비스 추적과 같은 개발자에게 도움을 주는 클라우드 네이티브 툴이 있지만 이러한 툴과 기타 미들웨어 서비스는 일반적으로 클러스터 전역이 아니라 클러스터 내부에서만 작동하도록 설계되어 있습니다. 또한 서비스 메시를 비롯한 다른 새로운 툴은 여러 클러스터에 걸쳐 페더레이션될 경우 더 복잡해질 수 있습니다.

 

애플리케이션이 에지 클라우드와 멀티클라우드까지 확장되므로, 클라우드 네이티브 인프라도 그래야 합니다.

 

Kubernetes는 단일 클러스터의 서버와 서버에서 실행되는 컨테이너를 관리하는 데 적합합니다. 하지만 일부 애플리케이션은 여러 FD(fault domain) 또는 AZ(Availability Zone)에 걸친 여러 클러스터에서 실행됩니다. 여러 소규모 클러스터가 동일한 데이터센터 AZ에 있는 것이 아니라 더 높은 가용성, 더 넓은 글로벌 범위, 향상된 사용자 지연을 위해 데이터센터 전반에 걸쳐 있게 됩니다.

 

클러스터마다 보안, 네트워킹, 모니터링 및 스토리지 과제를 해결하는 것이 우선이지만 AZ, 지역, 에지 클라우드 및 멀티클라우드에 걸친 여러 클러스터를 페더레이션하는 데 따른 과제를 해결할 수 있는 강력한 솔루션이 필요합니다. 다시 말하건데 주니퍼는 이 분야에서 강점을 지니고 있으며, KubeCon에서 이러한 솔루션을 선보입니다.

 

이러한 시나리오에서는 보안과 네트워킹이 글로벌 애플리케이션 아키텍처에서 더 중요한 역할을 하기 때문에 한층 복잡해집니다. 네트워크는 마이크로서비스와 멀티클라우드를 서로 연결해야 합니다. 심층적인 방어로 하나의 클러스터를 보호해야 하지만 포괄적으로 일관된 정책 적용을 위해서는 광범위한 방어도 필요합니다.

 

레거시 환경 관리

 

실제 기업 환경에서는 클라우드 네이티브 애플리케이션이 사용하는 서비스가 메인프레임에서 여전히 실행되는 애플리케이션부터 마이크로서비스 기반으로 실행되는 애플리케이션까지 다양합니다. 그렇다면 조직이 세계 각지에 걸친 다양한 프로바이더의 다양한 인프라에서 실행되는 매우 다양한 유형의 서비스를 사용하는 애플리케이션을 위해 안전하면서 성능과 확장성이 뛰어난 소프트웨어 정의 인프라를 제공하려면 어떻게 해야 할까요?

 

Kubernetes의 보안, 네트워크, 모니터링 및 스토리지 과제를 해결하는 것은 가능하더라도 VM과 베어메탈의 레거시 환경까지 관리하기란 쉽지 않습니다. 많은 Kubernetes용 최신 툴은 Kubernetes를 지원하지만 애플리케이션을 지원하지 않으며 운영도 지원하지 않습니다. 하지만 운영 팀이 다른 툴을 익히고 구축하려면 업무 부담이 가중됩니다최신 기술과 툴로 새로운 클라우드 네이티브 문제를 해결해야 하지만 최고의 툴로만 오늘날 최대 과제를 해결할 수 있습니다. 바로 운영 작업을 간소화하는 것입니다. 이는 오직 새로운 환경과 기존 환경을 지원하고 미래에도 지속적으로 변화에 대응함으로써 가능합니다.

 

운영 단순화를 위한 솔루션

 

이제 무슨 내용이 나올지 쉽게 예상할 수 있을 겁니다. 주니퍼는 오래 전부터 확장 가능한 고성능 시스템을 성공적으로 구축해 왔습니다.

 

 다음 블로그에서는 Kubernetes 사용자와 기타 조직을 위해 운영을 간소화해 주는 주니퍼 솔루션에 대해 소개합니다. 그 사이 juniper.net/cloud-native에서 주니퍼의 클라우드 네이티브 솔루션에 대한 자세한 내용을 확인해 보십시오. 

0 포인트