튜토리얼


OpenShift Container Platform 4.20

OpenShift Container Platform 시작하기

Red Hat OpenShift Documentation Team

초록

이 문서에서는 OpenShift Container Platform에서 시작하는 데 도움이 되는 정보를 제공합니다. 여기에는 Kubernetes 및 OpenShift Container Platform에 있는 일반 용어의 정의가 포함됩니다. 여기에는 OpenShift Container Platform 웹 콘솔 및 명령줄 인터페이스를 사용하여 애플리케이션을 생성하고 빌드하는 방법도 포함되어 있습니다.

1장. 튜토리얼 개요

OpenShift CLI(oc) 또는 웹 콘솔을 사용하여 OpenShift Container Platform에 애플리케이션을 배포하는 엔드 투 엔드 예제를 따를 수 있습니다.

1.1. 추가 학습 리소스

OpenShift Container Platform의 추가 튜토리얼 및 실습 학습 리소스에 대한 자세한 내용은 추가 실습 정보를 참조하십시오.

2장. 튜토리얼: 웹 콘솔을 사용하여 애플리케이션 배포

이 튜토리얼에서는 서비스를 배포하여 전 세계의 국립 공원 지도를 표시하는 OpenShift Container Platform에서 national-parks-app 이라는 애플리케이션을 구축하는 방법을 안내합니다. OpenShift Container Platform 웹 콘솔을 사용하여 이 튜토리얼을 완료합니다.

이 튜토리얼을 완료하려면 다음 단계를 수행합니다.

  1. 애플리케이션에 대한 프로젝트를 생성합니다.

    이 단계를 통해 애플리케이션을 다른 클러스터 사용자의 워크로드와 분리할 수 있습니다.

  2. 보기 권한을 부여합니다.

    이 단계에서는 프로젝트 내에서 실행 중인 서비스 및 기타 리소스를 검색하는 데 도움이 되도록 OpenShift API와 상호 작용할 수 있는 보기 권한을 부여합니다.

  3. 프런트 엔드 애플리케이션을 배포합니다.

    이 단계에서는 parksmap 프런트 엔드 애플리케이션을 배포하고 외부에서 노출하며 최대 두 개의 인스턴스로 확장합니다.

  4. 백엔드 애플리케이션을 배포합니다.

    이 단계에서는 nationalparks 백엔드 애플리케이션을 배포하고 외부에 노출합니다.

  5. 데이터베이스 애플리케이션을 배포합니다.

    이 단계에서는 mongodb-nationalparks MongoDB 데이터베이스를 배포하고 데이터베이스에 데이터를 로드하며 데이터베이스에 액세스하는 데 필요한 자격 증명을 설정합니다.

이 단계를 완료하면 웹 브라우저에서 국립 공원 애플리케이션을 볼 수 있습니다.

2.1. 사전 요구 사항

이 튜토리얼을 시작하기 전에 다음과 같은 필수 사전 요구 사항이 있는지 확인하십시오.

  • 테스트 OpenShift Container Platform 클러스터에 액세스할 수 있습니다.

    조직에 테스트할 클러스터가 없는 경우 개발자 샌드박스에 대한 액세스 권한을 요청하여 OpenShift Container Platform 평가판에 액세스할 수 있습니다.

  • cluster-admin 클러스터 역할과 같은 적절한 권한이 있어 프로젝트와 애플리케이션을 생성합니다.

    필요한 권한이 없는 경우 클러스터 관리자에게 문의하십시오. 해당 프로젝트의 리소스를 수정하려면 project 및 admin 역할을 생성하려면 self-provisioner 역할이 필요합니다.

    개발자 샌드박스를 사용하는 경우 필요한 권한으로 프로젝트가 생성됩니다.

  • OpenShift Container Platform 웹 콘솔에 로그인 했습니다.

2.2. 프로젝트 생성

사용자 커뮤니티는 프로젝트를 통해 별도로 콘텐츠를 구성하고 관리할 수 있습니다. 프로젝트는 Kubernetes 네임스페이스에 대한 OpenShift Container Platform 확장입니다. 프로젝트에는 사용자 셀프 프로비저닝을 활성화하는 추가 기능이 있습니다. 각 프로젝트에는 고유한 오브젝트, 정책, 제약 조건 및 서비스 계정이 있습니다.

클러스터 관리자는 개발자가 자신의 프로젝트를 만들 수 있도록 허용할 수 있습니다. 대부분의 경우 사용자 프로젝트에 자동으로 액세스할 수 있습니다. 관리자는 필요에 따라 다른 프로젝트에 대한 액세스 권한을 부여할 수 있습니다.

이 절차에서는 user-getting-started 라는 새 프로젝트를 생성합니다. 이 프로젝트는 이 튜토리얼의 나머지 부분에서 사용됩니다.

중요

개발자 샌드박스를 사용하여 이 튜토리얼을 완료하는 경우 이 절차를 건너뜁니다. 사용자를 위해 프로젝트가 이미 생성되었습니다.

사전 요구 사항

  • OpenShift Container Platform 웹 콘솔에 로그인했습니다.

프로세스

  1. 프로젝트로 이동합니다.
  2. 프로젝트 만들기를 클릭합니다.
  3. 이름 필드에 user-getting-started를 입력합니다.
  4. 생성을 클릭합니다.

2.3. 보기 권한 부여

OpenShift Container Platform은 모든 프로젝트에서 자동으로 여러 서비스 계정을 생성합니다. 기본 서비스 계정은 Pod 실행을 담당합니다. OpenShift Container Platform은 이 서비스 계정을 사용하고 시작하는 모든 Pod에 삽입합니다.

기본적으로 기본 서비스 계정에는 OpenShift API와 상호 작용할 수 있는 제한된 권한이 있습니다.

애플리케이션의 요구 사항으로 프로젝트 내의 포드, 서비스 및 리소스에 대해 알아보려면 OpenShift API와 통신할 수 있도록 기본 서비스 계정에 view 역할을 할당해야 합니다.

사전 요구 사항

  • cluster-admin 또는 프로젝트 수준 관리자 권한이 있어야 합니다.

