튜토리얼
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 웹 콘솔을 사용하세요.
이 튜토리얼을 완료하려면 다음 단계를 수행하세요.
이 단계를 통해 애플리케이션을 다른 클러스터 사용자의 작업 부하로부터 격리할 수 있습니다.
보기 권한 부여
이 단계에서는 프로젝트 내에서 실행 중인 서비스 및 기타 리소스를 검색하는 데 도움이 되는 OpenShift API와 상호 작용할 수 있는
보기권한을 부여합니다.이 단계에서는
parksmap프런트엔드 애플리케이션을 배포하고 외부에 노출하며 최대 두 개의 인스턴스로 확장합니다.이 단계에서는
국립공원백엔드 애플리케이션을 배포하고 외부에 공개합니다.이 단계에서는
mongodb-nationalparksMongoDB 데이터베이스를 배포하고, 데이터베이스에 데이터를 로드하고, 데이터베이스에 액세스하는 데 필요한 자격 증명을 설정합니다.
이러한 단계를 완료하면 웹 브라우저에서 국립공원 애플리케이션을 볼 수 있습니다.
2.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
이 튜토리얼을 시작하기 전에 다음과 같은 필수 전제 조건이 충족되었는지 확인하세요.
테스트용 OpenShift Container Platform 클러스터에 액세스할 수 있습니다.
조직에 테스트할 클러스터가 없는 경우 개발자 샌드박스 에 대한 액세스를 요청하여 OpenShift Container Platform을 체험해 볼 수 있습니다.
프로젝트와 그 안에서 애플리케이션을 생성하려면
cluster-admin클러스터 역할 과 같은 적절한 권한이 필요합니다.필요한 권한이 없으면 클러스터 관리자에게 문의하세요. 프로젝트를 생성하려면
셀프 프로비저닝역할이 필요하고, 해당 프로젝트의 리소스를 수정하려면 프로젝트에 대한관리자역할이 필요합니다.개발자 샌드박스를 사용하는 경우 필요한 권한이 있는 프로젝트가 생성됩니다.
- OpenShift Container Platform 웹 콘솔에 로그인했습니다.
2.2. 프로젝트 생성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 커뮤니티는 프로젝트를 통해 별도로 콘텐츠를 구성하고 관리할 수 있습니다. 프로젝트는 Kubernetes 네임스페이스에 대한 OpenShift Container Platform 확장입니다. 프로젝트에는 사용자 셀프 프로비저닝을 활성화하는 추가 기능이 있습니다. 각 프로젝트에는 고유한 오브젝트, 정책, 제약 조건 및 서비스 계정이 있습니다.
클러스터 관리자는 개발자가 자신의 프로젝트를 만들 수 있도록 허용할 수 있습니다. 대부분의 경우, 귀하는 자동으로 자신의 프로젝트에 접근할 수 있습니다. 관리자는 필요에 따라 다른 프로젝트에 대한 액세스 권한을 부여할 수 있습니다.
이 절차를 수행하면 user-getting-started 라는 새 프로젝트가 생성됩니다. 이 프로젝트는 이 튜토리얼의 나머지 부분에서 사용됩니다.
이 튜토리얼을 완료하기 위해 개발자 샌드박스를 사용하는 경우 이 절차를 건너뛰세요. 귀하를 위한 프로젝트가 이미 생성되었습니다.
사전 요구 사항
- OpenShift Container Platform 웹 콘솔에 로그인했습니다.
프로세스
- 홈 → 프로젝트로 이동합니다.
- 프로젝트 만들기를 클릭합니다.
-
이름 필드에
user-getting-started를 입력합니다. - 생성을 클릭합니다.
2.3. 보기 권한 부여 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform은 모든 프로젝트에서 자동으로 여러 서비스 계정을 생성합니다. 기본 서비스 계정은 Pod 실행을 담당합니다. OpenShift Container Platform은 이 서비스 계정을 사용하고 시작하는 모든 Pod에 삽입합니다.
기본적으로 기본 서비스 계정은 OpenShift API와 상호 작용할 수 있는 권한이 제한되어 있습니다.
애플리케이션의 요구 사항으로, 프로젝트 내의 포드, 서비스 및 리소스에 대해 알아보기 위해 OpenShift API와 통신할 수 있도록 기본 서비스 계정에 뷰 역할을 할당해야 합니다.
사전 요구 사항
-
클러스터 관리자또는 프로젝트 수준의관리자권한이 있습니다.
프로세스
- 사용자 관리 → RoleBindings 로 이동합니다.
- 바인딩 생성을 클릭합니다.
-
이름 필드에
sa-user-account를 입력합니다. 네임스페이스 필드에서
user-getting-started를 검색하고 선택합니다.중요다른 프로젝트를 사용하는 경우 프로젝트 이름을 선택하세요.
-
역할 이름 필드에서
보기를검색하여 선택합니다. -
제목 에서
서비스 계정을선택합니다. 제목 네임스페이스 필드에서
user-getting-started를 검색하고 선택합니다.중요다른 프로젝트를 사용하는 경우 프로젝트 이름을 선택하세요.
-
제목 이름 필드에
default를 입력합니다. - 생성을 클릭합니다.
2.4. 프런트엔드 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform에서 애플리케이션을 배포하는 가장 간단한 방법은 기존 컨테이너 이미지를 실행하는 것입니다.
다음 절차에서는 national-parks-app 애플리케이션의 프런트엔드 구성 요소인 parksmap을 배포합니다. 웹 애플리케이션은 전 세계 국립공원의 위치를 표시한 대화형 지도를 표시합니다.
프로세스
-
빠른 생성 에서 (
) 오른쪽 상단의 메뉴에서 컨테이너 이미지를 클릭합니다.
-
외부 레지스트리에서 이미지 이름을 선택하고
quay.io/openshiftroadshow/parksmap:latest를입력합니다. - 일반 섹션으로 스크롤합니다.
-
애플리케이션 이름 필드에
national-parks-app을입력합니다. -
이름 필드에서 값이
parksmap인지 확인하세요. - 배포 섹션으로 스크롤합니다.
- 리소스 유형 필드에서 배포가 선택되었는지 확인하세요.
고급 옵션 섹션에서 경로 만들기가 선택되어 있는지 확인하세요.
기본적으로 OpenShift Container Platform에서 실행되는 서비스는 외부에서 액세스할 수 없습니다. 외부 클라이언트가 서비스에 액세스할 수 있도록 경로를 생성하려면 이 옵션을 선택해야 합니다.
라벨 하이퍼링크를 클릭합니다.
애플리케이션 코드에는 특정 레이블을 설정해야 합니다.
다음 레이블을 텍스트 영역에 추가하고 각 키/값 쌍 뒤에 Enter를 누릅니다.
-
app=national-parks-app -
component=parksmap -
role=frontend
-
- 생성을 클릭합니다.
national-parks-app 애플리케이션에서 parksmap 배포를 볼 수 있는 토폴로지 페이지로 리디렉션됩니다.
2.4.1. 포드 세부 정보 보기 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform에서는 하나의 호스트에 함께 배포되는 하나 이상의 컨테이너이자 정의, 배포, 관리할 수 있는 최소 컴퓨팅 단위인 Pod의 Kubernetes 개념을 활용합니다. Pod는 컨테이너에 대한 머신 인스턴스, 물리 또는 가상과 대략적으로 동일합니다.
개요 패널을 사용하면 parksmap 배포의 많은 기능에 액세스할 수 있습니다. 세부 정보 및 리소스 탭을 사용하면 애플리케이션 포드를 확장하고 빌드, 서비스 및 경로의 상태를 확인할 수 있습니다.
사전 요구 사항
-
parksmap프런트엔드 애플리케이션을 배포했습니다.
프로세스
- 워크로드 → 토폴로지 로 이동합니다.
national-parks-app애플리케이션에서parksmap배포를 클릭합니다.그림 2.1. Parksmap 배포
그러면 다음 탭이 있는 개요 패널이 열립니다.
- 세부 정보 : 배포에 대한 세부 정보를 보고, 특정 설정을 편집하고, 배포를 확장합니다.
- 리소스 : 배포와 관련된 포드, 서비스 및 경로에 대한 세부 정보를 확인합니다.
- 관찰 : 배포에 대한 메트릭과 이벤트를 확인합니다.
-
포드의 로그를 보려면 리소스 탭을 선택하고
parksmap포드 옆에 있는 로그 보기를 클릭하세요.
2.4.2. 애플리케이션 확장 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes에서 Deployment 오브젝트는 애플리케이션이 배포하는 방법을 정의합니다. 대부분의 경우 애플리케이션을 배포할 때 OpenShift Container Platform은 Pod , Service , ReplicaSet 및 Deployment 리소스를 자동으로 생성합니다.
parksmap 이미지를 배포하면 배포 리소스가 생성됩니다. 예에서는 하나의 Pod만 배포됩니다. 사용자 요구에 부응하기 위해 애플리케이션을 확장하거나, 하나의 포드가 다운되더라도 애플리케이션이 항상 실행되도록 해야 할 수도 있습니다.
다음 절차에서는 parksmap 배포를 확장하여 두 개의 인스턴스를 사용합니다.
사전 요구 사항
-
parksmap프런트엔드 애플리케이션을 배포했습니다.
프로세스
-
워크로드 → 토폴로지 로 이동하여
parksmap배포를 클릭합니다. - 세부정보 탭을 선택하세요.
위쪽 화살표를 사용하여 pod를 두 개의 인스턴스로 확장합니다.
그림 2.2. 애플리케이션 확장
아래쪽 화살표를 사용하여 배포 규모를 하나의 Pod 인스턴스로 줄일 수 있습니다.
2.5. 백엔드 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 national-parks-app 애플리케이션의 백엔드 구성 요소인 nationalparks를 배포합니다. Python 애플리케이션은 MongoDB 데이터베이스에 대해 2D 지리 공간 쿼리를 수행하여 전 세계 모든 국립공원의 지도 좌표를 찾고 반환합니다.
사전 요구 사항
-
parksmap프런트엔드 애플리케이션을 배포했습니다.
프로세스
-
빠른 생성 에서 (
) 오른쪽 상단의 메뉴에서 Git에서 가져오기를 클릭합니다.
Git Repo URL 필드에
https://github.com/openshift-roadshow/nationalparks-py.git 를입력합니다.빌더 이미지는 자동으로 감지되지만 가져오기 전략은 Python 대신 Dockerfile을 기본적으로 사용합니다.
가져오기 전략 변경:
- 가져오기 전략 편집을 클릭합니다.
- 빌더 이미지를 선택하세요.
- Python을 선택하세요.
- 일반 섹션으로 스크롤합니다.
-
응용 프로그램 필드에서 값이
national-parks-app인지 확인하세요. -
이름 필드에
nationalparks 를입력합니다. - 배포 섹션으로 스크롤합니다.
- 리소스 유형 필드에서 배포가 선택되었는지 확인하세요.
고급 옵션 섹션에서 경로 만들기가 선택되어 있는지 확인하세요.
기본적으로 OpenShift Container Platform에서 실행되는 서비스는 외부에서 액세스할 수 없습니다. 외부 클라이언트가 서비스에 액세스할 수 있도록 경로를 생성하려면 이 옵션을 선택해야 합니다.
라벨 하이퍼링크를 클릭합니다.
애플리케이션 코드에는 특정 레이블을 설정해야 합니다.
다음 레이블을 텍스트 영역에 추가하고 각 키/값 쌍 뒤에 Enter를 누릅니다.
-
app=national-parks-app -
component=nationalparks -
role=backend -
type=parksmap-backend
-
- 생성을 클릭합니다.
national-parks-app 애플리케이션에서 parksmap 배포를 볼 수 있는 토폴로지 페이지로 리디렉션됩니다.
검증
- 워크로드 → 토폴로지 로 이동합니다.
-
national-parks-app애플리케이션에서nationalparks배포를 클릭합니다. Resources 탭을 클릭합니다.
빌드가 성공적으로 완료될 때까지 기다리세요.
2.6. 데이터베이스 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 국립공원 위치 정보를 보관하는 MongoDB 데이터베이스인 mongodb-nationalparks를 배포합니다.
사전 요구 사항
-
parksmap프런트엔드 애플리케이션을 배포했습니다. -
국립공원백엔드 애플리케이션을 배포했습니다.
프로세스
-
빠른 생성 에서 (
) 오른쪽 상단의 메뉴에서 컨테이너 이미지를 클릭합니다.
-
외부 레지스트리에서 이미지 이름을 선택하고
registry.redhat.io/rhmap47/mongodb를입력합니다. -
런타임 아이콘 필드에서
mongodb 를검색하여 선택합니다. - 일반 섹션으로 스크롤합니다.
-
애플리케이션 이름 필드에
national-parks-app을입력합니다. -
이름 필드에
mongodb-nationalparks 를입력합니다. - 배포 섹션으로 스크롤합니다.
- 리소스 유형 필드에서 배포가 선택되었는지 확인하세요.
- 고급 배포 옵션 표시를 클릭합니다.
환경 변수(런타임 전용) 에서 다음 이름과 값을 추가합니다.
Expand 표 2.1. 환경 변수 이름 및 값 이름 현재의 MONGODB_USERmongodbMONGODB_PASSWORDmongodbMONGODB_DATABASEmongodbMONGODB_ADMIN_PASSWORDmongodb작은 정보추가 환경 변수를 추가하려면 값 추가를 클릭합니다.
고급 옵션 섹션에서 경로 만들기를 선택 취소합니다.
데이터베이스 애플리케이션은 외부에서 접근할 필요가 없으므로 경로가 필요하지 않습니다.
- 생성을 클릭합니다.
national-parks-app 애플리케이션에서 mongodb-nationalparks가 배포된 것을 볼 수 있는 토폴로지 페이지로 리디렉션됩니다.
2.6.1. 비밀을 생성하여 데이터베이스에 대한 액세스 제공 링크 복사링크가 클립보드에 복사되었습니다!
국립공원 애플리케이션에는 MongoDB 데이터베이스에 액세스하기 위해 데이터베이스 이름, 사용자 이름, 비밀번호와 같은 정보가 필요합니다. 하지만 이 정보는 민감하므로 포드에 직접 저장해서는 안 됩니다.
비밀을 사용하여 민감한 정보를 저장하고, 해당 비밀을 워크로드와 공유할 수 있습니다.
비밀 객체는 비밀번호, OpenShift Container Platform 클라이언트 구성 파일, 개인 소스 저장소 자격 증명과 같은 민감한 정보를 보관하는 메커니즘을 제공합니다. 보안은 Pod에서 중요한 콘텐츠를 분리합니다. 볼륨 플러그인을 사용하거나 비밀을 환경 변수로 전달하여 비밀을 컨테이너에 마운트할 수 있습니다. 그러면 시스템은 비밀을 이용해 포드에 민감한 정보를 제공할 수 있습니다.
다음 절차에서는 nationalparks-mongodb-parameters 비밀번호를 생성하고 이를 nationalparks 워크로드에 마운트합니다.
사전 요구 사항
-
국립공원백엔드 애플리케이션을 배포했습니다. -
mongodb-nationalparks데이터베이스 애플리케이션을 배포했습니다.
프로세스
- 워크로드 → 시크릿으로 이동합니다.
- 생성 → 키/값 시크릿을 클릭합니다.
-
시크릿 이름 필드에
nationalparks-mongodb-parameters를 입력합니다. 키 및 값에 대해 다음 값을 입력합니다.
Expand 표 2.2. 시크릿 키 및 값 키 현재의 DATABASE_SERVICE_NAMEmongodb-nationalparksMONGODB_USERmongodbMONGODB_PASSWORDmongodbMONGODB_DATABASEmongodbMONGODB_ADMIN_PASSWORDmongodb작은 정보추가 키/값 쌍을 추가하려면 키/값 추가를 클릭합니다.
- 생성을 클릭합니다.
- 워크로드에 시크릿 추가를 클릭합니다.
-
작업 부하에 이 비밀 추가 목록에서
nationalparks를선택합니다. - 저장을 클릭합니다.
이러한 구성 변경으로 인해 환경 변수가 제대로 삽입된 nationalparks 배포의 새로운 롤아웃을 트리거합니다.
2.6.2. 데이터베이스에 데이터 로드 링크 복사링크가 클립보드에 복사되었습니다!
mongodb-nationalparks 데이터베이스를 배포한 후에는 국립공원 위치 정보를 데이터베이스에 로드할 수 있습니다.
사전 요구 사항
-
국립공원백엔드 애플리케이션을 배포했습니다. -
mongodb-nationalparks데이터베이스 애플리케이션을 배포했습니다.
프로세스
- 워크로드 → 토폴로지 로 이동합니다.
-
국립공원배포를 클릭하고 리소스 탭을 선택하세요. - 경로에서 위치 URL을 복사합니다.
URL을 복사하여 웹 브라우저에 붙여넣고 URL 끝에 다음을 추가합니다.
/ws/data/load
/ws/data/loadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들면 다음과 같습니다.
https://nationalparks-user-getting-started.apps.cluster.example.com/ws/data/load
https://nationalparks-user-getting-started.apps.cluster.example.com/ws/data/loadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Items inserted in database: 2893
Items inserted in database: 2893Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7. 웹 브라우저에서 애플리케이션 보기 링크 복사링크가 클립보드에 복사되었습니다!
필요한 애플리케이션을 배포하고 데이터베이스에 데이터를 업로드한 후 이제 브라우저를 통해 국립공원 애플리케이션을 볼 준비가 되었습니다.
프런트엔드 애플리케이션의 URL을 열면 애플리케이션에 접근할 수 있습니다.
사전 요구 사항
-
parksmap프런트엔드 애플리케이션을 배포했습니다. -
국립공원백엔드 애플리케이션을 배포했습니다. -
mongodb-nationalparks데이터베이스 애플리케이션을 배포했습니다. -
mongodb-nationalparks데이터베이스에 데이터를 로드했습니다.
프로세스
- 워크로드 → 토폴로지 로 이동합니다.
parksmap배포에서 URL 열기 링크를 클릭합니다.그림 2.3. 전 세계의 국립공원
웹 브라우저에 전 세계 국립공원 지도가 표시되는지 확인하세요.
그림 2.4. 전 세계의 국립공원
앱이 사용자의 위치에 접근하는 것을 허용하면 지도의 중심이 사용자의 위치에 맞춰집니다.
3장. 튜토리얼: CLI를 사용하여 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
이 튜토리얼에서는 OpenShift Container Platform에서 national-parks-app 이라는 애플리케이션을 구축하여 전 세계의 국립공원을 지도로 표시하는 서비스를 배포하는 방법을 안내합니다. 이 튜토리얼을 완료하려면 OpenShift CLI( oc )를 사용합니다.
이 튜토리얼을 완료하려면 다음 단계를 수행하세요.
이 단계를 통해 애플리케이션을 다른 클러스터 사용자의 작업 부하로부터 격리할 수 있습니다.
보기 권한 부여
이 단계에서는 프로젝트 내에서 실행 중인 서비스 및 기타 리소스를 검색하는 데 도움이 되는 OpenShift API와 상호 작용할 수 있는
보기권한을 부여합니다.이 단계에서는
parksmap프런트엔드 애플리케이션을 배포하고 외부에 노출하며 최대 두 개의 인스턴스로 확장합니다.이 단계에서는
국립공원백엔드 애플리케이션을 배포하고 외부에 공개합니다.이 단계에서는
mongodb-nationalparksMongoDB 데이터베이스를 배포하고, 데이터베이스에 데이터를 로드하고, 데이터베이스에 액세스하는 데 필요한 자격 증명을 설정합니다.
이러한 단계를 완료하면 웹 브라우저에서 국립공원 애플리케이션을 볼 수 있습니다.
3.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
이 튜토리얼을 시작하기 전에 다음과 같은 필수 전제 조건이 충족되었는지 확인하세요.
- OpenShift CLI(oc)가 설치되어 있습니다.
테스트용 OpenShift Container Platform 클러스터에 액세스할 수 있습니다.
조직에 테스트할 클러스터가 없는 경우 개발자 샌드박스 에 대한 액세스를 요청하여 OpenShift Container Platform을 체험해 볼 수 있습니다.
프로젝트와 그 안에서 애플리케이션을 생성하려면
cluster-admin클러스터 역할 과 같은 적절한 권한이 필요합니다.필요한 권한이 없으면 클러스터 관리자에게 문의하세요. 프로젝트를 생성하려면
셀프 프로비저닝역할이 필요하고, 해당 프로젝트의 리소스를 수정하려면 프로젝트에 대한관리자역할이 필요합니다.개발자 샌드박스를 사용하는 경우 필요한 권한이 있는 프로젝트가 생성됩니다.
-
OpenShift CLI(
oc)를 사용하여 클러스터에 로그인했습니다 .
3.2. 프로젝트 생성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 커뮤니티는 프로젝트를 통해 별도로 콘텐츠를 구성하고 관리할 수 있습니다. 프로젝트는 Kubernetes 네임스페이스에 대한 OpenShift Container Platform 확장입니다. 프로젝트에는 사용자 셀프 프로비저닝을 활성화하는 추가 기능이 있습니다. 각 프로젝트에는 고유한 오브젝트, 정책, 제약 조건 및 서비스 계정이 있습니다.
클러스터 관리자는 개발자가 자신의 프로젝트를 만들 수 있도록 허용할 수 있습니다. 대부분의 경우, 귀하는 자동으로 자신의 프로젝트에 접근할 수 있습니다. 관리자는 필요에 따라 다른 프로젝트에 대한 액세스 권한을 부여할 수 있습니다.
이 절차를 수행하면 user-getting-started 라는 새 프로젝트가 생성됩니다. 이 프로젝트는 이 튜토리얼의 나머지 부분에서 사용됩니다.
이 튜토리얼을 완료하기 위해 개발자 샌드박스를 사용하는 경우 이 절차를 건너뛰세요. 귀하를 위한 프로젝트가 이미 생성되었습니다.
사전 요구 사항
-
OpenShift CLI(
oc)에 로그인했습니다.
프로세스
다음 명령을 실행하여 프로젝트를 만듭니다.
oc new-project user-getting-started
$ oc new-project user-getting-startedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Now using project "user-getting-started" on server "https://openshift.example.com:6443". ...
Now using project "user-getting-started" on server "https://openshift.example.com:6443". ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. 보기 권한 부여 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform은 모든 프로젝트에서 자동으로 여러 서비스 계정을 생성합니다. 기본 서비스 계정은 Pod 실행을 담당합니다. OpenShift Container Platform은 이 서비스 계정을 사용하고 시작하는 모든 Pod에 삽입합니다.
기본적으로 기본 서비스 계정은 OpenShift API와 상호 작용할 수 있는 권한이 제한되어 있습니다.
애플리케이션의 요구 사항으로, 프로젝트 내의 포드, 서비스 및 리소스에 대해 알아보기 위해 OpenShift API와 통신할 수 있도록 기본 서비스 계정에 뷰 역할을 할당해야 합니다.
사전 요구 사항
- OpenShift Container Platform 클러스터에 액세스 권한을 보유합니다.
-
OpenShift CLI(
oc)가 설치되어 있습니다. -
클러스터 관리자또는 프로젝트 수준의관리자권한이 있습니다.
프로세스
user-getting-started project의 기본 서비스 계정에 보기 역할을 추가하려면 다음 명령을 입력합니다.oc adm policy add-role-to-user view -z default -n user-getting-started
$ oc adm policy add-role-to-user view -z default -n user-getting-startedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요다른 프로젝트를 사용하는 경우
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'
$ 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 Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.1. 프런트엔드 서비스 노출 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 OpenShift Container Platform에서 실행되는 서비스는 외부에서 액세스할 수 없습니다.
외부 클라이언트가 서비스에 액세스할 수 있도록 서비스를 공개하려면 경로를 만들 수 있습니다. Route 객체는 Kubernetes Ingress 객체와 유사한 OpenShift Container Platform 네트워킹 리소스입니다. 기본 OpenShift Container Platform 라우터(HAProxy)는 들어오는 요청의 HTTP 헤더를 사용하여 연결을 프록시할 위치를 결정합니다.
선택적으로 경로에 대해 TLS와 같은 보안을 정의할 수 있습니다.
사전 요구 사항
-
parksmap프런트엔드 애플리케이션을 배포했습니다. -
클러스터 관리자또는 프로젝트 수준의관리자권한이 있습니다.
프로세스
다음 명령을 실행하여
parksmap프런트엔드 애플리케이션을 노출하는 경로를 만듭니다.oc create route edge parksmap --service=parksmap
$ oc create route edge parksmap --service=parksmapCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 애플리케이션 경로가 성공적으로 생성되었는지 확인하세요.
oc get route parksmap
$ oc get route parksmapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD parksmap parksmap-user-getting-started.apps.cluster.example.com parksmap 8080-tcp edge None
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD parksmap parksmap-user-getting-started.apps.cluster.example.com parksmap 8080-tcp edge NoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.2. 포드 세부 정보 보기 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform에서는 하나의 호스트에 함께 배포되는 하나 이상의 컨테이너이자 정의, 배포, 관리할 수 있는 최소 컴퓨팅 단위인 Pod의 Kubernetes 개념을 활용합니다. Pod는 컨테이너에 대한 머신 인스턴스, 물리 또는 가상과 대략적으로 동일합니다.
클러스터의 Pod를 보고 해당 Pod 및 클러스터의 상태를 전체적으로 확인할 수 있습니다.
사전 요구 사항
-
parksmap프런트엔드 애플리케이션을 배포했습니다.
프로세스
다음 명령을 실행하여 현재 프로젝트의 모든 포드를 나열합니다.
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE parksmap-5f9579955-6sng8 1/1 Running 0 77s
NAME READY STATUS RESTARTS AGE parksmap-5f9579955-6sng8 1/1 Running 0 77sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod에 대한 세부 정보를 표시합니다.
oc describe pod parksmap-5f9579955-6sng8
$ oc describe pod parksmap-5f9579955-6sng8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod의 로그를 확인하세요.
oc logs parksmap-5f9579955-6sng8
$ oc logs parksmap-5f9579955-6sng8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
... 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)
... 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 Copied! Toggle word wrap Toggle overflow
3.4.3. 배포 확장 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes에서 Deployment 오브젝트는 애플리케이션이 배포하는 방법을 정의합니다. 대부분의 경우 애플리케이션을 배포할 때 OpenShift Container Platform은 Pod , Service , ReplicaSet 및 Deployment 리소스를 자동으로 생성합니다.
parksmap 이미지를 배포하면 배포 리소스가 생성됩니다. 예에서는 하나의 Pod만 배포됩니다. 사용자 요구에 부응하기 위해 애플리케이션을 확장하거나, 하나의 포드가 다운되더라도 애플리케이션이 항상 실행되도록 해야 할 수도 있습니다.
다음 절차에서는 parksmap 배포를 확장하여 두 개의 인스턴스를 사용합니다.
사전 요구 사항
-
parksmap프런트엔드 애플리케이션을 배포했습니다.
프로세스
다음 명령을 실행하여 배포를 하나의 Pod 인스턴스에서 두 개의 Pod 인스턴스로 확장하세요.
oc scale --replicas=2 deployment/parksmap
$ oc scale --replicas=2 deployment/parksmapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
deployment.apps/parksmap scaled
deployment.apps/parksmap scaledCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 배포가 올바르게 확장되었는지 확인하세요.
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE parksmap-5f9579955-6sng8 1/1 Running 0 7m39s parksmap-5f9579955-8tgft 1/1 Running 0 24s
NAME READY STATUS RESTARTS AGE parksmap-5f9579955-6sng8 1/1 Running 0 7m39s parksmap-5f9579955-8tgft 1/1 Running 0 24sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 두 개의
parksmap포드가 나열되어 있는지 확인하세요.
배포 규모를 하나의 Pod 인스턴스로 줄이려면 --replicas 옵션에 1을 전달합니다.
oc scale --replicas=1 deployment/parksmap
$ oc scale --replicas=1 deployment/parksmap
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
$ 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=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5.1. 백엔드 서비스 노출 링크 복사링크가 클립보드에 복사되었습니다!
외부 클라이언트에게 프런트엔드 서비스를 공개한 것과 유사하게, 이제 경로를 생성하여 백엔드 서비스를 공개해야 합니다.
사전 요구 사항
-
국립공원백엔드 애플리케이션을 배포했습니다. -
클러스터 관리자또는 프로젝트 수준의관리자권한이 있습니다.
프로세스
다음 명령을 실행하여
nationalparks백엔드 애플리케이션을 노출하는 경로를 만듭니다.oc create route edge nationalparks --service=nationalparks
$ oc create route edge nationalparks --service=nationalparksCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
국립공원경로에 라벨을 지정합니다.oc label route nationalparks type=parksmap-backend
$ oc label route nationalparks type=parksmap-backendCopy to Clipboard Copied! Toggle word wrap Toggle overflow 애플리케이션 코드는
국립공원경로에type=parksmap-backend라는 라벨이 지정되기를 기대합니다.
3.6. 데이터베이스 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 국립공원 위치 정보를 보관하는 MongoDB 데이터베이스인 mongodb-nationalparks를 배포합니다.
사전 요구 사항
-
parksmap프런트엔드 애플리케이션을 배포했습니다. -
국립공원백엔드 애플리케이션을 배포했습니다.
프로세스
다음 명령을 실행하여
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'
$ 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 Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.6.1. 비밀을 생성하여 데이터베이스에 대한 액세스 제공 링크 복사링크가 클립보드에 복사되었습니다!
국립공원 애플리케이션에는 MongoDB 데이터베이스에 액세스하기 위해 데이터베이스 이름, 사용자 이름, 비밀번호와 같은 정보가 필요합니다. 하지만 이 정보는 민감하므로 포드에 직접 저장해서는 안 됩니다.
비밀을 사용하여 민감한 정보를 저장하고, 해당 비밀을 워크로드와 공유할 수 있습니다.
비밀 객체는 비밀번호, OpenShift Container Platform 클라이언트 구성 파일, 개인 소스 저장소 자격 증명과 같은 민감한 정보를 보관하는 메커니즘을 제공합니다. 보안은 Pod에서 중요한 콘텐츠를 분리합니다. 볼륨 플러그인을 사용하거나 비밀을 환경 변수로 전달하여 비밀을 컨테이너에 마운트할 수 있습니다. 그러면 시스템은 비밀을 이용해 포드에 민감한 정보를 제공할 수 있습니다.
다음 절차에서는 nationalparks-mongodb-parameters 비밀번호를 생성하고 이를 nationalparks 워크로드에 마운트합니다.
사전 요구 사항
-
국립공원백엔드 애플리케이션을 배포했습니다. -
mongodb-nationalparks데이터베이스 애플리케이션을 배포했습니다.
프로세스
다음 명령을 실행하여 필요한 데이터베이스 액세스 정보로 비밀을 생성합니다.
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
$ 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=mongodbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 비밀에서
nationalparks워크로드로 환경을 가져옵니다.oc set env --from=secret/nationalparks-mongodb-parameters deploy/nationalparks
$ oc set env --from=secret/nationalparks-mongodb-parameters deploy/nationalparksCopy to Clipboard Copied! Toggle word wrap Toggle overflow 국립공원배포를 기다려 이 환경 정보를 담은 새로운 개정판을 출시하세요. 다음 명령을 실행하여nationalparks배포 상태를 확인하세요.oc rollout status deployment nationalparks
$ oc rollout status deployment nationalparksCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
deployment "nationalparks" successfully rolled out
deployment "nationalparks" successfully rolled outCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.6.2. 데이터베이스에 데이터 로드 링크 복사링크가 클립보드에 복사되었습니다!
mongodb-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$ oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/ws/data/loadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
"Items inserted in database: 2893"
"Items inserted in database: 2893"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 지도 데이터가 제대로 로드되었는지 확인하세요.
oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/ws/data/all$ oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/ws/data/allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예(잘라냄)
... , {"id": "Great Zimbabwe", "latitude": "-20.2674635", "longitude": "30.9337986", "name": "Great Zimbabwe"}]... , {"id": "Great Zimbabwe", "latitude": "-20.2674635", "longitude": "30.9337986", "name": "Great Zimbabwe"}]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.7. 웹 브라우저에서 애플리케이션 보기 링크 복사링크가 클립보드에 복사되었습니다!
필요한 애플리케이션을 배포하고 데이터베이스에 데이터를 업로드한 후 이제 브라우저를 통해 국립공원 애플리케이션을 볼 준비가 되었습니다.
프런트엔드 애플리케이션의 경로 정보를 검색하여 애플리케이션의 URL을 얻을 수 있습니다.
사전 요구 사항
-
parksmap프런트엔드 애플리케이션을 배포했습니다. -
국립공원백엔드 애플리케이션을 배포했습니다. -
mongodb-nationalparks데이터베이스 애플리케이션을 배포했습니다. -
mongodb-nationalparks데이터베이스에 데이터를 로드했습니다.
프로세스
다음 명령을 실행하여 지도 애플리케이션 URL을 검색하여 경로 정보를 얻으세요.
oc get route parksmap
$ oc get route parksmapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD parksmap parksmap-user-getting-started.apps.cluster.example.com parksmap 8080-tcp edge None
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD parksmap parksmap-user-getting-started.apps.cluster.example.com parksmap 8080-tcp edge NoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
위의 출력에서
HOST/PORT열의 값을 복사합니다. 복사한 값 앞에
https:// 를추가하면 애플리케이션 URL을 얻을 수 있습니다. 이는 해당 경로가 보안된 경로이기 때문에 필요합니다.예제 애플리케이션 URL
https://parksmap-user-getting-started.apps.cluster.example.com
https://parksmap-user-getting-started.apps.cluster.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 애플리케이션 URL을 웹 브라우저에 붙여넣으세요. 사용 중인 브라우저에는 전 세계의 국립 공원 지도가 표시되어야 합니다.
그림 3.1. 전 세계의 국립공원
앱이 사용자의 위치에 접근하는 것을 허용하면 지도의 중심이 사용자의 위치에 맞춰집니다.
4장. 추가 실습 학습 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat은 관리자와 개발자가 OpenShift Container Platform을 직접 사용해 볼 수 있는 다양한 추가 학습 리소스를 제공합니다.
4.1. Red Hat Developer 학습 경로 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Developer 프로그램은 개발자가 OpenShift Container Platform을 사용하여 작업을 시작할 수 있도록 여러 가지 학습 경로를 제공합니다.
다음 표에는 OpenShift Container Platform에 대한 몇 가지 권장 학습 경로가 나열되어 있습니다.
| 학습 경로 | 설명 |
|---|---|
| 이 학습 경로에서는 Red Hat OpenShift의 기본 개념과 다양한 방법을 통해 애플리케이션을 만들고 배포하는 방법을 다룹니다. | |
| 이 학습 경로에서는 클러스터 액세스 관리, 데이터베이스 작업 및 리소스 관리에 대한 내용을 다룹니다. | |
| 이 학습 경로에서는 소스 코드와 이미지에서 애플리케이션을 배포하고 Node.js로 개발하는 방법을 다룹니다. | |
| 이 학습 경로에서는 OpenShift Container Platform 클러스터에 풀스택 JavaScript 애플리케이션을 배포하는 방법을 다룹니다. | |
| 이 학습 경로에서는 OpenShift Container Platform에서 영구 저장소에 대한 영구 볼륨 클레임(PVC)을 생성하고 사용하는 방법을 다룹니다. |
OpenShift Container Platform에서 사용 가능한 Red Hat Developer 학습 경로의 전체 목록은 OpenShift 및 Kubernetes 학습을 참조하세요.
4.2. Red Hat 교육 과정 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Training은 Red Hat OpenShift와 관련 기술을 배우는 데 도움이 되는 다양한 온라인 및 오프라인 교육 과정을 무료 및 유료로 제공합니다.
다음 표는 개발자와 관리자 모두를 위한 OpenShift Container Platform의 권장 교육 과정을 몇 가지 나열한 것입니다.
| 강의 | 설명 |
|---|---|
| 이 과정은 개발자가 OpenShift Container Platform에서 애플리케이션을 배포하고, 확장하고, 문제를 해결하는 방법을 배우는 데 도움이 됩니다. | |
| 이 과정은 개발자가 Podman과 OpenShift Container Platform을 사용하여 컨테이너를 빌드, 실행 및 관리하는 방법을 배우는 데 도움이 됩니다. | |
| DO288: Red Hat OpenShift Developer II: 클라우드 네이티브 애플리케이션 구축 및 배포 | 이 과정은 개발자가 OpenShift Container Platform 클러스터에서 컨테이너화된 소프트웨어 애플리케이션을 설계, 빌드 및 배포하는 방법을 배우는 데 도움이 됩니다. |
| 강의 | 설명 |
|---|---|
| 이 과정은 클러스터 관리자가 OpenShift Container Platform 클러스터를 관리하고 개발자와 협업하여 애플리케이션 워크로드를 지원하는 방법을 배우는 데 도움이 됩니다. | |
| 이 과정은 클러스터 관리자가 보안 기능을 구성하고, 운영자를 관리하고, 클러스터 업데이트를 수행하는 방법을 배우는 데 도움이 됩니다. | |
| 이 과정은 클러스터 관리자가 다양한 환경에 OpenShift Container Platform 클러스터를 설치하는 방법을 배우는 데 도움이 됩니다. |
사용 가능한 과정의 전체 목록을 보려면 Red Hat 교육 및 자격증을 참조하세요. 또한, 학습을 어디서부터 시작해야 할지에 대한 권장 사항을 얻기 위해 기술 평가를 받을 수도 있습니다.
4.3. Red Hat 치트 시트 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat은 OpenShift Container Platform 작업을 위한 일반적인 OpenShift CLI( oc ) 명령에 대한 빠른 참조를 제공하는 여러 가지 치트 시트를 제공합니다.
다음 표에는 OpenShift Container Platform에 권장되는 몇 가지 치트 시트가 나열되어 있습니다.
| 치트 시트 | 설명 |
|---|---|
|
이 치트 시트는 애플리케이션의 수명 주기를 관리하기 위한 다양한 OpenShift CLI( | |
|
이 치트 시트는 애플리케이션 생성, 디버깅, 배포 편집과 같은 몇 가지 필수적인 OpenShift CLI( |
사용 가능한 치트 시트의 전체 목록을 보려면 Red Hat Developer 치트 시트를 참조하세요.
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.