컨테이너는 최신 엔터프라이즈 인프라의 기본 구성 요소이며, Docker와 Kubernetes는 컨테이너의 세계에서 가장 유명한 두 가지입니다. 결과적으로 Kubernetes와 Docker는 인기 있는 DevOps 주제이지만, 양자택일의 문제가 아닙니다.
기업은 Docker와 Kubernetes(K8s) 를 함께 사용하여 DevOps 파이프라인을 구축하고 확장할 수 있습니다. 그러나 기업은 컨테이너 워크로드를 직면하는 수많은 위협으로부터 보호하기 위해 DevSecOps 모범 사례를 따라야 합니다. 이 글에서는 Kubernetes와 Docker의 주제, 더 적절한 Kubernetes와 도커 스웜 비교 및 Serverless Security.
주제를 이해하려면 컨테이너를 이해하는 것부터 시작해야 합니다. 컨테이너는 애플리케이션에 필요한 모든 라이브러리와 종속성을 단일 패키지에 포함하는 코드 단위입니다.
컨테이너는 종종 가상 머신과 비교되지만 몇 가지 주요한 점에서 차이가 있습니다:
컨테이너가 해결하는 근본적인 문제 중 하나는 애플리케이션이 개발 환경에서는 작동하지만 프로덕션 환경에서는 작동하지 않는 기존 IT 운영 환경을 괴롭혔던 "내 환경에서는 작동한다"는 문제입니다. 컨테이너를 사용하면 기본 컨테이너 엔진(예: Docker 엔진)만 있으면 모든 하드웨어, 운영 체제 또는 클라우드에서 정확히 동일한 워크로드를 실행할 수 있습니다.
Docker는 기업이 컨테이너를 패키징하고 실행하는 데 도움이 되는 플랫폼입니다.
다른 플랫폼에서도 기업이 컨테이너로 작업할 수 있지만, Docker는 사용 편의성과 확장성 덕분에 인기를 얻고 있습니다. 오늘날 Docker는 모든 규모의 기업에서 마이크로서비스 아키텍처와 CI\CD 파이프라인을 사용하는 클라우드 네이티브 앱의 필수 요소입니다.
기업에서는 Docker를 통해 일반 텍스트 Docker파일을 사용하여 컨테이너를 생성할 수 있습니다. 도커파일에는 도커가 컨테이너 이미지를 자동으로 빌드하는 데 도움이 되는 지침(명령어)이 포함되어 있습니다. Docker 컨테이너 이미지는 실행되면 컨테이너가 되는 변경 불가능한 템플릿입니다. Docker 컨테이너는 실제로 워크로드를 실행하고 변경 불가능한 컨테이너 이미지 위에 쓰기 가능한 컨테이너 레이어를 추가하는 역할을 합니다. Docker 컨테이너 이미지는 변경되지 않으므로 기업은 여러 환경에서 동일한 컨테이너를 안정적이고 반복적으로 인스턴스화할 수 있습니다.
Docker가 컨테이너를 생성하고 실행하기 위한 도구라면, Kubernetes는 컨테이너 오케스트레이션을 위한 도구입니다.
Kubernetes를 통해 기업은 다음을 관리할 수 있습니다. 클러스터 도커 컨테이너를 포함한 컨테이너를 대규모로 지원합니다. 예를 들어 Kubernetes 리소스 구성을 활성화합니다(예 컨테이너당 RAM), 자동 확장, 로드 밸런싱 및 엔터프라이즈 애플리케이션의 변경 롤아웃(또는 롤백)을 지원합니다.
두 가지 용도가 서로 다르기 때문에 Kubernetes와 Docker는 양자택일의 주제가 아닙니다. 실제로 많은 경우, DevOps 파이프라인에서 Docker와 Kubernetes가 함께 사용됩니다. 는 Docker 플랫폼 외에도 Kubernetes와 유사한 컨테이너 오케스트레이션 도구인 Docker Swarm도 제공합니다.
Kubernetes 대 Docker와 달리, Docker Swarm 대 Kubernetes는 사과 대 사과 비교입니다. 두 가지 모두 기업이 컨테이너 배포를 관리하고 확장하는 데 사용할 수 있는 오픈 소스 컨테이너 오케스트레이션 플랫폼입니다.
두 가지 모두 컨테이너 오케스트레이션을 위한 실행 가능한 옵션이지만, 현대 기업들 사이에서 Kubernetes가 가장 선호되는 옵션으로 부상했습니다. 실제로 가장 최근의 RedHat 상태 Kubernetes 보고서 에 따르면 응답한 DevOps, 엔지니어링 및 보안 전문가 중 88%가 Kubernetes를 사용하는 것으로 나타났습니다.
강력한 기능 세트, 여러 컨테이너 런타임(컨테이너, CRI-O, Docker 엔진, Mirantis)에 대한 지원, 파드 및 레플리카세트와 같은 개념을 사용한 강력한 추상화 등이 Kubernetes가 우세한 이유 중 일부입니다.
그러나 Docker Swarm은 일반적으로 Kubernetes보다 가볍고 덜 복잡하기 때문에 간단한 컨테이너 오케스트레이션 솔루션을 찾는 기업에게 유용할 수 있습니다. 도커 스웜 "클래식"은 더 이상 적극적으로 지원되지 않지만, 현재 버전의 도커 엔진에는 도커 스웜 모드가 포함되어 있습니다. 스웜 모드를 사용하면 기업에서 컨테이너 오케스트레이션 작업에 Docker CLI를 사용할 수 있습니다.
예를 들어, Swarm은 네트워크 구성 지원이 제한적이고 Docker 런타임만 지원하는 등 Kubernetes의 고급 기능이 부족하지만, Docker Compose 및 Docker 레지스트리와 같은 Docker 에코시스템의 다른 구성 요소와 긴밀하게 통합되어 있습니다.
도커 스웜은 간단한 도커 컨테이너 오케스트레이션을 위한 훌륭한 옵션이지만, 이것이 유일한 옵션은 아닙니다. 2020년 8월, K3s (경량 Kubernetes)는 클라우드 네이티브 컴퓨팅 재단(CNCF) 샌드박스 프로젝트로 승인되었으며 이미 GitHub에서 19,000개 이상의 별을 받았습니다.
기업에서 사용하는 컨테이너 오케스트레이션 플랫폼이나 컨테이너 엔진에 관계없이 컨테이너 워크로드를 보호하는 것은 필수입니다. 컨테이너는 기업 인프라의 기본 구성 요소이기 때문에 공격자에게도 높은 가치의 표적이 됩니다.
에서 컨테이너 이미지의 크립토마이닝 익스플로잇 와 같은 컨테이너 이스케이프 취약성에 대한 CVE-2019-5736의 런트 결함를 통해 기업은 컨테이너를 다양한 위협으로부터 보호해야 합니다.
위험을 제한하고 보안 상태를 개선하기 위해 컨테이너 보안 기업이 따라야 할 몇 가지 모범 사례는 다음과 같습니다:
참조 Docker 컨테이너 보안 그리고 Kubernetes(K8s) 보안 를 참조하여 컨테이너 보안에 대해 자세히 알아보세요.
컨테이너 보안을 위한 CloudGuard 는 빌드부터 런타임까지 엔터프라이즈 워크로드를 엔드 투 엔드 보호하도록 설계된 완전 자동화된 컨테이너 보안 플랫폼입니다. CloudGuard를 통해 기업은 기존 보안 도구로는 해결할 수 없는 방식으로 최신 컨테이너 보안 문제를 해결할 수 있는 DevSecOps 플랫폼을 갖게 됩니다.
예를 들어, CloudGuard를 통해 기업은 컨테이너 보안 솔루션을 확보할 수 있습니다:
CloudGuard가 기업 보안 태세를 개선하는 데 어떻게 도움이 되는지 자세히 알아보세요, 클라우드 보안 전문가가 진행하는 데모에 등록하세요.. 데모에서는 멀티클라우드 환경 전체에서 컨테이너를 완벽하게 제어하고 가시성을 확보하는 방법을 알아보세요. 컨테이너 보안에 대해 자세히 알아보려면 무료로 다운로드하세요. 컨테이너 보안 가이드.