프로세스

  1. 사용자 관리RoleBindings 로 이동합니다.
  2. 바인딩 생성을 클릭합니다.
  3. 이름 필드에 sa-user-account 를 입력합니다.
  4. 네임스페이스 필드에서 user-getting-started를 검색하고 선택합니다.

    중요

    다른 프로젝트를 사용하는 경우 프로젝트 이름을 선택합니다.

  5. 역할 이름 필드에서 검색을 검색하고 보기를 선택합니다.
  6. Subject 에서 ServiceAccount 를 선택합니다.
  7. 제목 네임스페이스 필드에서 user-getting-started를 검색하고 선택합니다.

    중요

    다른 프로젝트를 사용하는 경우 프로젝트 이름을 선택합니다.

  8. 제목 이름 필드에 default를 입력합니다.
  9. 생성을 클릭합니다.

2.4. 프런트 엔드 애플리케이션 배포

OpenShift Container Platform에서 애플리케이션을 배포하는 가장 간단한 방법은 제공된 컨테이너 이미지를 실행하는 것입니다.

다음 절차에서는 national-parks-app 애플리케이션의 프런트 엔드 구성 요소인 parksmap 을 배포합니다. 웹 애플리케이션에는 전 세계의 국립 공원 위치에 대한 대화형 맵이 표시됩니다.

프로세스

  1. 오른쪽 상단에 있는 빠른 생성 ( fa plus circle ) 메뉴에서 컨테이너 이미지를 클릭합니다.
  2. 외부 레지스트리에서 이미지 이름을 선택하고 quay.io/openshiftroadshow/parksmap:latest 를 입력합니다.
  3. 일반 섹션으로 스크롤합니다.
  4. 애플리케이션 이름 필드에 national-parks-app 을 입력합니다.
  5. 이름 필드에서 값이 parksmap 인지 확인합니다.
  6. Deploy 섹션으로 스크롤합니다.
  7. 리소스 유형 필드에서 배포 가 선택되어 있는지 확인합니다.
  8. 고급 옵션 섹션에서 경로 생성이 선택되어 있는지 확인합니다.

    기본적으로 OpenShift Container Platform에서 실행되는 서비스는 외부에서 액세스할 수 없습니다. 외부 클라이언트가 서비스에 액세스할 수 있도록 경로를 생성하려면 이 옵션을 선택해야 합니다.

  9. 레이블 하이퍼링크를 클릭합니다.

    애플리케이션 코드에는 특정 레이블을 설정해야 합니다.

  10. 다음 레이블을 텍스트 영역에 추가하고 각 키/값 쌍 뒤에 Enter 키를 누릅니다.

    • app=national-parks-app
    • component=parksmap
    • role=frontend
  11. 생성을 클릭합니다.

national-parks-app 애플리케이션에서 parksmap 배포를 볼 수 있는 토폴로지 페이지로 리디렉션됩니다.

2.4.1. Pod 세부 정보 보기

OpenShift Container Platform에서는 하나의 호스트에 함께 배포되는 하나 이상의 컨테이너이자 정의, 배포 및 관리할 수 있는 최소 컴퓨팅 단위인 Pod 의 Kubernetes 개념을 사용합니다. Pod는 컨테이너에 대한 머신 인스턴스, 물리 또는 가상과 대략적으로 동일합니다.

개요 패널을 사용하면 parksmap 배포의 많은 기능에 액세스할 수 있습니다. 세부 정보리소스 탭을 사용하면 애플리케이션 Pod를 스케일링하고 빌드, 서비스 및 경로의 상태를 확인할 수 있습니다.

사전 요구 사항

  • parksmap 프런트 엔드 애플리케이션을 배포했습니다.

프로세스

  1. 워크로드토폴로지 로 이동합니다.
  2. national-parks-app 애플리케이션에서 parksmap 배포를 클릭합니다.

    그림 2.1. Parksmap 배포

    그러면 다음 탭이 포함된 개요 패널이 열립니다.

    • details: 배포에 대한 세부 정보를 보고, 특정 설정을 편집하고, 배포를 스케일링합니다.
    • resources: 배포와 관련된 Pod, 서비스 및 경로에 대한 세부 정보를 확인합니다.
    • observe: 배포에 대한 메트릭 및 이벤트를 확인합니다.
  3. Pod의 로그를 보려면 리소스 탭을 선택하고 parksmap Pod 옆에 있는 로그 보기를 클릭합니다.

2.4.2. 애플리케이션 확장

Kubernetes에서 Deployment 오브젝트는 애플리케이션이 배포하는 방법을 정의합니다. 애플리케이션을 배포할 때 OpenShift Container Platform은 포드,서비스,ReplicaSet배포 리소스를 생성합니다.

parksmap 이미지를 배포하면 배포 리소스가 생성됩니다. 이 예에서는 하나의 Pod만 배포됩니다. 사용자 요구에 맞게 애플리케이션을 확장하거나 하나의 Pod가 다운된 경우에도 애플리케이션이 항상 실행 중인지 확인할 수 있습니다.

다음 절차에서는 두 개의 인스턴스를 사용하도록 parksmap 배포를 스케일링합니다.

사전 요구 사항

  • parksmap 프런트 엔드 애플리케이션을 배포했습니다.

프로세스

  1. 워크로드토폴로지 로 이동하여 parksmap 배포를 클릭합니다.
  2. 세부 정보 탭을 선택합니다.
  3. 위쪽 화살표를 사용하여 pod를 두 개의 인스턴스로 확장합니다.

    그림 2.2. 애플리케이션 확장

작은 정보

아래쪽 화살표를 사용하여 배포를 하나의 Pod 인스턴스로 다시 축소할 수 있습니다.

2.5. 백엔드 애플리케이션 배포

다음 절차에서는 national-parks-app 애플리케이션의 백엔드 구성 요소인 nationalparks 를 배포합니다. Python 애플리케이션은 MongoDB 데이터베이스에 대해 2D 지리 공간 쿼리를 수행하여 전 세계 모든 국립공원의 지도 좌표를 찾고 반환합니다.

사전 요구 사항

  • parksmap 프런트 엔드 애플리케이션을 배포했습니다.

