Registry

Red Hat OpenShift Service on AWS 4

AWS의 Red Hat OpenShift Service는 소스 코드에서 이미지를 빌드하고 배포하며 라이프사이클을 관리할 수 있습니다.

Red Hat OpenShift Documentation Team

초록

Red Hat OpensShift Service on AWS는 로컬에서 이미지를 관리하기 위해 AWS 환경의 Red Hat OpenShift Service에 배포할 수 있는 내부 통합 컨테이너 이미지 레지스트리를 제공합니다.

1장. OpenShift 이미지 레지스트리 개요

AWS의 Red Hat OpenShift Service는 소스 코드에서 이미지를 빌드하고 배포하며 라이프사이클을 관리할 수 있습니다. 로컬에서 이미지를 관리하기 위해 AWS 환경의 Red Hat OpenShift Service에 배포할 수 있는 내부 통합 컨테이너 이미지 레지스트리를 제공합니다. 이 개요에는 OpenShift 이미지 레지스트리에 중점을 두고 있는 AWS의 Red Hat OpenShift Service와 함께 일반적으로 사용되는 레지스트리의 참조 정보와 링크가 포함되어 있습니다.

1.1. OpenShift 이미지 레지스트리의 일반 용어집

이 용어집은 레지스트리 콘텐츠에 사용되는 공통 용어를 정의합니다.

컨테이너
소프트웨어 및 모든 종속 항목을 구성하는 경량의 실행 가능한 이미지입니다. 컨테이너는 운영 체제를 가상화하므로 데이터 센터, 퍼블릭 또는 프라이빗 클라우드 또는 로컬 호스트에서 컨테이너를 실행할 수 있습니다.
이미지 레지스트리 Operator
이미지 레지스트리 Operator는 openshift-image-registry 네임스페이스에서 실행되며 해당 위치의 레지스트리 인스턴스를 관리합니다.
이미지 리포지터리
이미지 리포지터리는 관련 컨테이너 이미지와 이미지를 식별하는 태그의 컬렉션입니다.
미러 레지스트리
미러 레지스트리는 AWS 이미지에 Red Hat OpenShift Service의 미러를 보유한 레지스트리입니다.
namespace
네임스페이스는 단일 클러스터 내에서 리소스 그룹을 격리합니다.
Pod
Pod는 Kubernetes에서 가장 작은 논리 단위입니다. Pod는 작업자 노드에서 실행할 하나 이상의 컨테이너로 구성됩니다.
프라이빗 레지스트리
레지스트리는 컨테이너 이미지 레지스트리 API를 구현하는 서버입니다. 프라이빗 레지스트리는 사용자가 콘텐츠에 액세스할 수 있도록 인증이 필요한 레지스트리입니다.
public registry
레지스트리는 컨테이너 이미지 레지스트리 API를 구현하는 서버입니다. 공용 레지스트리는 콘텐츠를 공개적으로 제공하는 레지스트리입니다.
Quay.io
Red Hat에서 제공하고 유지 관리하는 공용 Red Hat Quay Container Registry 인스턴스는 대부분의 컨테이너 이미지와 Operator를 AWS 클러스터의 Red Hat OpenShift Service에 제공합니다.
OpenShift 이미지 레지스트리
OpenShift 이미지 레지스트리는 이미지를 관리하기 위해 AWS의 Red Hat OpenShift Service에서 제공하는 레지스트리입니다.
레지스트리 인증
개인 이미지 리포지토리에서 이미지를 푸시하고 가져오려면 레지스트리에서 자격 증명을 사용하여 사용자를 인증해야 합니다.
Route
AWS 인스턴스의 Red Hat OpenShift Service 외부의 사용자 및 애플리케이션에서 Pod에 대한 네트워크 액세스를 허용하는 서비스를 노출합니다.
축소
복제본 수를 줄이기 위해 다음을 수행합니다.
확장
복제본 수를 늘리려면 다음을 수행합니다.
service
서비스는 일련의 Pod에 실행 중인 애플리케이션을 노출합니다.

1.2. 통합된 OpenShift 이미지 레지스트리

AWS의 Red Hat OpenShift Service는 클러스터에서 표준 워크로드로 실행되는 내장 컨테이너 이미지 레지스트리를 제공합니다. 레지스트리는 인프라 Operator에 의해 설정 및 관리됩니다. 사용자가 기존 클러스터 인프라의 상단에서 실행되는 이미지를 관리하여 실제 워크로드를 처리할 수있는 기본 솔루션을 제공합니다. 이 레지스트리는 다른 클러스터 워크로드처럼 확장 또는 축소할 수 있으며 특정 인프라 프로비저닝을 필요로하지 않습니다. 또한 클러스터 사용자 인증 및 권한 부여 시스템에 통합되어 이미지 리소스에 대한 사용자 권한을 정의하여 이미지를 만들고 액세스 권한을 제어할 수 있습니다.

