Red Hat OpenShift Container Platform 의 주요 개념

애플리케이션을 클라우드로 마이그레이션하는 이점을 이해하는 데 도움이 되는 운영자, 컨테이너 및 Kubernetes 의 기본 개념에 대해 학습합니다.

Red Hat® OpenShift® Container Platform작업에 대한 자세한 정보는 다음 주제를 참조하십시오.

연산자 및 종속성

연산자의 개념
운영자는 Kubernetes API를 확장하여 Kubernetes 애플리케이션을 패키징, 배치 및 관리하는 Kubernetes고유 리소스 세트입니다.
Kubernetes 애플리케이션의 개념
Kubernetes 애플리케이션은 Kubernetes 에 배치되고 Kubernetes API및 kubectl 도구를 사용하여 관리되는 애플리케이션입니다.
운영자의 작업 방식은 무엇입니까?

운영자는 Kubernetes 에서 애플리케이션을 효율적으로 관리할 수 있도록 하는 여러 소프트웨어 조각 (제어기 및 하나 이상의 사용자 정의 리소스 정의 (CRD)) 으로 구성됩니다.

제어기는 사용자 정의 Kubernetes 리소스에 대한 변경사항을 감시하고 이에 반응하는 Kubernetes 클러스터에 배치되는 사용자 정의 코드입니다. 사용자 정의 리소스는 Kubernetes API의 확장이며 기본 Kubernetes 설치에서 사용할 수 없는 추가 기능을 제공하는 데 사용됩니다. Kubernetes의 사용자 정의 및 모듈화를 허용합니다.

종속성 정의
종속성은 처리를 진행하기 전에 충족되어야 하는 전제조건입니다. 즉, 시스템의 한 엔티티가 다른 엔티티 없이 의미있게 기능할 수 없는 경우에는 종속되어 있다고 합니다. 예를 들어, 애플리케이션에는 서버, 데이터베이스 또는 연결된 기타 서비스에 대한 종속성이 있을 수 있습니다. 클라우드 마이그레이션에서 이러한 애플리케이션 종속성은 가능한 위험입니다. 검색 도구는 모든 중요한 애플리케이션 및 서비스를 클라우드로 성공적으로 마이그레이션할 수 있도록 각 애플리케이션과 해당 종속 항목 간의 관계에 대한 명확한 그림을 제공할 수 있습니다.

Operator Lifecycle Manager (OLM)

Operator Lifecycle Manager 의 개념
Operator Lifecycle Manager (OLM) 는 사용자가 클러스터에서 운영자 및 해당 종속 항목을 설치, 관리 및 업그레이드할 수 있도록 하여 Kubernetes 의 기능을 확장합니다.
Operator Lifecycle Manager를 사용하는 이유는 무엇입니까?
  • 애플리케이션을 각각 해당 요구사항 및 메타데이터가 있는 단일 Kubernetes 리소스로 정의하여 애플리케이션을 보다 쉽게 관리할 수 있습니다. OLM 에서는 운영자가 클러스터에서 안전하게 실행할 수 있는지 확인하고 업데이트가 적용되는 방법을 이해하기 위해 이 메타데이터가 필요합니다.
  • 애플리케이션 설치를 자동화하고 종속 항목을 해결하거나 kubectl을 제외하고 수동으로 설치할 수 있습니다.
  • 애플리케이션 업데이트를 자동화하고 각각에 대해 서로 다른 승인 정책을 적용할 수 있습니다.

컨테이너화, Kubernetes및 Red Hat OpenShift Container Platform

컨테이너의 개념
컨테이너는 애플리케이션 코드가 라이브러리 및 종속 항목과 함께 패키지되는 소프트웨어의 실행 가능 단위입니다. 데스크탑, 기존 IT 또는 클라우드의 어디에서나 실행할 수 있습니다. 컨테이너는 운영 체제 (OS) 가상화 양식을 활용하므로, 여러 애플리케이션이 프로세스를 분리하고 해당 프로세스가 액세스할 수 있는 CPU, 메모리 및 디스크의 양을 제어하여 OS를 공유합니다.
컨테이너화의 개념
컨테이너화는 소프트웨어 코드 및 모든 종속 항목을 패키징하여 모든 인프라에서 일관되게 실행할 수 있도록 하는 프로세스입니다.
컨테이너화의 이점