프로세스

  1. 오른쪽 상단에 있는 빠른 생성 ( fa plus circle ) 메뉴에서 Git에서 가져오기 를 클릭합니다.
  2. Git Repo URL 필드에 https://github.com/openshift-roadshow/nationalparks-py.git 을 입력합니다.

    빌더 이미지는 자동으로 감지되지만 가져오기 전략은 기본적으로 Python 대신 Dockerfile로 설정됩니다.

  3. 가져오기 전략을 변경합니다.

    1. 가져오기 전략 편집을 클릭합니다.
    2. 빌더 이미지를 선택합니다.
    3. Python 을 선택합니다.
  4. 일반 섹션으로 스크롤합니다.
  5. 애플리케이션 필드에서 값이 national-parks-app 인지 확인합니다.
  6. 이름 필드에 nationalparks 를 입력합니다.
  7. Deploy 섹션으로 스크롤합니다.
  8. 리소스 유형 필드에서 배포 가 선택되어 있는지 확인합니다.
  9. 고급 옵션 섹션에서 경로 생성이 선택되어 있는지 확인합니다.

    기본적으로 OpenShift Container Platform에서 실행되는 서비스는 외부에서 액세스할 수 없습니다. 외부 클라이언트가 서비스에 액세스할 수 있도록 경로를 생성하려면 이 옵션을 선택해야 합니다.

  10. 레이블 하이퍼링크를 클릭합니다.

    애플리케이션 코드에는 특정 레이블을 설정해야 합니다.

  11. 다음 레이블을 텍스트 영역에 추가하고 각 키/값 쌍 뒤에 Enter 키를 누릅니다.

    • app=national-parks-app
    • component=nationalparks
    • role=backend
    • type=parksmap-backend
  12. 생성을 클릭합니다.

national-parks-app 애플리케이션에서 nationalparks 배포를 볼 수 있는 토폴로지 페이지로 리디렉션됩니다.

검증

  1. 워크로드토폴로지 로 이동합니다.
  2. national-parks-app 애플리케이션에서 nationalparks 배포를 클릭합니다.
  3. Resources 탭을 클릭합니다.

    빌드가 성공적으로 완료될 때까지 기다립니다.

2.6. 데이터베이스 애플리케이션 배포

다음 절차에서는 국립 공원 위치 정보를 보유할 MongoDB 데이터베이스인 mongodb-nationalparks 를 배포합니다.

사전 요구 사항

  • parksmap 프런트 엔드 애플리케이션을 배포했습니다.
  • nationalparks 백엔드 애플리케이션을 배포했습니다.

프로세스

  1. 오른쪽 상단에 있는 빠른 생성 ( fa plus circle ) 메뉴에서 컨테이너 이미지를 클릭합니다.
  2. 외부 레지스트리에서 이미지 이름을 선택하고 registry.redhat.io/rhmap47/mongodb 를 입력합니다.
  3. 런타임 아이콘 필드에서 mongodb 를 검색하고 선택합니다.
  4. 일반 섹션으로 스크롤합니다.
  5. 애플리케이션 이름 필드에 national-parks-app 을 입력합니다.
  6. 이름 필드에 mongodb-nationalparks 를 입력합니다.
  7. Deploy 섹션으로 스크롤합니다.
  8. 리소스 유형 필드에서 배포 가 선택되어 있는지 확인합니다.
  9. 고급 배포 표시 옵션을 클릭합니다.
  10. 환경 변수(런타임만 해당) 에서 다음 이름과 값을 추가합니다.

    Expand
    표 2.1. 환경 변수 이름 및 값
    이름현재의

    MONGODB_USER

    mongodb

    MONGODB_PASSWORD

    mongodb

    MONGODB_DATABASE

    mongodb

    MONGODB_ADMIN_PASSWORD

    mongodb

    작은 정보

    Add value 를 클릭하여 각 추가 환경 변수를 추가합니다.

  11. 고급 옵션 섹션에서 경로 만들기를 지웁니다.

    데이터베이스 애플리케이션에 외부에서 액세스할 필요가 없으므로 경로가 필요하지 않습니다.

  12. 생성을 클릭합니다.

national-parks-app 애플리케이션에서 mongodb-nationalparks 배포를 볼 수 있는 토폴로지 페이지로 리디렉션됩니다.

2.6.1. 보안을 생성하여 데이터베이스에 대한 액세스 제공

MongoDB 데이터베이스에 액세스하려면 nationalparks 애플리케이션에는 데이터베이스 이름, 사용자 이름 및 암호와 같은 정보가 필요합니다. 그러나 이 정보는 민감하므로 Pod에 직접 저장하지 않아야 합니다.

시크릿 을 사용하여 중요한 정보를 저장하고 해당 시크릿을 워크로드와 공유할 수 있습니다.

보안 오브젝트는 암호, OpenShift Container Platform 클라이언트 구성 파일 및 개인 소스 리포지토리 자격 증명과 같은 중요한 정보를 보유하는 메커니즘을 제공합니다. 보안은 Pod에서 중요한 콘텐츠를 분리합니다. 볼륨 플러그인을 사용하거나 에서 시크릿을 환경 변수로 전달하여 컨테이너에 보안을 마운트할 수 있습니다. 그런 다음 시스템에서 보안을 사용하여 Pod에 중요한 정보를 제공할 수 있습니다.

다음 절차에서는 nationalparks-mongodb-parameters 시크릿을 생성하여 nationalparks 워크로드에 마운트합니다.

사전 요구 사항

  • nationalparks 백엔드 애플리케이션을 배포했습니다.
  • mongodb-nationalparks 데이터베이스 애플리케이션을 배포했습니다.

프로세스

  1. 워크로드시크릿으로 이동합니다.
  2. 생성키/값 시크릿을 클릭합니다.
  3. 시크릿 이름 필드에 nationalparks-mongodb-parameters를 입력합니다.
  4. 에 대해 다음 값을 입력합니다.

    Expand
    표 2.2. 시크릿 키 및 값
    현재의

    DATABASE_SERVICE_NAME

    mongodb-nationalparks

    MONGODB_USER

    mongodb

    MONGODB_PASSWORD

    mongodb

    MONGODB_DATABASE

    mongodb

    MONGODB_ADMIN_PASSWORD

    mongodb

    작은 정보

    키/값 추가 를 클릭하여 각 추가 키/값 쌍을 추가합니다.

  5. 생성을 클릭합니다.
  6. 워크로드에 시크릿 추가를 클릭합니다.
  7. Add this secret to workload list에서 nationalparks 를 선택합니다.
  8. 저장을 클릭합니다.

