2021.01.29

'대세 행보 계속'··· 2021년 컨테이너와 쿠버네티스 전망 3가지

Scott McCarty | InfoWorld
드디어 2021년이다. 2020년 내내 기다렸던 바로 그 해다. 그간 리눅스 컨테이너는 기업이 민첩성을 확보하고 유지하도록 도움을 줬다. 이는 2020년처럼 위기를 헤쳐나가고 앞으로 닥칠 모든 상황에 대비하기 위해 주목해야 할 이정표다. 올 한 해 그리고 한동안 기업들이 ‘컨테이너’와 관련해 관심 있게 지켜봐야 할 세 가지 사항을 살펴본다. 
 
ⓒGetty Images

 컨테이너와 가상화
리눅스 컨테이너가 인기를 얻기 시작했던 당시, ‘컨테이너 vs. 가상머신(VM)’에 관한 논의가 뜨거웠다. 현재, 이 논의는 ‘컨테이너와 VM’으로 바뀌고 있다.

이는 많은 기업이 컨테이너와 쿠버네티스 사용을 확대하는 가운데 과거라는 현실, 즉 레거시 시스템에 직면하게 되면서 더욱더 그러하다. 물론 모든 것을 처음부터 구축하는 방법이 있지만 대부분의 기업에서 이는 거의 불가능하다. 예산 제약 때문이다. 

이러한 상황은 유닉스에서 리눅스로 바뀔 때도 마찬가지였다. 또 베어메탈 기반 리눅스에서 VM 기반 리눅스로 바뀔 때도 그러했다. 사실 모든 새로운 변화에서 이런 일이 발생한다. 

최대한 많은 워크로드를 클라우드 네이티브 인프라로 가져오고 싶겠지만 VM에 더 적합한 워크로드가 있고, 여기에는 타당한 이유가 있다. 하나부터 열까지 모든 애플리케이션을 컨테이너용으로 다시 작성하긴 어렵기 때문이다.  

그렇다면 VM 내에서 컨테이너를 실행하는 방법이 있다. 이 방법이 현재 워크로드에 더 나은 수준의 격리를 제공할까? 이 분야에서 살펴볼 흥미로운 플랫폼이 바로 ‘카타 컨테이너(Kata Containers)’다. 카타는 하드웨어 가상화를 사용, 컨테이너처럼 작동하지만 더 강력한 워크로드 격리를 제공하는 경량 VM으로 안전한 컨테이너 런타임을 구축한다. 

2021년 기업들은 가상화와 컨테이너 기술이 서로 교차하고 보완하는 다양한 방법들을 계속 주시해야 한다. 또 개발팀, 운영팀, 비즈니스 관리팀 등이 이른바 컨테이너와 VM의 ‘교류’를 지원하기 위해 현재의 업무 방식을 어떻게 바꿔야 할지도 고려해야 한다. 

컨테이너 툴링
기업에서 주목해야 할 컨테이너 기반 도구는 수백만 개가 있다(아마 정확하게 100만 개는 아닐지 몰라도 그렇게 보이긴 한다). 이 가운데서 올 한 해 주목해야 할 카테고리는 바로 ‘빌드’ 도구다. 예를 들면 클라우드 네이티브 빌드팩을 사용하면 복잡성을 처리할 필요 없이 복잡한 작업을 수행할 수 있다. 

헤로쿠(Heroku)에서 시작된 빌드팩은 앱의 소스 코드를 검사하고, 이를 실행하기 위한 계획(예: 필요한 종속성 등)을 파악한다. 또 빌드팩으로 앱의 네트워크 서비스를 설정할 수 있다. 

이 모든 기능을 통해 개발자는 네트워킹, 컴플라이언스, 보안과 같은 문제보다는 앱에 더 집중할 수 있다(그렇다고 해서 개발자가 네트워킹, 컴플라이언스, 보안에 신경 쓰지 않아도 된다고 말하는 건 아니다).

이 밖에 관리자 권한 없이 생성하고 실행하며 관리할 수 있는 루트리스 컨테이너와 관련된 흥미로운 점이 많다. 무엇이 있을까? 주요 이점은 보안이지만 여기에 더해 루트리스 컨테이너를 실행하면 새 시스템 데몬을 실행할 필요가 없기 때문에 오버헤드를 줄일 수 있다. 

‘포드맨(Podman)’은 루트 또는 권한이 없는 사용자(루트리스)가 컨테이너를 실행할 수 있도록 하는 도구다. 데몬이 필요 없는 이 오픈소스 기반 리눅스 네이티브 도구를 사용하면 OCI 컨테이너와 컨테이너 이미지를 사용하여 애플리케이션을 쉽게 찾고, 실행하고, 빌드하며, 공유하고, 배포할 수 있다. 