일반적으로 레지스트리는 클러스터에 빌드된 이미지의 게시 대상과 클러스터에서 실행되는 워크로드의 이미지 소스로 사용됩니다. 새 이미지가 레지스트리로 푸시되면 클러스터에 새 이미지에 대한 알림이 전송되고 다른 구성 요소는 업데이트된 이미지에 응답하여 이를 사용할 수 있습니다.

이미지 데이터는 두 위치에 저장됩니다. 실제 이미지 데이터는 클라우드 스토리지 또는 파일 시스템 볼륨과 같은 설정 가능한 스토리지 위치에 저장됩니다. 표준 클러스터 API가 공개되어 액세스 제어를 수행하는 데 사용되는 이미지 메타 데이터는 표준 API 리소스, 특히 이미지 및 이미지 스트림으로 저장됩니다.

1.3. 타사 레지스트리

AWS의 Red Hat OpenShift Service는 타사 레지스트리의 이미지를 사용하여 컨테이너를 생성할 수 있지만 이러한 레지스트리가 통합된 OpenShift 이미지 레지스트리와 동일한 이미지 알림 지원을 제공하지는 않습니다. 이 경우 AWS의 Red Hat OpenShift Service는 이미지 스트림 생성 시 원격 레지스트리에서 태그를 가져옵니다. 가져온 태그를 새로 고치려 면 oc import-image <stream>을 실행합니다. 새 이미지가 감지되면 이전 빌드 및 배포가 다시 생성됩니다.

1.3.1. 인증

AWS의 Red Hat OpenShift Service는 레지스트리와 통신하여 사용자가 제공한 자격 증명을 사용하여 개인 이미지 리포지토리에 액세스할 수 있습니다. 이를 통해 AWS의 Red Hat OpenShift Service는 프라이빗 리포지토리로 이미지를 푸시하고 가져올 수 있습니다.

1.3.1.1. Podman을 사용한 레지스트리 인증

일부 컨테이너 이미지 레지스트리에는 액세스 권한이 필요합니다. Podman은 컨테이너 및 컨테이너 이미지를 관리하고 이미지 레지스트리와 상호 작용하기 위한 오픈 소스 툴입니다. Podman을 사용하여 인증 정보를 인증하고, 레지스트리 이미지를 가져오고, 로컬 이미지를 로컬 파일 시스템에 저장할 수 있습니다. 다음은 Podman을 사용하여 레지스트리를 인증하는 일반적인 예입니다.

절차

  1. Red Hat Ecosystem Catalog 를 사용하여 Red Hat Repository에서 특정 컨테이너 이미지를 검색하고 필요한 이미지를 선택합니다.
  2. 이 이미지 가져오기 를 클릭하여 컨테이너 이미지의 명령을 찾습니다.
  3. 다음 명령을 실행하여 로그인하고 사용자 이름과 암호를 입력하여 인증합니다.

    $ podman login registry.redhat.io
     Username:<your_registry_account_username>
     Password:<your_registry_account_password>
  4. 다음 명령을 실행하여 이미지를 다운로드하여 로컬에 저장합니다.

    $ podman pull registry.redhat.io/<repository_name>

1.4. Red Hat Quay 레지스트리

엔터프라이즈급 컨테이너 이미지 레지스트리가 필요한 경우 Red Hat Quay는 호스팅 서비스와 자체 데이터 센터 또는 클라우드 환경에 설치할 수있는 소프트웨어로 사용할 수 있습니다. Red Hat Quay의 고급 기능에는 지역 복제, 이미지 스캔 및 이미지 롤백 기능이 포함되어 있습니다.

Quay.io 사이트를 방문하여 호스팅된 Quay 레지스트리 계정을 설정합니다. 그 후 Quay 튜토리얼에 따라 Quay 레지스트리에 로그인하고 이미지 관리를 시작합니다.

원격 컨테이너 이미지 레지스트리와 마찬가지로 AWS의 Red Hat OpenShift Service에서 Red Hat Quay 레지스트리에 액세스할 수 있습니다.

추가 리소스

1.5. 인증이 활성화된 Red Hat 레지스트리

Red Hat Ecosystem Catalog의 Container 이미지 섹션을 통해 제공되는 모든 컨테이너 이미지는 이미지 레지스트리의 registry.redhat.io.에 호스트됩니다.

레지스트리 registry.redhat.io 는 AWS의 Red Hat OpenShift Service의 이미지 및 호스팅 콘텐츠에 액세스하려면 인증이 필요합니다. 새 레지스트리로 마이그레이션한 후 기존 레지스트리를 일정 기간 동안 사용할 수 있습니다.

참고

AWS의 Red Hat OpenShift Service는 registry.redhat.io 에서 이미지를 가져오므로 이를 사용하도록 클러스터를 구성해야 합니다.