이러한 구성 변경으로 인해 환경 변수가 제대로 삽입된 nationalparks 배포의 새로운 롤아웃을 트리거합니다.

2.6.2. 데이터베이스에 데이터 로드

mongodb-nationalparks 데이터베이스를 배포한 후 국립 공원 위치 정보를 데이터베이스에 로드할 수 있습니다.

사전 요구 사항

  • nationalparks 백엔드 애플리케이션을 배포했습니다.
  • mongodb-nationalparks 데이터베이스 애플리케이션을 배포했습니다.

프로세스

  1. 워크로드토폴로지 로 이동합니다.
  2. nationalparks 배포를 클릭하고 리소스 탭을 선택합니다.
  3. 경로에서 위치 URL을 복사합니다.
  4. URL을 웹 브라우저에 붙여넣고 URL 끝에 다음을 추가합니다.

    /ws/data/load
    Copy to Clipboard Toggle word wrap

    예를 들면 다음과 같습니다.

    https://nationalparks-user-getting-started.apps.cluster.example.com/ws/data/load
    Copy to Clipboard Toggle word wrap

    출력 예

    Items inserted in database: 2893
    Copy to Clipboard Toggle word wrap

2.7. 웹 브라우저에서 애플리케이션 보기

필요한 애플리케이션을 배포하고 데이터베이스에 데이터를 로드한 후 브라우저를 통해 국립 공원 애플리케이션을 볼 수 있습니다.

프런트 엔드 애플리케이션의 URL을 열어 애플리케이션에 액세스할 수 있습니다.

사전 요구 사항

  • parksmap 프런트 엔드 애플리케이션을 배포했습니다.
  • nationalparks 백엔드 애플리케이션을 배포했습니다.
  • mongodb-nationalparks 데이터베이스 애플리케이션을 배포했습니다.
  • 데이터를 mongodb-nationalparks 데이터베이스에 로드했습니다.

프로세스

  1. 워크로드토폴로지 로 이동합니다.
  2. parksmap 배포에서 Open URL 링크를 클릭합니다.

    그림 2.3. 전 세계의 국립공원

  3. 웹 브라우저에 전 세계의 국립 공원 지도가 표시되는지 확인합니다.

    그림 2.4. 전 세계의 국립공원

    애플리케이션이 위치에 액세스할 수 있도록 허용하면 맵이 사용자의 위치를 중심으로 합니다.

3장. 튜토리얼: CLI를 사용하여 애플리케이션 배포

이 튜토리얼에서는 서비스를 배포하여 전 세계의 국립 공원 지도를 표시하는 OpenShift Container Platform에서 national-parks-app 이라는 애플리케이션을 구축하는 방법을 안내합니다. OpenShift CLI(oc)를 사용하여 이 튜토리얼을 완료합니다.

이 튜토리얼을 완료하려면 다음 단계를 수행합니다.

  1. 애플리케이션에 대한 프로젝트를 생성합니다.

    이 단계를 통해 애플리케이션을 다른 클러스터 사용자의 워크로드와 분리할 수 있습니다.

  2. 보기 권한을 부여합니다.

    이 단계에서는 프로젝트 내에서 실행 중인 서비스 및 기타 리소스를 검색하는 데 도움이 되도록 OpenShift API와 상호 작용할 수 있는 보기 권한을 부여합니다.

  3. 프런트 엔드 애플리케이션을 배포합니다.

    이 단계에서는 parksmap 프런트 엔드 애플리케이션을 배포하고 외부에서 노출하며 최대 두 개의 인스턴스로 확장합니다.

  4. 백엔드 애플리케이션을 배포합니다.

    이 단계에서는 nationalparks 백엔드 애플리케이션을 배포하고 외부에 노출합니다.

  5. 데이터베이스 애플리케이션을 배포합니다.

    이 단계에서는 mongodb-nationalparks MongoDB 데이터베이스를 배포하고 데이터베이스에 데이터를 로드하며 데이터베이스에 액세스하는 데 필요한 자격 증명을 설정합니다.

이 단계를 완료하면 웹 브라우저에서 국립 공원 애플리케이션을 볼 수 있습니다.

3.1. 사전 요구 사항

이 튜토리얼을 시작하기 전에 다음과 같은 필수 사전 요구 사항이 있는지 확인하십시오.

  • OpenShift CLI(oc) 를 설치했습니다.
  • 테스트 OpenShift Container Platform 클러스터에 액세스할 수 있습니다.

    조직에 테스트할 클러스터가 없는 경우 개발자 샌드박스에 대한 액세스 권한을 요청하여 OpenShift Container Platform 평가판에 액세스할 수 있습니다.

  • cluster-admin 클러스터 역할과 같은 적절한 권한이 있어 프로젝트와 애플리케이션을 생성합니다.

    필요한 권한이 없는 경우 클러스터 관리자에게 문의하십시오. 해당 프로젝트의 리소스를 수정하려면 project 및 admin 역할을 생성하려면 self-provisioner 역할이 필요합니다.

    개발자 샌드박스를 사용하는 경우 필요한 권한으로 프로젝트가 생성됩니다.

  • OpenShift CLI(oc)를 사용하여 클러스터에 로그인 했습니다.

3.2. 프로젝트 생성

사용자 커뮤니티는 프로젝트를 통해 별도로 콘텐츠를 구성하고 관리할 수 있습니다. 프로젝트는 Kubernetes 네임스페이스에 대한 OpenShift Container Platform 확장입니다. 프로젝트에는 사용자 셀프 프로비저닝을 활성화하는 추가 기능이 있습니다. 각 프로젝트에는 고유한 오브젝트, 정책, 제약 조건 및 서비스 계정이 있습니다.

