2장. ROSA 아키텍처


2.1. 아키텍처 개념

AWS 아키텍처의 Red Hat OpenShift Service에 사용되는 OpenShift 및 컨테이너 기본 개념에 대해 알아보십시오.

2.1.1. OpenShift

OpenShift는 엔터프라이즈 워크로드를 실행하는 신뢰할 수 있는 환경을 제공하는 Kubernetes 컨테이너 플랫폼입니다. Kubernetes 플랫폼을 내장 소프트웨어로 확장하여 앱 라이프사이클 개발, 운영 및 보안을 향상시킵니다. OpenShift를 사용하면 하이브리드 클라우드 공급자 및 환경에 워크로드를 일관되게 배포할 수 있습니다.

2.1.2. Kubernetes

ROSA(Red Hat OpenShift Service on AWS)는 엔터프라이즈 Kubernetes 플랫폼인 Red Hat OpenShift를 사용합니다. Kubernetes는 여러 호스트에서 컨테이너화된 워크로드 및 서비스를 관리하기 위한 오픈 소스 플랫폼으로, 수동 개입 없이 컨테이너화된 애플리케이션을 배포, 자동화, 모니터링 및 스케일링하기 위한 관리 툴을 제공합니다. Kubernetes에 대한 자세한 내용은 Kubernetes 설명서 를 참조하십시오.

클러스터, 컴퓨팅 풀 및 컴퓨팅 노드

Kubernetes 클러스터는 컨트롤 플레인과 하나 이상의 컴퓨팅 노드로 구성됩니다. 컴퓨팅 노드는 CPU, 메모리, 운영 체제, 연결된 디스크 및 기타 속성의 유형 또는 프로파일의 컴퓨팅 풀로 구성됩니다. 컴퓨팅 노드는 Kubernetes 노드 리소스에 해당하며 클러스터의 모든 Kubernetes 리소스를 중앙에서 제어하고 모니터링하는 Kubernetes 컨트롤 플레인에 의해 관리됩니다.

컨테이너화된 앱의 리소스를 배포할 때 Kubernetes 컨트롤 플레인은 클러스터의 배포 요구 사항 및 사용 가능한 용량을 고려하여 해당 리소스를 배포할 컴퓨팅 노드를 결정합니다. Kubernetes 리소스에는 서비스, 배포, Pod가 포함됩니다.

네임스페이스
Kubernetes 네임스페이스는 여러 팀과 클러스터를 공유하려는 경우와 같이 애플리케이션을 배포하고 액세스를 제한할 수 있는 별도의 영역으로 클러스터 리소스를 분할하는 방법입니다. 예를 들어, 사용자를 위해 구성된 시스템 리소스는 kube-system 과 같은 별도의 네임스페이스에 유지됩니다. Kubernetes 리소스를 생성할 때 네임스페이스를 지정하지 않으면 리소스가 기본 네임스페이스에 자동으로 생성됩니다.
Pod
클러스터에 배포된 모든 컨테이너화된 앱은 Pod라고 하는 Kubernetes 리소스에서 배포, 실행 및 관리합니다. Pod는 Kubernetes 클러스터에서 소규모 배포 가능 단위이며 단일 단위로 처리해야 하는 컨테이너를 그룹화하는 데 사용됩니다. 대부분의 경우 각 컨테이너는 자체 Pod에 배포됩니다. 그러나 앱에는 동일한 개인 IP 주소를 사용하여 해당 컨테이너를 처리할 수 있도록 컨테이너 및 기타 도우미 컨테이너를 하나의 포드에 배포해야 할 수 있습니다.
app
앱은 전체 앱 또는 앱의 구성 요소를 참조할 수 있습니다. 별도의 Pod 또는 컴퓨팅 노드에 앱의 구성 요소를 배포할 수 있습니다.
Service
서비스는 Pod 세트를 그룹화하고 각 Pod의 실제 개인 IP 주소를 노출하지 않고 이러한 Pod에 네트워크 연결을 제공하는 Kubernetes 리소스입니다. 서비스를 사용하여 클러스터 내에서 또는 공용 인터넷 내에서 앱을 사용할 수 있도록 할 수 있습니다.
Deployment

배포는 서비스, 영구 스토리지 또는 주석과 같이 앱을 실행하는 데 필요한 다른 리소스 또는 기능에 대한 정보를 지정할 수 있는 Kubernetes 리소스입니다. 구성 YAML 파일에서 배포를 구성한 다음 클러스터에 적용합니다. Kubernetes 기본 리소스는 리소스를 구성하고 사용 가능한 용량이 있는 컴퓨팅 노드의 포드에 컨테이너를 배포합니다.

롤링 업데이트 중에 추가할 Pod 수 및 한 번에 사용할 수 없는 Pod 수를 포함하여 앱에 대한 업데이트 전략을 정의합니다. 롤링 업데이트를 수행하면 배포에서 업데이트가 작동하는지 확인하고 오류가 감지되면 롤아웃을 중지합니다.

배포는 Pod를 관리하는 데 사용할 수 있는 하나의 유형의 워크로드 컨트롤러일 뿐입니다.

2.1.3. 컨테이너

컨테이너에서는 애플리케이션 코드, 구성 및 종속 항목을 단일 단위로 패키징하는 표준 방법을 제공합니다. 컨테이너는 컴퓨팅 호스트에서 격리된 프로세스로 실행되며 호스트 운영 체제 및 해당 하드웨어 리소스를 공유합니다. 컨테이너를 환경 간에 이동하고 변경 없이 실행할 수 있습니다. 컨테이너는 가상 머신과 달리 장치, 운영 체제 및 기본 하드웨어를 가상화하지 않습니다. 앱 코드, 런타임, 시스템 도구, 라이브러리 및 설정만 컨테이너 내부에 패키지됩니다. 이 방법을 사용하면 컨테이너를 가상 머신보다 가볍고 이식 가능하며 효율적으로 사용할 수 있습니다.

기존 Linux 컨테이너 기술(LXC)을 기반으로 구축된 OCI 호환 컨테이너 이미지는 앱을 실행하는 데 필요한 모든 요소를 포함하는 표준화된 단위로 소프트웨어를 패키징하는 방법에 대한 템플릿을 정의합니다. Red Hat OpenShift Service on AWS(ROSA)는 CRI-O를 컨테이너 런타임으로 사용하여 클러스터에 컨테이너를 배포합니다.

ROSA의 Kubernetes에서 앱을 실행하려면 먼저 컨테이너 레지스트리에 저장한 컨테이너 이미지를 생성하여 앱을 컨테이너화해야 합니다.

Image
컨테이너 이미지는 실행하려는 모든 컨테이너의 기본입니다. 컨테이너 이미지는 이미지를 빌드하는 방법 및 앱, 앱 구성 및 해당 종속 항목과 같이 이미지를 빌드하는 방법을 정의하는 텍스트 파일인 Dockerfile에서 빌드됩니다. 이미지는 항상 다른 이미지에서 빌드되므로 빠르게 구성합니다.
Registry
이미지 레지스트리는 컨테이너 이미지를 저장, 검색 및 공유할 수 있는 위치입니다. 레지스트리에 저장된 이미지는 공개적으로 사용 가능(공용 레지스트리)되거나 소규모 사용자 그룹(개인 레지스트리)에서 액세스할 수 있습니다. ROSA는 컨테이너화된 첫 번째 앱을 생성하는 데 사용할 수 있는 공용 이미지를 제공합니다. 엔터프라이즈 애플리케이션의 경우 프라이빗 레지스트리를 사용하여 권한이 없는 사용자가 이미지를 사용하지 않도록 보호합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.