주목해야 할 또 다른 도구는 보안을 최우선으로 하는 ‘스택록스(StackOrx)’다. 이는 실행 및 심층 데이터 수집을 위한 구성요소를 쿠버네티스 클러스터 인프라에 직접 배포해 컨테이너와 쿠버네티스 클러스터 전반에 걸쳐 가시성을 제공한다. 게다가 스택록스 정책 엔진은 기업이 보안 베스트 프랙티스와 업계 표준을 더욱더 쉽게 적용할 수 있도록 하는 제어 기능을 기본 제공한다. 
 
 

엣지에서의 컨테이너
2020년 초반 엣지 컴퓨팅은 (비유하자면) 속삭이는 수준이었다. 그러나 2020년이 끝날 무렵에는 포효하는 정도(또는 적어도 으르렁거리는 정도)가 됐다. 팬데믹으로 인해 많은 사람과 기업, 아니 모든 것이 멀리 떨어진 엣지로 내몰리면서 엣지 컴퓨팅으로의 전환을 포함해 디지털 트랜스포메이션이 가속화됐기 때문이다. 

이런 맥락에서 컨테이너와 쿠버네티스가 앞으로 엣지 컴퓨팅에서 큰 역할을 하리라 전망된다. 컨테이너의 이미지 패키징 포맷은 엣지에서 정말 편리하다. CI/CD 시스템에서 컨테이너 이미지를 빌드하고 레지스트리로 푸시한 다음, 예를 들면 수십 개의 IoT 장치가 이미지를 가져오도록 할 수 있다. 문제가 없다면 수천 또는 수백만 개의 장치에 푸시할 수도 있다. 

이는 컨테이너의 유연성, 호환성, 확장성이 엣지에서 어떻게 작동할 수 있는지 보여주는 하나의 사례에 불과하다. 물론 쿠버네티스는 뛰어난 확장성을 가지고 있으며, 여러 환경에서 작동한다. 

또 앞으로 어떤 것이 나타나든 이를 충분히 지원할 수 있을 정도로 유연하다. 이 모든 것이 쿠버네티스를 클라우드뿐만 아니라 엣지에서도 컨테이너 프로세스를 오케스트레이션 하는 데 매우 적합하게 만든다. 

쿠버네티스 v1.20
2020년 말 쿠버네티스 버전 1.20이 출시됐다. 확실하게, 이 버전은 2021년에 영향을 미칠 전망이다. 쿠버네티스 개발팀은 이번 릴리즈를 두고 “한동안 가장 기능이 풍부할 버전 가운데 하나”라고 강조했다. 

쿠버네티스 개발팀이 밝힌 이번 버전의 주된 기능은 다음과 같다. 

• 볼륨을 스냅샷할 수 있는 기능(CSI Volume Snapshot)이 스테이블 단계로 들어섰다. 스냅샷은 쿠버네티스에서 엔터프라이즈급 스토리지 관리에 중요한 요소다. 
• Kubectl에서 직접 일반적인 디버깅 워크플로우를 지원하는 기능(Kubectl Debug)의 베타 버전이 제공된다. 
• Kube-apiserver가 수신 요청의 우선순위를 지정할 수 있도록 하는 기능(API Priority & Fairness)의 베타 버전이 제공된다.
• Process ID Limiting 기능이 GA로 공개됐다. 
• 노드 시스템 중단을 인지하고, 포드를 정상적으로 종료할 수 있도록 하는 기능(Gracefull Node Shutdown)이 알파 테스트 단계로 추가됐다.


이 밖에도 쿠버네티스 v1.20에는 도커 지원 중단(큰 변화는 없으니 걱정하지 않아도 된다. 자세한 내용은 이곳을 참고하라)과 Exec 프로브 타임아웃 처리 문제 해결을 포함해 새로운 기능과 개선사항이 많이 추가됐다. 

Exec 프로브는 레디스(Redis)와 같은 소프트웨어에서 많이 사용되며, 소프트웨어가 정상적으로 실행되는지 확인하는 기본적인 방법은 셸을 컨테이너에 넣고 특정 명령을 실행하는 것이다. 그런데 프로브가 타임아웃값을 반영하지 않는 버그를 이번에 해결한 것이다. 

쿠버네티스의 진화는 컨테이너의 진화로 볼 수 있기 때문에 기업은 위에서 설명한 변화가 비즈니스에 어떤 영향을 미칠지 고려해야 한다. 

이른바 ‘넥스트 노멀(Next Normal)’로 넘어가더라도 컨테이너는 계속해서 중요한 역할을 할 것이다. 따라서 컨테이너 생태계의 변화에 관심을 기울여야 한다. 그래야 기업은 가장 수요가 많은 애플리케이션과 서비스로 직원과 고객을 계속 지원할 수 있다. ciokr@idg.co.kr
 