클러스터 관리자는 개발자가 자신의 프로젝트를 만들 수 있도록 허용할 수 있습니다. 대부분의 경우 사용자 프로젝트에 자동으로 액세스할 수 있습니다. 관리자는 필요에 따라 다른 프로젝트에 대한 액세스 권한을 부여할 수 있습니다.

이 절차에서는 user-getting-started 라는 새 프로젝트를 생성합니다. 이 프로젝트는 이 튜토리얼의 나머지 부분에서 사용됩니다.

중요

개발자 샌드박스를 사용하여 이 튜토리얼을 완료하는 경우 이 절차를 건너뜁니다. 사용자를 위해 프로젝트가 이미 생성되었습니다.

사전 요구 사항

  • OpenShift CLI(oc)에 로그인했습니다.

프로세스

  • 다음 명령을 실행하여 프로젝트를 생성합니다.

    $ oc new-project user-getting-started
    Copy to Clipboard Toggle word wrap

    출력 예

    Now using project "user-getting-started" on server "https://openshift.example.com:6443".
    ...
    Copy to Clipboard Toggle word wrap

3.3. 보기 권한 부여

OpenShift Container Platform은 모든 프로젝트에서 자동으로 여러 서비스 계정을 생성합니다. 기본 서비스 계정은 Pod 실행을 담당합니다. OpenShift Container Platform은 이 서비스 계정을 사용하고 시작하는 모든 Pod에 삽입합니다.

기본적으로 기본 서비스 계정에는 OpenShift API와 상호 작용할 수 있는 제한된 권한이 있습니다.

애플리케이션의 요구 사항으로 프로젝트 내의 포드, 서비스 및 리소스에 대해 알아보려면 OpenShift API와 통신할 수 있도록 기본 서비스 계정에 view 역할을 할당해야 합니다.

사전 요구 사항

  • OpenShift Container Platform 클러스터에 액세스 권한을 보유합니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • cluster-admin 또는 프로젝트 수준 관리자 권한이 있어야 합니다.

프로세스

  • 다음 명령을 실행하여 user-getting-started 프로젝트의 기본 서비스 계정에 view 역할을 추가합니다.

    $ oc adm policy add-role-to-user view -z default -n user-getting-started
    Copy to Clipboard Toggle word wrap
    중요

    다른 프로젝트를 사용하는 경우 user-getting-started 를 프로젝트 이름으로 교체합니다.

3.4. 프런트 엔드 애플리케이션 배포

OpenShift Container Platform에서 애플리케이션을 배포하는 가장 간단한 방법은 제공된 컨테이너 이미지를 실행하는 것입니다.

다음 절차에서는 national-parks-app 애플리케이션의 프런트 엔드 구성 요소인 parksmap 을 배포합니다. 웹 애플리케이션에는 전 세계의 국립 공원 위치에 대한 대화형 맵이 표시됩니다.

사전 요구 사항

  • OpenShift Container Platform 클러스터에 액세스 권한을 보유합니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  • 다음 명령을 실행하여 parksmap 애플리케이션을 배포합니다.

    $ oc new-app quay.io/openshiftroadshow/parksmap:latest --name=parksmap -l 'app=national-parks-app,component=parksmap,role=frontend,app.kubernetes.io/part-of=national-parks-app'
    Copy to Clipboard Toggle word wrap

    출력 예

    --> Found container image 0c2f55f (4 years old) from quay.io for "quay.io/openshiftroadshow/parksmap:latest"
    
        * An image stream tag will be created as "parksmap:latest" that will track this image
    
    --> Creating resources with label app=national-parks-app,app.kubernetes.io/part-of=national-parks-app,component=parksmap,role=frontend ...
        imagestream.image.openshift.io "parksmap" created
        deployment.apps "parksmap" created
        service "parksmap" created
    --> Success
        Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
         'oc expose service/parksmap'
        Run 'oc status' to view your app.
    Copy to Clipboard Toggle word wrap

3.4.1. 프런트 엔드 서비스 노출

기본적으로 OpenShift Container Platform에서 실행되는 서비스는 외부에서 액세스할 수 없습니다.

외부 클라이언트가 액세스할 수 있도록 서비스를 공개하려면 경로를 생성할 수 있습니다. Route 오브젝트는 Kubernetes Ingress 오브젝트와 유사한 OpenShift Container Platform 네트워킹 리소스입니다. 기본 OpenShift Container Platform 라우터(HAProxy)는 들어오는 요청의 HTTP 헤더를 사용하여 연결을 프록시할 위치를 결정합니다.

선택적으로 경로에 대해 TLS와 같은 보안을 정의할 수 있습니다.

사전 요구 사항

  • parksmap 프런트 엔드 애플리케이션을 배포했습니다.
  • cluster-admin 또는 프로젝트 수준 관리자 권한이 있어야 합니다.

프로세스

  • 다음 명령을 실행하여 parksmap 프런트 엔드 애플리케이션을 공개할 경로를 생성합니다.

    $ oc create route edge parksmap --service=parksmap
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 애플리케이션 경로가 성공적으로 생성되었는지 확인합니다.

    $ oc get route parksmap
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME        HOST/PORT                                                   PATH   SERVICES   PORT       TERMINATION   WILDCARD
    parksmap    parksmap-user-getting-started.apps.cluster.example.com             parksmap   8080-tcp   edge          None
    Copy to Clipboard Toggle word wrap

3.4.2. Pod 세부 정보 보기

OpenShift Container Platform에서는 하나의 호스트에 함께 배포되는 하나 이상의 컨테이너이자 정의, 배포 및 관리할 수 있는 최소 컴퓨팅 단위인 Pod 의 Kubernetes 개념을 사용합니다. Pod는 컨테이너에 대한 머신 인스턴스, 물리 또는 가상과 대략적으로 동일합니다.

클러스터의 Pod를 보고 해당 Pod 및 클러스터의 상태를 전체적으로 확인할 수 있습니다.

사전 요구 사항

  • parksmap 프런트 엔드 애플리케이션을 배포했습니다.