새 레지스트리는 다음과 같은 방법으로 인증에 표준 OAuth 메커니즘을 사용합니다.

  • 인증 토큰: 관리자에 의해 생성되는 토큰으로 이는 시스템에 컨테이너 이미지 레지스트리에 대한 인증 기능을 제공하는 서비스 계정입니다. 서비스 계정은 사용자 계정 변경의 영향을 받지 않으므로 인증에 토큰을 사용하는 것은 안정적이고 유연한 인증 방법입니다. 이는 프로덕션 클러스터에 대해 지원되는 유일한 인증 옵션입니다.
  • 웹 사용자 이름 및 암호: 이는 access.redhat.com과 같은 리소스에 로그인하는 데 사용하는 표준 인증 정보 집합입니다. AWS의 Red Hat OpenShift Service에서 이 인증 방법을 사용할 수는 있지만 프로덕션 배포에는 지원되지 않습니다. 이 인증 방법은 이 인증 방법을 Red Hat OpenShift Service on AWS 외부의 독립형 프로젝트로 제한합니다.

사용자 이름 및 암호 또는 인증 토큰 중 하나의 인증 정보를 사용하여 podman login을 사용하고 새 레지스트리의 콘텐츠에 액세스합니다.

모든 이미지 스트림은 설치 풀 시크릿을 사용하여 인증할 새 레지스트리를 가리킵니다.

다음 위치 중 하나에 인증 정보를 배치해야합니다.

  • openshift 네임 스페이스. openshift 네임스페이스의 이미지 스트림을 가져올 수 있도록 인증 정보가 openshift 네임스페이스에 있어야 합니다.
  • 호스트: Kubernetes에서 이미지를 가져올 때 호스트의 인증 정보를 사용하므로 호스트에 인증 정보가 있어야합니다.

2장. AWS의 Red Hat OpenShift Service의 이미지 레지스트리 Operator

2.1. AWS의 Red Hat OpenShift Service의 이미지 레지스트리

Image Registry Operator는 OpenShift 이미지 레지스트리의 단일 인스턴스를 설치하고 레지스트리 스토리지 설정을 포함하여 모든 레지스트리 구성을 관리합니다.

컨트롤 플레인이 배포된 후 Operator는 클러스터에서 감지된 설정을 기반으로 기본 configs.imageregistry.operator.openshift.io 리소스 인스턴스를 생성합니다.

전체 configs.imageregistry.operator.openshift.io 리소스를 정의하는 데 사용할 수 있는 정보가 충분하지 않으면 불완전한 리소스가 정의되고 Operator는 누락된 항목에 대한 정보로 리소스 상태를 업데이트합니다.

이미지 레지스트리 Operator는 openshift-image-registry 네임 스페이스에서 실행되며 해당 위치의 레지스트리 인스턴스도 관리합니다. 레지스트리의 모든 설정 및 워크로드 리소스는 해당 네임 스페이스에 있습니다.

3장. 레지스트리 액세스

AWS의 Red Hat OpenShift Service에서 Red Hat 사이트 안정성 엔지니어링(SRE)은 레지스트리를 관리합니다. 그러나 레지스트리 Pod의 상태를 확인하고 레지스트리 로그를 볼 수 있습니다.

3.1. 레지스트리 pod 상태 확인

dedicated-admin 역할의 관리자는 openshift-image-registry 프로젝트에서 실행 중인 이미지 레지스트리 Pod를 나열하고 해당 상태를 확인할 수 있습니다.

전제 조건

  • dedicated-admin 역할의 사용자로 클러스터에 액세스할 수 있습니다.

절차

  • openshift-image-registry 프로젝트의 pod를 나열하고 상태를 확인합니다.

    $ oc get pods -n openshift-image-registry

    출력 예

    NAME READY STATUS RESTARTS AGE
    cluster-image-registry-operator-764bd7f846-qqtpb 1/1 Running 0 78m
    image-registry-79fb4469f6-llrln 1/1 Running 0 77m
    node-ca-hjksc 1/1 Running 0 73m
    node-ca-tftj6 1/1 Running 0 77m
    node-ca-wb6ht 1/1 Running 0 77m
    node-ca-zvt9q 1/1 Running 0 74m

3.2. 레지스트리 로그보기

oc logs 명령을 사용하여 레지스트리의 로그를 확인할 수 있습니다.

절차

  • 배포에서 oc logs 명령을 사용하여 컨테이너 이미지 레지스트리의 로그를 표시합니다.

    $ oc logs deployments/image-registry -n openshift-image-registry

    출력 예

    2015-05-01T19:48:36.300593110Z time="2015-05-01T19:48:36Z" level=info msg="version=v2.0.0+unknown"
    2015-05-01T19:48:36.303294724Z time="2015-05-01T19:48:36Z" level=info msg="redis not configured" instance.id=9ed6c43d-23ee-453f-9a4b-031fea646002
    2015-05-01T19:48:36.303422845Z time="2015-05-01T19:48:36Z" level=info msg="using inmemory layerinfo cache" instance.id=9ed6c43d-23ee-453f-9a4b-031fea646002
    2015-05-01T19:48:36.303433991Z time="2015-05-01T19:48:36Z" level=info msg="Using OpenShift Auth handler"
    2015-05-01T19:48:36.303439084Z time="2015-05-01T19:48:36Z" level=info msg="listening on :5000" instance.id=9ed6c43d-23ee-453f-9a4b-031fea646002

법적 공지

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.