컨테이너화는 개발자 및 개발 팀에 다음과 같은 이점을 제공합니다.

  • 이식성: 컨테이너는 호스트 운영 체제에서 추출되어 (연결되어 있지 않거나 종속되어 있지 않음) 모든 플랫폼 또는 클라우드에서 동일하고 일관되게 실행할 수 있는 실행 가능한 소프트웨어 패키지를 작성합니다.
  • 민첩성: 컨테이너 실행을 위한 오픈 소스 Docker Engine 은 Linux®Windows 운영 체제 모두에서 작동하는 범용 패키징 접근법 및 단순 개발자 도구를 사용하여 컨테이너에 대한 산업 표준을 시작했습니다. 현재 많은 사용자가 OCI (Open Container Initiative) 에서 관리하는 엔진을 선호합니다. 소프트웨어 개발자는 신속한 애플리케이션 개발 및 개선사항을 위해 애자일 또는 DevOps 도구 및 프로세스를 계속 사용할 수 있습니다.
  • 속도: 컨테이너는 종종 "경량"이라고 불리며, 이는 컴퓨터의 운영 체제(OS) 커널을 공유한다는 의미입니다. 이 아키텍처는 서버 효율성을 향상시키고, 서버 및 라이센스 비용을 줄이며, 초기화 시간을 줄입니다.
  • 결함 분리: 각 컨테이너화된 애플리케이션은 분리되어 다른 애플리케이션과 독립적으로 작동합니다. 한 컨테이너의 실패는 다른 컨테이너의 계속되는 조작에 영향을 주지 않습니다. 개발 팀은 다른 컨테이너에서 중단 시간 없이 한 컨테이너 내의 기술 문제를 식별하고 정정할 수 있습니다. 또한 컨테이너 엔진은 SELinux 액세스 제어와 같은 OS 보안 격리 기술을 사용하여 컨테이너 내의 결함을 격리할 수 있습니다.
  • 효율성: 컨테이너화된 환경에서 실행되는 소프트웨어는 머신의 OS 커널을 공유하며, 컨테이너 내의 애플리케이션 계층은 컨테이너 전체에서 공유될 수 있습니다. 따라서 컨테이너는 VM보다 용량이 본질적으로 더 작고 시작 시간이 더 적게 필요하므로 단일 VM과 동일한 컴퓨팅 용량에서 훨씬 더 많은 컨테이너를 실행할 수 있습니다. 이 아키텍처는 서버 효율성을 향상시키고 서버 및 라이센스 비용을 줄입니다.
  • 관리 용이성: 컨테이너 오케스트레이션 플랫폼은 컨테이너화된 워크로드 및 서비스의 설치, 스케일링 및 관리를 자동화합니다. 컨테이너 오케스트레이션 플랫폼은 컨테이너화된 앱 스케일링, 앱의 새 버전 롤아웃, 기타 기능 중에서 모니터링, 로깅 및 디버깅 제공과 같은 관리 태스크를 쉽게 수행할 수 있습니다. Kubernetes(사용 가능한 가장 인기 있는 컨테이너 오케스트레이션 시스템) 는 원래 Linux 컨테이너 기능을 자동화하는 오픈 소스 기술 (Borg라는 내부 프로젝트를 기반으로 하는 Google에서 원래 오픈 소스로 제공됨) 입니다. Kubernetes 는 Docker와 같은 많은 컨테이너 엔진과 함께 작동하지만 컨테이너 이미지 형식 및 런타임에 대한 OCI (Open Container Initiative) 표준을 준수하는 컨테이너 시스템과도 작동합니다.
  • 보안: 애플리케이션을 컨테이너로 분리하면 악의적인 코드의 침입이 다른 컨테이너 또는 호스트 시스템에 영향을 주지 않습니다. 또한 보안 권한을 정의하여 원하지 않는 컴포넌트가 컨테이너에 들어가지 못하도록 자동으로 차단하거나 불필요한 자원과의 통신을 제한할 수 있습니다.

컨테이너화에 대해 자세히 알아보려면 컨테이너화 설명을 참조하십시오.

Kubernetes란 무엇입니까?
Kubernetes ("k8s" 또는 "kube" 라고도 함) 는 컨테이너화된 애플리케이션의 배치, 관리 및 스케일링을 스케줄링하고 자동화하기 위한 컨테이너 오케스트레이션 플랫폼입니다.
Kubernetes를 사용하는 이유는 무엇입니까?

운영 팀은 계속 증가하는 컨테이너의 배치, 네트워킹, 확장성 및 가용성을 스케줄하고 자동화해야 합니다.

개발자는 Kubernetes 를 선택하여 다양한 기능, 광범위하고 성장하는 오픈 소스 도구 에코시스템, 선두 클라우드 제공자 간의 지원 및 이식성을 제공합니다 (현재 완전히 관리되는 Kubernetes 서비스를 제공하는 일부 사용자).

Kubernetes 의 기능

Kubernetes 는 다음 태스크를 스케줄하고 자동화합니다.

  • 배치: 지정된 수의 컨테이너를 지정된 호스트에 배치하고 원하는 상태에서 실행 중인 상태로 유지합니다.
  • 롤아웃: 롤아웃은 배치에 대한 변경입니다. Kubernetes를 사용하여 롤아웃을 시작, 일시정지, 재개 또는 롤백할 수 있습니다.
  • 서비스 검색: Kubernetes 는 DNS 이름 또는 IP 주소를 사용하여 컨테이너를 인터넷 또는 다른 컨테이너에 자동으로 노출할 수 있습니다.
  • 스토리지 프로비저닝: 필요에 따라 컨테이너에 대한 지속적 로컬 또는 클라우드 스토리지를 마운트하도록 Kubernetes 를 설정하십시오.
  • 로드 밸런싱 및 스케일링: 컨테이너 스파이크에 대한 트래픽이 발생하면 Kubernetes 는 로드 밸런싱 및 스케일링을 사용하여 네트워크 전체에 분배하여 안정성을 유지할 수 있습니다.
  • 고가용성을 위한 자가 치유: 컨테이너에 장애가 발생하면Kubernetes 자동으로 다시 시작하거나 교체할 수 있습니다. 또한 상태 확인 요구 사항을 충족하지 않는 컨테이너를 삭제할 수도 있습니다.
Red Hat Red Hat OpenShift Container Platform의 개념

Red Hat OpenShift Container Platform 는 컨테이너화된 애플리케이션의 배치 및 관리를 자동화하기 위한 플랫폼입니다. Red Hat OpenShift Container Platform 에서 Kubernetes 를 사용하여 컨테이너를 조정하는 반면, Kubernetes 는 플랫폼 레벨 요구사항 또는 배치 프로세스를 관리하지 않습니다. 따라서 Red Hat OpenShift Container Platform 는 플랫폼 관리 도구 및 프로세스를 제공하여 Kubernetes 의 기능을 향상시킵니다.

자세한 내용은 를 참조하십시오 외부 링크 아이콘Red Hat OpenShift Container Platform .