프로세스

  • 다음 명령을 실행하여 현재 프로젝트의 모든 Pod를 나열합니다.

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                       READY   STATUS    RESTARTS   AGE
    parksmap-5f9579955-6sng8   1/1     Running   0          77s
    Copy to Clipboard Toggle word wrap

  • 다음 명령을 실행하여 Pod 세부 정보를 표시합니다.

    $ oc describe pod parksmap-5f9579955-6sng8
    Copy to Clipboard Toggle word wrap

    출력 예

    Name:             parksmap-5f9579955-6sng8
    Namespace:        user-getting-started
    Priority:         0
    Service Account:  default
    Node:             ci-ln-fr1rt92-72292-4fzf9-worker-a-g9g7c/10.0.128.4
    Start Time:       Wed, 26 Mar 2025 14:03:19 -0400
    Labels:           app=national-parks-app
                      app.kubernetes.io/part-of=national-parks-app
                      component=parksmap
                      deployment=parksmap
                      pod-template-hash=848bd4954b
                      role=frontend
    ...
    Copy to Clipboard Toggle word wrap

  • 다음 명령을 실행하여 Pod의 로그를 확인합니다.

    $ oc logs parksmap-5f9579955-6sng8
    Copy to Clipboard Toggle word wrap

    출력 예

    ...
    2025-03-26 18:03:24.774  INFO 1 --- [           main] o.s.m.s.b.SimpleBrokerMessageHandler     : Started.
    2025-03-26 18:03:24.798  INFO 1 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
    2025-03-26 18:03:24.801  INFO 1 --- [           main] c.o.evg.roadshow.ParksMapApplication     : Started ParksMapApplication in 4.053 seconds (JVM running for 4.46)
    Copy to Clipboard Toggle word wrap

3.4.3. 배포 확장

Kubernetes에서 Deployment 오브젝트는 애플리케이션이 배포하는 방법을 정의합니다. 애플리케이션을 배포할 때 OpenShift Container Platform은 포드,서비스,ReplicaSet배포 리소스를 생성합니다.

parksmap 이미지를 배포하면 배포 리소스가 생성됩니다. 이 예에서는 하나의 Pod만 배포됩니다. 사용자 요구에 맞게 애플리케이션을 확장하거나 하나의 Pod가 다운된 경우에도 애플리케이션이 항상 실행 중인지 확인할 수 있습니다.

다음 절차에서는 두 개의 인스턴스를 사용하도록 parksmap 배포를 스케일링합니다.

사전 요구 사항

  • parksmap 프런트 엔드 애플리케이션을 배포했습니다.

프로세스

  • 다음 명령을 실행하여 배포를 하나의 Pod 인스턴스에서 두 개의 Pod 인스턴스로 확장합니다.

    $ oc scale --replicas=2 deployment/parksmap
    Copy to Clipboard Toggle word wrap

    출력 예

    deployment.apps/parksmap scaled
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 배포가 올바르게 확장되었는지 확인합니다.

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                       READY   STATUS    RESTARTS   AGE
    parksmap-5f9579955-6sng8   1/1     Running   0          7m39s
    parksmap-5f9579955-8tgft   1/1     Running   0          24s
    Copy to Clipboard Toggle word wrap

    두 개의 parksmap Pod가 나열되어 있는지 확인합니다.

작은 정보

배포를 하나의 Pod 인스턴스로 다시 축소하려면 1--replicas 옵션으로 전달합니다.

$ oc scale --replicas=1 deployment/parksmap
Copy to Clipboard Toggle word wrap

3.5. 백엔드 애플리케이션 배포

다음 절차에서는 national-parks-app 애플리케이션의 백엔드 구성 요소인 nationalparks 를 배포합니다. Python 애플리케이션은 MongoDB 데이터베이스에 대해 2D 지리 공간 쿼리를 수행하여 전 세계 모든 국립공원의 지도 좌표를 찾고 반환합니다.

사전 요구 사항

  • parksmap 프런트 엔드 애플리케이션을 배포했습니다.

프로세스

  • 다음 명령을 실행하여 nationalparks 백엔드 애플리케이션을 생성합니다.

    $ oc new-app python~https://github.com/openshift-roadshow/nationalparks-py.git --name nationalparks -l 'app=national-parks-app,component=nationalparks,role=backend,app.kubernetes.io/part-of=national-parks-app,app.kubernetes.io/name=python' --allow-missing-images=true
    Copy to Clipboard Toggle word wrap

    출력 예

    --> Found image 9531750 (2 weeks old) in image stream "openshift/python" under tag "3.11-ubi8" for "python"
    
        Python 3.11
        -----------
    ...
    
    --> Creating resources with label app=national-parks-app,app.kubernetes.io/name=python,app.kubernetes.io/part-of=national-parks-app,component=nationalparks,role=backend ...
        imagestream.image.openshift.io "nationalparks" created
        buildconfig.build.openshift.io "nationalparks" created
        deployment.apps "nationalparks" created
        service "nationalparks" created
    --> Success
        Build scheduled, use 'oc logs -f buildconfig/nationalparks' to track its progress.
        Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
         'oc expose service/nationalparks'
        Run 'oc status' to view your app.
    Copy to Clipboard Toggle word wrap

3.5.1. 백엔드 서비스 노출

외부 클라이언트에 대한 프런트 엔드 서비스를 노출하는 방식과 유사하게 경로를 생성하여 백엔드 서비스를 노출해야 합니다.

사전 요구 사항

  • nationalparks 백엔드 애플리케이션을 배포했습니다.
  • cluster-admin 또는 프로젝트 수준 관리자 권한이 있어야 합니다.

프로세스

  1. 다음 명령을 실행하여 nationalparks 백엔드 애플리케이션을 노출할 경로를 생성합니다.

    $ oc create route edge nationalparks --service=nationalparks
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 nationalparks 경로에 레이블을 지정합니다.

    $ oc label route nationalparks type=parksmap-backend
    Copy to Clipboard Toggle word wrap

    애플리케이션 코드에서 nationalparks 경로에 type=parksmap-backend 로 레이블이 지정될 것으로 예상합니다.

3.6. 데이터베이스 애플리케이션 배포

다음 절차에서는 국립 공원 위치 정보를 보유할 MongoDB 데이터베이스인 mongodb-nationalparks 를 배포합니다.