2021.01.29

'대세 행보 계속'··· 2021년 컨테이너와 쿠버네티스 전망 3가지

Scott McCarty | InfoWorld
드디어 2021년이다. 2020년 내내 기다렸던 바로 그 해다. 그간 리눅스 컨테이너는 기업이 민첩성을 확보하고 유지하도록 도움을 줬다. 이는 2020년처럼 위기를 헤쳐나가고 앞으로 닥칠 모든 상황에 대비하기 위해 주목해야 할 이정표다. 올 한 해 그리고 한동안 기업들이 ‘컨테이너’와 관련해 관심 있게 지켜봐야 할 세 가지 사항을 살펴본다. 
 
ⓒGetty Images

 컨테이너와 가상화
리눅스 컨테이너가 인기를 얻기 시작했던 당시, ‘컨테이너 vs. 가상머신(VM)’에 관한 논의가 뜨거웠다. 현재, 이 논의는 ‘컨테이너와 VM’으로 바뀌고 있다.

이는 많은 기업이 컨테이너와 쿠버네티스 사용을 확대하는 가운데 과거라는 현실, 즉 레거시 시스템에 직면하게 되면서 더욱더 그러하다. 물론 모든 것을 처음부터 구축하는 방법이 있지만 대부분의 기업에서 이는 거의 불가능하다. 예산 제약 때문이다. 

이러한 상황은 유닉스에서 리눅스로 바뀔 때도 마찬가지였다. 또 베어메탈 기반 리눅스에서 VM 기반 리눅스로 바뀔 때도 그러했다. 사실 모든 새로운 변화에서 이런 일이 발생한다. 

최대한 많은 워크로드를 클라우드 네이티브 인프라로 가져오고 싶겠지만 VM에 더 적합한 워크로드가 있고, 여기에는 타당한 이유가 있다. 하나부터 열까지 모든 애플리케이션을 컨테이너용으로 다시 작성하긴 어렵기 때문이다.  

그렇다면 VM 내에서 컨테이너를 실행하는 방법이 있다. 이 방법이 현재 워크로드에 더 나은 수준의 격리를 제공할까? 이 분야에서 살펴볼 흥미로운 플랫폼이 바로 ‘카타 컨테이너(Kata Containers)’다. 카타는 하드웨어 가상화를 사용, 컨테이너처럼 작동하지만 더 강력한 워크로드 격리를 제공하는 경량 VM으로 안전한 컨테이너 런타임을 구축한다. 

2021년 기업들은 가상화와 컨테이너 기술이 서로 교차하고 보완하는 다양한 방법들을 계속 주시해야 한다. 또 개발팀, 운영팀, 비즈니스 관리팀 등이 이른바 컨테이너와 VM의 ‘교류’를 지원하기 위해 현재의 업무 방식을 어떻게 바꿔야 할지도 고려해야 한다. 

컨테이너 툴링
기업에서 주목해야 할 컨테이너 기반 도구는 수백만 개가 있다(아마 정확하게 100만 개는 아닐지 몰라도 그렇게 보이긴 한다). 이 가운데서 올 한 해 주목해야 할 카테고리는 바로 ‘빌드’ 도구다. 예를 들면 클라우드 네이티브 빌드팩을 사용하면 복잡성을 처리할 필요 없이 복잡한 작업을 수행할 수 있다. 

헤로쿠(Heroku)에서 시작된 빌드팩은 앱의 소스 코드를 검사하고, 이를 실행하기 위한 계획(예: 필요한 종속성 등)을 파악한다. 또 빌드팩으로 앱의 네트워크 서비스를 설정할 수 있다. 

이 모든 기능을 통해 개발자는 네트워킹, 컴플라이언스, 보안과 같은 문제보다는 앱에 더 집중할 수 있다(그렇다고 해서 개발자가 네트워킹, 컴플라이언스, 보안에 신경 쓰지 않아도 된다고 말하는 건 아니다).

이 밖에 관리자 권한 없이 생성하고 실행하며 관리할 수 있는 루트리스 컨테이너와 관련된 흥미로운 점이 많다. 무엇이 있을까? 주요 이점은 보안이지만 여기에 더해 루트리스 컨테이너를 실행하면 새 시스템 데몬을 실행할 필요가 없기 때문에 오버헤드를 줄일 수 있다. 

‘포드맨(Podman)’은 루트 또는 권한이 없는 사용자(루트리스)가 컨테이너를 실행할 수 있도록 하는 도구다. 데몬이 필요 없는 이 오픈소스 기반 리눅스 네이티브 도구를 사용하면 OCI 컨테이너와 컨테이너 이미지를 사용하여 애플리케이션을 쉽게 찾고, 실행하고, 빌드하며, 공유하고, 배포할 수 있다. 

