We couldn't find a match for given <KEYWORD>, please try again.

컨테이너란?

컨테이너는 애플리케이션과 해당 종속 항목(라이브러리, 바이너리 및 추가 구성 파일)을 포함하는 완전한 런타임 환경을 캡슐화하여 애플리케이션의 이동성, 확장성, 보안 및 대응력을 향상시키는 경량의 독립형 패키지입니다.

컨테이너는 대상 환경에 관계없이 애플리케이션을 배포하고 관리하는 간단한 방법을 제공하기 때문에 개발자와 운영자 모두에게 인기가 있습니다. 개발 팀과 운영 팀 간의 상호 작용을 개선하여 DevOpsDevSecOps 작업을 촉진합니다.

컨테이너는 리소스를 효율적으로 사용하여 높은 밀도 및 리소스 사용률이 가능합니다. 컨테이너는 거의 모든 애플리케이션과 함께 사용할 수 있지만, 여러 컨테이너가 별도의 애플리케이션 구성 요소 또는 서비스를 실행하는 마이크로 서비스와 관련이 있는 경우가 많습니다. 애플리케이션을 구성하는 컨테이너는 일반적으로 Kubernetes와 같은 컨테이너 조정 플랫폼을 사용하여 조정 및 관리됩니다.

컨테이너는 하나 이상의 저장소에서 가져온 여러 이미지의 애플리케이션을 라이브러리 또는 기타 애플리케이션 종속 항목과 함께 패키징하여 생성되므로 이동성 및 호환성 문제가 발생하지 않습니다.

Kubernetes용 컨테이너를 구축하는 새로운 방법

Kubernetes용 컨테이너를 구축하는 새로운 방법

컨테이너와 가상 머신 간의 시너지 효과

컨테이너와 가상 머신 비교

각 가상 머신(VM)은 운영 체제의 전체 또는 부분 인스턴스를 실행하는 반면, 여러 컨테이너는 단일 운영 체제 인스턴스를 공유합니다. 컨테이너에는 애플리케이션을 실행하는 데 필요한 모든 것이 포함되어 있어 컨테이너화된 여러 애플리케이션을 단일 호스트 시스템에서 독립적으로 실행할 수 있습니다. 가상 머신 내에서 여러 컨테이너를 실행할 수 있으므로 두 기술을 함께 사용할 수 있습니다.

컨테이너 사용의 이점은 무엇입니까?

컨테이너를 사용하여 애플리케이션을 구축하면 새로운 기능을 더 빠르게 제공하고 지속적인 혁신 환경을 조성할 수 있습니다. 다음과 같은 이점을 누릴 수 있습니다.

대응력. 개발자 대응력이 향상되어 생산성과 애플리케이션 개발 시간이 단축됩니다. 컨테이너는 CI/CD 파이프라인을 간소화하며 DevOps 팀 및 마이크로 서비스 배포에 적합합니다.

확장성 및 고가용성. Kubernetes를 사용하면 워크로드 요구 사항의 변화에 따라 컨테이너 배포를 자동으로 확장 또는 축소하여 애플리케이션 가용성을 높일 수 있습니다.

이동성. 컨테이너는 가상 머신에 비해 경량이며 리소스 사용도 적습니다. 컨테이너화된 애플리케이션은 인프라에 구애받지 않으며 배포 위치에 관계없이 동일하게 작동합니다.

복원력. 컨테이너화된 애플리케이션은 OS 및 기타 컨테이너에서 분리되고 추상화됩니다. 즉, 하나의 컨테이너는 실행 중인 다른 컨테이너에 영향을 주지 않고 실패할 수 있습니다.

컨테이너 표준

컨테이너 형식 지정 및 런타임 환경에 대한 표준은 개방형 업계 표준을 만들기 위한 명확한 목적으로 2015년에 구성된 프로젝트인 Open Container Initiative(OCI)에 의해 제어됩니다. OCI는 현재 런타임 규격(runtime-spec)과 이미지 규격(image-spec)의 두 가지 규격을 제공합니다.

컨테이너 보안

컨테이너는 보안 정책을 구현하고 관리하는 방식을 변경해야 합니다. 보안은 DevSecOps 접근 방식을 사용하여 가능한 한 많이 컨테이너 수명주기에 내장되어 있어야 합니다. 보안 팀은 개발 및 운영 팀과의 협력을 통해 기존 거버넌스 및 규정 준수 정책을 조정하여 애플리케이션 수명주기에 대한 변경 사항과 새로운 툴을 수용합니다.

컨테이너 자동화