사전 요구 사항

  • parksmap 프런트 엔드 애플리케이션을 배포했습니다.
  • nationalparks 백엔드 애플리케이션을 배포했습니다.

프로세스

  • 다음 명령을 실행하여 mongodb-nationalparks 데이터베이스 애플리케이션을 배포합니다.

    $ oc new-app registry.redhat.io/rhmap47/mongodb --name mongodb-nationalparks -e MONGODB_USER=mongodb -e MONGODB_PASSWORD=mongodb -e MONGODB_DATABASE=mongodb -e MONGODB_ADMIN_PASSWORD=mongodb -l 'app.kubernetes.io/part-of=national-parks-app,app.kubernetes.io/name=mongodb'
    Copy to Clipboard Toggle word wrap

    출력 예

    --> Found container image 7a61087 (12 days old) from quay.io for "quay.io/mongodb/mongodb-enterprise-server"
    
        * An image stream tag will be created as "mongodb-nationalparks:latest" that will track this image
    
    --> Creating resources with label app.kubernetes.io/name=mongodb,app.kubernetes.io/part-of=national-parks-app ...
        imagestream.image.openshift.io "mongodb-nationalparks" created
        deployment.apps "mongodb-nationalparks" created
        service "mongodb-nationalparks" created
    --> Success
        Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
         'oc expose service/mongodb-nationalparks'
        Run 'oc status' to view your app.
    Copy to Clipboard Toggle word wrap

3.6.1. 보안을 생성하여 데이터베이스에 대한 액세스 제공

MongoDB 데이터베이스에 액세스하려면 nationalparks 애플리케이션에는 데이터베이스 이름, 사용자 이름 및 암호와 같은 정보가 필요합니다. 그러나 이 정보는 민감하므로 Pod에 직접 저장하지 않아야 합니다.

시크릿 을 사용하여 중요한 정보를 저장하고 해당 시크릿을 워크로드와 공유할 수 있습니다.

보안 오브젝트는 암호, OpenShift Container Platform 클라이언트 구성 파일 및 개인 소스 리포지토리 자격 증명과 같은 중요한 정보를 보유하는 메커니즘을 제공합니다. 보안은 Pod에서 중요한 콘텐츠를 분리합니다. 볼륨 플러그인을 사용하거나 에서 시크릿을 환경 변수로 전달하여 컨테이너에 보안을 마운트할 수 있습니다. 그런 다음 시스템에서 보안을 사용하여 Pod에 중요한 정보를 제공할 수 있습니다.

다음 절차에서는 nationalparks-mongodb-parameters 시크릿을 생성하여 nationalparks 워크로드에 마운트합니다.

사전 요구 사항

  • nationalparks 백엔드 애플리케이션을 배포했습니다.
  • mongodb-nationalparks 데이터베이스 애플리케이션을 배포했습니다.

프로세스

  1. 다음 명령을 실행하여 필요한 데이터베이스 액세스 정보를 사용하여 시크릿을 생성합니다.

    $ oc create secret generic nationalparks-mongodb-parameters --from-literal=DATABASE_SERVICE_NAME=mongodb-nationalparks --from-literal=MONGODB_USER=mongodb --from-literal=MONGODB_PASSWORD=mongodb --from-literal=MONGODB_DATABASE=mongodb --from-literal=MONGODB_ADMIN_PASSWORD=mongodb
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 시크릿에서 nationalparks 워크로드로 환경을 가져옵니다.

    $ oc set env --from=secret/nationalparks-mongodb-parameters deploy/nationalparks
    Copy to Clipboard Toggle word wrap
  3. nationalparks 배포가 이 환경 정보를 사용하여 새 버전을 롤아웃할 때까지 기다립니다. 다음 명령을 실행하여 nationalparks 배포 상태를 확인합니다.

    $ oc rollout status deployment nationalparks
    Copy to Clipboard Toggle word wrap

    출력 예

    deployment "nationalparks" successfully rolled out
    Copy to Clipboard Toggle word wrap

3.6.2. 데이터베이스에 데이터 로드

mongodb-nationalparks 데이터베이스를 배포한 후 국립 공원 위치 정보를 데이터베이스에 로드할 수 있습니다.

사전 요구 사항

  • nationalparks 백엔드 애플리케이션을 배포했습니다.
  • mongodb-nationalparks 데이터베이스 애플리케이션을 배포했습니다.

프로세스

  • 다음 명령을 실행하여 국립 공원 데이터를 로드합니다.

    $ oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/ws/data/load
    Copy to Clipboard Toggle word wrap

    출력 예

    "Items inserted in database: 2893"
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 맵 데이터가 올바르게 로드되었는지 확인합니다.

    $ oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/ws/data/all
    Copy to Clipboard Toggle word wrap

    출력 예(잘라냄)

    ...
    , {"id": "Great Zimbabwe", "latitude": "-20.2674635", "longitude": "30.9337986", "name": "Great Zimbabwe"}]
    Copy to Clipboard Toggle word wrap

3.7. 웹 브라우저에서 애플리케이션 보기

필요한 애플리케이션을 배포하고 데이터베이스에 데이터를 로드한 후 브라우저를 통해 국립 공원 애플리케이션을 볼 수 있습니다.

프런트 엔드 애플리케이션의 경로 정보를 검색하여 애플리케이션의 URL을 가져올 수 있습니다.

사전 요구 사항

  • parksmap 프런트 엔드 애플리케이션을 배포했습니다.
  • nationalparks 백엔드 애플리케이션을 배포했습니다.
  • mongodb-nationalparks 데이터베이스 애플리케이션을 배포했습니다.
  • 데이터를 mongodb-nationalparks 데이터베이스에 로드했습니다.