주목해야 할 또 다른 도구는 보안을 최우선으로 하는 ‘스택록스(StackOrx)’다. 이는 실행 및 심층 데이터 수집을 위한 구성요소를 쿠버네티스 클러스터 인프라에 직접 배포해 컨테이너와 쿠버네티스 클러스터 전반에 걸쳐 가시성을 제공한다. 게다가 스택록스 정책 엔진은 기업이 보안 베스트 프랙티스와 업계 표준을 더욱더 쉽게 적용할 수 있도록 하는 제어 기능을 기본 제공한다. 
 
 

엣지에서의 컨테이너
2020년 초반 엣지 컴퓨팅은 (비유하자면) 속삭이는 수준이었다. 그러나 2020년이 끝날 무렵에는 포효하는 정도(또는 적어도 으르렁거리는 정도)가 됐다. 팬데믹으로 인해 많은 사람과 기업, 아니 모든 것이 멀리 떨어진 엣지로 내몰리면서 엣지 컴퓨팅으로의 전환을 포함해 디지털 트랜스포메이션이 가속화됐기 때문이다. 

이런 맥락에서 컨테이너와 쿠버네티스가 앞으로 엣지 컴퓨팅에서 큰 역할을 하리라 전망된다. 컨테이너의 이미지 패키징 포맷은 엣지에서 정말 편리하다. CI/CD 시스템에서 컨테이너 이미지를 빌드하고 레지스트리로 푸시한 다음, 예를 들면 수십 개의 IoT 장치가 이미지를 가져오도록 할 수 있다. 문제가 없다면 수천 또는 수백만 개의 장치에 푸시할 수도 있다. 

이는 컨테이너의 유연성, 호환성, 확장성이 엣지에서 어떻게 작동할 수 있는지 보여주는 하나의 사례에 불과하다. 물론 쿠버네티스는 뛰어난 확장성을 가지고 있으며, 여러 환경에서 작동한다. 

또 앞으로 어떤 것이 나타나든 이를 충분히 지원할 수 있을 정도로 유연하다. 이 모든 것이 쿠버네티스를 클라우드뿐만 아니라 엣지에서도 컨테이너 프로세스를 오케스트레이션 하는 데 매우 적합하게 만든다. 

쿠버네티스 v1.20
2020년 말 쿠버네티스 버전 1.20이 출시됐다. 확실하게, 이 버전은 2021년에 영향을 미칠 전망이다. 쿠버네티스 개발팀은 이번 릴리즈를 두고 “한동안 가장 기능이 풍부할 버전 가운데 하나”라고 강조했다. 

쿠버네티스 개발팀이 밝힌 이번 버전의 주된 기능은 다음과 같다. 

• 볼륨을 스냅샷할 수 있는 기능(CSI Volume Snapshot)이 스테이블 단계로 들어섰다. 스냅샷은 쿠버네티스에서 엔터프라이즈급 스토리지 관리에 중요한 요소다. 
• Kubectl에서 직접 일반적인 디버깅 워크플로우를 지원하는 기능(Kubectl Debug)의 베타 버전이 제공된다. 
• Kube-apiserver가 수신 요청의 우선순위를 지정할 수 있도록 하는 기능(API Priority & Fairness)의 베타 버전이 제공된다.
• Process ID Limiting 기능이 GA로 공개됐다. 
• 노드 시스템 중단을 인지하고, 포드를 정상적으로 종료할 수 있도록 하는 기능(Gracefull Node Shutdown)이 알파 테스트 단계로 추가됐다.


이 밖에도 쿠버네티스 v1.20에는 도커 지원 중단(큰 변화는 없으니 걱정하지 않아도 된다. 자세한 내용은 이곳을 참고하라)과 Exec 프로브 타임아웃 처리 문제 해결을 포함해 새로운 기능과 개선사항이 많이 추가됐다. 

Exec 프로브는 레디스(Redis)와 같은 소프트웨어에서 많이 사용되며, 소프트웨어가 정상적으로 실행되는지 확인하는 기본적인 방법은 셸을 컨테이너에 넣고 특정 명령을 실행하는 것이다. 그런데 프로브가 타임아웃값을 반영하지 않는 버그를 이번에 해결한 것이다. 

쿠버네티스의 진화는 컨테이너의 진화로 볼 수 있기 때문에 기업은 위에서 설명한 변화가 비즈니스에 어떤 영향을 미칠지 고려해야 한다. 

이른바 ‘넥스트 노멀(Next Normal)’로 넘어가더라도 컨테이너는 계속해서 중요한 역할을 할 것이다. 따라서 컨테이너 생태계의 변화에 관심을 기울여야 한다. 그래야 기업은 가장 수요가 많은 애플리케이션과 서비스로 직원과 고객을 계속 지원할 수 있다. ciokr@idg.co.kr
 

X