수동 작업은 개발 팀의 속도를 저하시킵니다. 컨테이너 자동화를 통해 개발자는 패키징 대신 코드에 집중할 수 있습니다. 컨테이너 이미지는 계층으로 구축됩니다. 컨테이너 구축에 대한 자동화된 접근 방식을 사용하면 계층이 변경될 때마다 해당 계층만 업데이트하면 됩니다. 예를 들어 시스템 라이브러리만 업데이트해야 하는 경우 라이브러리가 포함된 계층만 재구축해야 합니다. 다른 계층은 변경되지 않으므로 테스트 및 검증 부담이 줄어들어 업데이트된 컨테이너를 운영 환경에 더 빠르고 더 자주 적용할 수 있습니다.

Docker

Docker는 2013년에 도입된 이래로 컨테이너와 거의 같은 의미로 사용되어 왔으며 컨테이너 이미지를 구축하는 데 계속 사용되고 있습니다. Docker 환경에는 컨테이너 런타임과 컨테이너 구축 및 이미지 관리가 포함됩니다. Docker는 OCI 표준 컨테이너 이미지를 구축하므로 Docker 이미지는 모든 OCI 호환 컨테이너 런타임에서 실행됩니다.

Kubernetes

Kubernetes는 사실상의 표준이 된 오픈 소스 컨테이너 Orchestrator입니다. Kubernetes는 선언적 구성 및 자동화를 통해 컨테이너에 대한 배포, 로드 밸런싱, 리소스 할당 및 보안 적용을 자동화합니다. 컨테이너화된 애플리케이션을 원하는 상태로 계속 실행하므로 확장성과 복원력을 보장합니다. 컨테이너 조정은 컨테이너 수명주기의 복잡성을 관리하는 데 도움이 됩니다. 이는 컨테이너 수가 많은 분산된 애플리케이션에서 특히 중요합니다.
Kubernetes는 다양한 런타임 간의 원활한 상호 운용성을 통해 광범위한 컨테이너 런타임을 지원하는 컨테이너 런타임 인터페이스(CRI)로 전환하고 있습니다. 2020년 12월에 Kubernetes와 함께 사용하기 위한 Docker 런타임의 지원 중단이 발표되었습니다.

컨테이너 사용 사례

개발자용

  • 한 버전의 언어 컴파일러 또는 인터프리터에서 개발된 코드를 수정 없이 후속 버전에서 완벽하게 실행할 수 있도록 서로 다른 플랫폼 및 구성에서 애플리케이션 이동성을 개선합니다.
  • 개발자가 동일한 인프라에서 개발, 테스트, 배포할 필요가 없으므로 랩톱에서 코드를 작성하는 개발자가 온프레미스 서버, 클라우드 기반 가상 머신 등 다른 모든 인프라에서 애플리케이션을 원하는 대로 실행할 수 있습니다.
  • CI/CD와 같은 민첩한 개발 프로세스를 촉진하여 코드 수용 및 배포를 가속화합니다.

IT 운영자용

  • 가벼운 방식으로 다른 애플리케이션과 분리하여 애플리케이션 보안을 개선합니다.
  • 다양한 OS 버전, 네트워크 토폴로지 또는 스토리지 구성 및 클라우드 플랫폼 전반에서 컨테이너화된 애플리케이션을 원활하게 마이그레이션합니다.
  • 단일 OS 인스턴스에서 여러 애플리케이션 컨테이너를 실행할 수 있도록 하여 IT 효율성을 높입니다. 컨테이너의 크기는 수십 메가바이트인 경우가 많으며 가상 머신의 크기는 10GB 이상인 경우가 많으므로 단일 서버 인스턴스에서 훨씬 더 많은 수의 컨테이너를 실행할 수 있습니다.

몇 분이 소요되는 가상 머신과 달리 추가 컨테이너 인스턴스는 몇 밀리초 내에 실행할 수 있으므로 탁월한 온디맨드 확장성을 제공합니다.

관련 솔루션 및 제품

Kubernetes를 사용한 애플리케이션 현대화

데이터 센터 또는 클라우드에 개발자 지원 Kubernetes 제공

Kubernetes용 소스 코드에서 컨테이너 구축

VMware Tanzu Build Service는 엔터프라이즈 규모로 컨테이너 생성, 관리, 거버넌스를 자동화합니다.

멀티 클라우드 Kubernetes 관리

VMware Tanzu Mission Control은 모든 클라우드에서 대규모로 애플리케이션을 관리, 운영 및 배포할 수 있는 일관된 Kubernetes 기반 플랫폼을 제공하여 클라우드를 가상화하는 멀티 클라우드 Kubernetes 관리 플랫폼입니다.