프로세스

  1. 다음 명령을 실행하여 맵 애플리케이션 URL을 검색하려면 경로 정보를 가져옵니다.

    $ oc get route parksmap
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME       HOST/PORT                                                  PATH   SERVICES    PORT       TERMINATION   WILDCARD
    parksmap   parksmap-user-getting-started.apps.cluster.example.com            parksmap    8080-tcp   edge          None
    Copy to Clipboard Toggle word wrap

  2. 위 출력에서 HOST/PORT 열의 값을 복사합니다.
  3. 복사된 값 앞에 https:// 를 추가하여 애플리케이션 URL을 가져옵니다. 이는 경로가 보안 경로이므로 필요합니다.

    애플리케이션 URL 예

    https://parksmap-user-getting-started.apps.cluster.example.com
    Copy to Clipboard Toggle word wrap

  4. 이 애플리케이션 URL을 웹 브라우저에 붙여넣습니다. 사용 중인 브라우저에는 전 세계의 국립 공원 지도가 표시되어야 합니다.

    그림 3.1. 전 세계의 국립공원

    애플리케이션이 위치에 액세스할 수 있도록 허용하면 맵이 사용자의 위치를 중심으로 합니다.

4장. 추가 실습 학습

Red Hat은 관리자와 개발자가 OpenShift Container Platform에 대한 실습 경험을 얻을 수 있는 많은 추가 학습 리소스를 제공합니다.

4.1. Red Hat Developer Learning 경로

Red Hat Developer 프로그램은 개발자가 OpenShift Container Platform 작업을 시작할 수 있는 몇 가지 학습 경로를 제공합니다.

다음 표에는 OpenShift Container Platform에 권장되는 몇 가지 학습 경로가 나열되어 있습니다.

Expand
표 4.1. Red Hat Developer Learning 경로
학습 경로설명

OpenShift의 기반

이 학습 경로에는 기본 Red Hat OpenShift 개념과 다양한 방법을 통해 애플리케이션을 생성하고 배포하는 방법에 대해 설명합니다.

OpenShift 사용

이 학습 경로에는 클러스터 액세스, 데이터베이스 작업 및 리소스 관리 관리에 대해 설명합니다.

OpenShift에서 애플리케이션 개발

이 학습 경로는 소스 코드 및 이미지에서 애플리케이션을 배포하고 Node.js로 개발하는 방법을 다룹니다.

OpenShift에서 full-stack JavaScript 애플리케이션을 배포하는 방법

이 학습 경로에는 OpenShift Container Platform 클러스터에 전체 스택 JavaScript 애플리케이션을 배포하는 방법을 설명합니다.

PVC를 사용하여 Red Hat OpenShift에 영구 데이터 저장

이 학습 경로는 OpenShift Container Platform의 영구 스토리지에 PVC(영구 볼륨 클레임)를 생성하고 사용하는 방법을 설명합니다.

OpenShift Container Platform에서 사용 가능한 Red Hat Developer Learning 경로의 전체 목록은 OpenShift 및 Kubernetes 러닝 을 참조하십시오.

4.2. Red Hat 교육 과정

Red Hat 교육은 Red Hat OpenShift 및 관련 기술을 배울 수 있도록 무료 및 유료 온라인 및 다양한 과정을 제공합니다.

다음 표에는 개발자와 관리자 모두 OpenShift Container Platform에 권장되는 몇 가지 교육 과정이 나열되어 있습니다.

Expand
표 4.2. 개발자를 위한 Red Hat 교육 과정
과정설명

DO101: OpenShift 애플리케이션 소개

이 과정을 통해 개발자는 OpenShift Container Platform에서 애플리케이션을 배포, 확장 및 문제를 해결하는 방법을 배울 수 있습니다.

DO188: Red Hat OpenShift Development I: Podman을 사용한 컨테이너 소개

이 과정을 통해 개발자는 Podman 및 OpenShift Container Platform을 사용하여 컨테이너를 빌드, 실행 및 관리하는 방법을 배울 수 있습니다.

DO288: Red Hat OpenShift Developer II: 클라우드 네이티브 애플리케이션 빌드 및 배포

이 과정을 통해 개발자는 OpenShift Container Platform 클러스터에서 컨테이너화된 소프트웨어 애플리케이션을 설계, 빌드 및 배포하는 방법을 배울 수 있습니다.

Expand
표 4.3. 관리자를 위한 Red Hat 교육 과정
과정설명

DO180: Red Hat OpenShift Administration I: 프로덕션 클러스터 운영

클러스터 관리자는 이 과정을 통해 OpenShift Container Platform 클러스터를 관리하고 개발자와 협력하여 애플리케이션 워크로드를 지원하는 방법을 배울 수 있습니다.

DO280: Red Hat OpenShift Administration II: 프로덕션 클러스터 구성

클러스터 관리자는 이 과정을 통해 보안 기능을 구성하고 Operator를 관리하고 클러스터 업데이트를 수행하는 방법을 배울 수 있습니다.

DO322: Red Hat OpenShift Installation Lab

클러스터 관리자는 이 과정을 통해 다양한 환경에 OpenShift Container Platform 클러스터를 설치하는 방법을 배울 수 있습니다.

사용 가능한 교육 과정의 전체 목록은 Red Hat 교육 및 인증을 참조하십시오. 기술 평가를 통해 교육을 시작할 수 있는 위치에 대한 권장 사항을 받을 수도 있습니다.

4.3. Red Hat fake sheets

Red Hat은 OpenShift Container Platform 작업을 위해 일반적인 oc CLI(ocCLI) 명령에 대한 빠른 참조를 제공하는 몇 가지 스포크 시트를 제공합니다.

다음 표에는 OpenShift Container Platform에 권장되는 몇 가지 예가 나와 있습니다.

Expand
표 4.4. Red Hat fake sheets
스프레인 시트설명

Red Hat OpenShift Cheat#159

이 스트리트 시트는 애플리케이션 라이프사이클을 관리하기 위한 많은 OpenShift CLI(oc) 명령을 제공합니다.

OpenShift 명령줄 필수 사항

이 대략적 시트는 애플리케이션 생성, 디버깅 및 배포 편집과 같은 몇 가지 필수 OpenShift CLI(oc) 명령을 빠르게 보여줍니다.

사용 가능한 스트리트 시트의 전체 목록은 Red Hat 개발자 스피치 시트를 참조하십시오.

Legal Notice

Copyright © 2025 Red Hat

OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).

Modified versions must remove all Red Hat trademarks.

Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.

Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman 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 Software Collections 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.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat