튜토리얼
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
프런트 엔드 애플리케이션을 배포하고 외부에서 노출하며 최대 두 개의 인스턴스로 확장합니다.이 단계에서는
nationalparks
백엔드 애플리케이션을 배포하고 외부에 노출합니다.이 단계에서는
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 웹 콘솔에 로그인했습니다.
프로세스
- 홈 → 프로젝트로 이동합니다.
- 프로젝트 만들기를 클릭합니다.
-
이름 필드에
user-getting-started
를 입력합니다. - 생성을 클릭합니다.
2.3. 보기 권한 부여 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform은 모든 프로젝트에서 자동으로 여러 서비스 계정을 생성합니다. 기본
서비스 계정은 Pod 실행을 담당합니다. OpenShift Container Platform은 이 서비스 계정을 사용하고 시작하는 모든 Pod에 삽입합니다.
기본적으로 기본
서비스 계정에는 OpenShift API와 상호 작용할 수 있는 제한된 권한이 있습니다.
애플리케이션의 요구 사항으로 프로젝트 내의 포드, 서비스 및 리소스에 대해 알아보려면 OpenShift API와 통신할 수 있도록 기본
서비스 계정에 view
역할을 할당해야 합니다.
사전 요구 사항
-
cluster-admin
또는 프로젝트 수준관리자
권한이 있어야 합니다.
프로세스
- 사용자 관리 → RoleBindings 로 이동합니다.
- 바인딩 생성을 클릭합니다.
-
이름 필드에
sa-user-account
를 입력합니다. 네임스페이스 필드에서
user-getting-started
를 검색하고 선택합니다.중요다른 프로젝트를 사용하는 경우 프로젝트 이름을 선택합니다.
-
역할 이름 필드에서 검색을 검색하고
보기를
선택합니다. -
Subject 에서
ServiceAccount
를 선택합니다. 제목 네임스페이스 필드에서
user-getting-started
를 검색하고 선택합니다.중요다른 프로젝트를 사용하는 경우 프로젝트 이름을 선택합니다.
-
제목 이름 필드에
default
를 입력합니다. - 생성을 클릭합니다.
2.4. 프런트 엔드 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform에서 애플리케이션을 배포하는 가장 간단한 방법은 제공된 컨테이너 이미지를 실행하는 것입니다.
다음 절차에서는 national-parks-app
애플리케이션의 프런트 엔드 구성 요소인 parksmap
을 배포합니다. 웹 애플리케이션에는 전 세계의 국립 공원 위치에 대한 대화형 맵이 표시됩니다.
프로세스
-
오른쪽 상단에 있는 빠른 생성 (
) 메뉴에서 컨테이너 이미지를 클릭합니다.
-
외부 레지스트리에서 이미지 이름을 선택하고
quay.io/openshiftroadshow/parksmap:latest
를 입력합니다. - 일반 섹션으로 스크롤합니다.
-
애플리케이션 이름 필드에
national-parks-app
을 입력합니다. -
이름 필드에서 값이
parksmap
인지 확인합니다. - Deploy 섹션으로 스크롤합니다.
- 리소스 유형 필드에서 배포 가 선택되어 있는지 확인합니다.
고급 옵션 섹션에서 경로 생성이 선택되어 있는지 확인합니다.
기본적으로 OpenShift Container Platform에서 실행되는 서비스는 외부에서 액세스할 수 없습니다. 외부 클라이언트가 서비스에 액세스할 수 있도록 경로를 생성하려면 이 옵션을 선택해야 합니다.
레이블 하이퍼링크를 클릭합니다.
애플리케이션 코드에는 특정 레이블을 설정해야 합니다.
다음 레이블을 텍스트 영역에 추가하고 각 키/값 쌍 뒤에 Enter 키를 누릅니다.
-
app=national-parks-app
-
component=parksmap
-
role=frontend
-
- 생성을 클릭합니다.
national-parks-app
애플리케이션에서 parksmap
배포를 볼 수 있는 토폴로지 페이지로 리디렉션됩니다.
2.4.1. Pod 세부 정보 보기 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform에서는 하나의 호스트에 함께 배포되는 하나 이상의 컨테이너이자 정의, 배포 및 관리할 수 있는 최소 컴퓨팅 단위인 Pod 의 Kubernetes 개념을 사용합니다. Pod는 컨테이너에 대한 머신 인스턴스, 물리 또는 가상과 대략적으로 동일합니다.
개요 패널을 사용하면 parksmap
배포의 많은 기능에 액세스할 수 있습니다. 세부 정보 및 리소스 탭을 사용하면 애플리케이션 Pod를 스케일링하고 빌드, 서비스 및 경로의 상태를 확인할 수 있습니다.
사전 요구 사항
-
parksmap
프런트 엔드 애플리케이션을 배포했습니다.
프로세스
- 워크로드 → 토폴로지 로 이동합니다.
national-parks-app
애플리케이션에서parksmap
배포를 클릭합니다.그림 2.1. Parksmap 배포
그러면 다음 탭이 포함된 개요 패널이 열립니다.
- details: 배포에 대한 세부 정보를 보고, 특정 설정을 편집하고, 배포를 스케일링합니다.
- resources: 배포와 관련된 Pod, 서비스 및 경로에 대한 세부 정보를 확인합니다.
- observe: 배포에 대한 메트릭 및 이벤트를 확인합니다.
-
Pod의 로그를 보려면 리소스 탭을 선택하고
parksmap
Pod 옆에 있는 로그 보기를 클릭합니다.
2.4.2. 애플리케이션 확장 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes에서 Deployment
오브젝트는 애플리케이션이 배포하는 방법을 정의합니다. 애플리케이션을 배포할 때 OpenShift Container Platform은 포드
,서비스
,ReplicaSet
및 배포
리소스를 생성합니다.
parksmap
이미지를 배포하면 배포 리소스가 생성됩니다. 이 예에서는 하나의 Pod만 배포됩니다. 사용자 요구에 맞게 애플리케이션을 확장하거나 하나의 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
를 입력합니다. - Deploy 섹션으로 스크롤합니다.
- 리소스 유형 필드에서 배포 가 선택되어 있는지 확인합니다.
고급 옵션 섹션에서 경로 생성이 선택되어 있는지 확인합니다.
기본적으로 OpenShift Container Platform에서 실행되는 서비스는 외부에서 액세스할 수 없습니다. 외부 클라이언트가 서비스에 액세스할 수 있도록 경로를 생성하려면 이 옵션을 선택해야 합니다.
레이블 하이퍼링크를 클릭합니다.
애플리케이션 코드에는 특정 레이블을 설정해야 합니다.
다음 레이블을 텍스트 영역에 추가하고 각 키/값 쌍 뒤에 Enter 키를 누릅니다.
-
app=national-parks-app
-
component=nationalparks
-
role=backend
-
type=parksmap-backend
-
- 생성을 클릭합니다.
national-parks-app
애플리케이션에서 nationalparks
배포를 볼 수 있는 토폴로지 페이지로 리디렉션됩니다.
검증
- 워크로드 → 토폴로지 로 이동합니다.
-
national-parks-app
애플리케이션에서nationalparks
배포를 클릭합니다. Resources 탭을 클릭합니다.
빌드가 성공적으로 완료될 때까지 기다립니다.
2.6. 데이터베이스 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 국립 공원 위치 정보를 보유할 MongoDB 데이터베이스인 mongodb-nationalparks
를 배포합니다.
사전 요구 사항
-
parksmap
프런트 엔드 애플리케이션을 배포했습니다. -
nationalparks
백엔드 애플리케이션을 배포했습니다.
프로세스
-
오른쪽 상단에 있는 빠른 생성 (
) 메뉴에서 컨테이너 이미지를 클릭합니다.
-
외부 레지스트리에서 이미지 이름을 선택하고
registry
.redhat.io/rhmap47/mongodb 를 입력합니다. -
런타임 아이콘 필드에서
mongodb
를 검색하고 선택합니다. - 일반 섹션으로 스크롤합니다.
-
애플리케이션 이름 필드에
national-parks-app
을 입력합니다. -
이름 필드에
mongodb-nationalparks
를 입력합니다. - Deploy 섹션으로 스크롤합니다.
- 리소스 유형 필드에서 배포 가 선택되어 있는지 확인합니다.
- 고급 배포 표시 옵션을 클릭합니다.
환경 변수(런타임만 해당) 에서 다음 이름과 값을 추가합니다.
Expand 표 2.1. 환경 변수 이름 및 값 이름 현재의 MONGODB_USER
mongodb
MONGODB_PASSWORD
mongodb
MONGODB_DATABASE
mongodb
MONGODB_ADMIN_PASSWORD
mongodb
작은 정보Add value 를 클릭하여 각 추가 환경 변수를 추가합니다.
고급 옵션 섹션에서 경로 만들기를 지웁니다.
데이터베이스 애플리케이션에 외부에서 액세스할 필요가 없으므로 경로가 필요하지 않습니다.
- 생성을 클릭합니다.
national-parks-app
애플리케이션에서 mongodb-nationalparks
배포를 볼 수 있는 토폴로지 페이지로 리디렉션됩니다.
2.6.1. 보안을 생성하여 데이터베이스에 대한 액세스 제공 링크 복사링크가 클립보드에 복사되었습니다!
MongoDB 데이터베이스에 액세스하려면 nationalparks
애플리케이션에는 데이터베이스 이름, 사용자 이름 및 암호와 같은 정보가 필요합니다. 그러나 이 정보는 민감하므로 Pod에 직접 저장하지 않아야 합니다.
시크릿 을 사용하여 중요한 정보를 저장하고 해당 시크릿을 워크로드와 공유할 수 있습니다.
보안
오브젝트는 암호, OpenShift Container Platform 클라이언트 구성 파일 및 개인 소스 리포지토리 자격 증명과 같은 중요한 정보를 보유하는 메커니즘을 제공합니다. 보안은 Pod에서 중요한 콘텐츠를 분리합니다. 볼륨 플러그인을 사용하거나 에서 시크릿을 환경 변수로 전달하여 컨테이너에 보안을 마운트할 수 있습니다. 그런 다음 시스템에서 보안을 사용하여 Pod에 중요한 정보를 제공할 수 있습니다.
다음 절차에서는 nationalparks-mongodb-parameters
시크릿을 생성하여 nationalparks
워크로드에 마운트합니다.
사전 요구 사항
-
nationalparks
백엔드 애플리케이션을 배포했습니다. -
mongodb-nationalparks
데이터베이스 애플리케이션을 배포했습니다.
프로세스
- 워크로드 → 시크릿으로 이동합니다.
- 생성 → 키/값 시크릿을 클릭합니다.
-
시크릿 이름 필드에
nationalparks-mongodb-parameters
를 입력합니다. 키 및 값에 대해 다음 값을 입력합니다.
Expand 표 2.2. 시크릿 키 및 값 키 현재의 DATABASE_SERVICE_NAME
mongodb-nationalparks
MONGODB_USER
mongodb
MONGODB_PASSWORD
mongodb
MONGODB_DATABASE
mongodb
MONGODB_ADMIN_PASSWORD
mongodb
작은 정보키/값 추가 를 클릭하여 각 추가 키/값 쌍을 추가합니다.
- 생성을 클릭합니다.
- 워크로드에 시크릿 추가를 클릭합니다.
-
Add this secret to workload list에서
nationalparks
를 선택합니다. - 저장을 클릭합니다.
이러한 구성 변경으로 인해 환경 변수가 제대로 삽입된 nationalparks
배포의 새로운 롤아웃을 트리거합니다.
2.6.2. 데이터베이스에 데이터 로드 링크 복사링크가 클립보드에 복사되었습니다!
mongodb-nationalparks
데이터베이스를 배포한 후 국립 공원 위치 정보를 데이터베이스에 로드할 수 있습니다.
사전 요구 사항
-
nationalparks
백엔드 애플리케이션을 배포했습니다. -
mongodb-nationalparks
데이터베이스 애플리케이션을 배포했습니다.
프로세스
- 워크로드 → 토폴로지 로 이동합니다.
-
nationalparks
배포를 클릭하고 리소스 탭을 선택합니다. - 경로에서 위치 URL을 복사합니다.
URL을 웹 브라우저에 붙여넣고 URL 끝에 다음을 추가합니다.
/ws/data/load
/ws/data/load
Copy 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/load
Copy 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
2.7. 웹 브라우저에서 애플리케이션 보기 링크 복사링크가 클립보드에 복사되었습니다!
필요한 애플리케이션을 배포하고 데이터베이스에 데이터를 로드한 후 브라우저를 통해 국립 공원 애플리케이션을 볼 수 있습니다.
프런트 엔드 애플리케이션의 URL을 열어 애플리케이션에 액세스할 수 있습니다.
사전 요구 사항
-
parksmap
프런트 엔드 애플리케이션을 배포했습니다. -
nationalparks
백엔드 애플리케이션을 배포했습니다. -
mongodb-nationalparks
데이터베이스 애플리케이션을 배포했습니다. -
데이터를
mongodb-nationalparks
데이터베이스에 로드했습니다.
프로세스
- 워크로드 → 토폴로지 로 이동합니다.
parksmap
배포에서 Open URL 링크를 클릭합니다.그림 2.3. 전 세계의 국립공원
웹 브라우저에 전 세계의 국립 공원 지도가 표시되는지 확인합니다.
그림 2.4. 전 세계의 국립공원
애플리케이션이 위치에 액세스할 수 있도록 허용하면 맵이 사용자의 위치를 중심으로 합니다.
3장. 튜토리얼: CLI를 사용하여 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
이 튜토리얼에서는 서비스를 배포하여 전 세계의 국립 공원 지도를 표시하는 OpenShift Container Platform에서 national-parks-app
이라는 애플리케이션을 구축하는 방법을 안내합니다. OpenShift CLI(oc
)를 사용하여 이 튜토리얼을 완료합니다.
이 튜토리얼을 완료하려면 다음 단계를 수행합니다.
이 단계를 통해 애플리케이션을 다른 클러스터 사용자의 워크로드와 분리할 수 있습니다.
이 단계에서는 프로젝트 내에서 실행 중인 서비스 및 기타 리소스를 검색하는 데 도움이 되도록 OpenShift API와 상호 작용할 수 있는
보기
권한을 부여합니다.이 단계에서는
parksmap
프런트 엔드 애플리케이션을 배포하고 외부에서 노출하며 최대 두 개의 인스턴스로 확장합니다.이 단계에서는
nationalparks
백엔드 애플리케이션을 배포하고 외부에 노출합니다.이 단계에서는
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
$ oc new-project user-getting-started
Copy 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와 통신할 수 있도록 기본
서비스 계정에 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
$ oc adm policy add-role-to-user view -z default -n user-getting-started
Copy 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
프런트 엔드 애플리케이션을 배포했습니다. -
cluster-admin
또는 프로젝트 수준관리자
권한이 있어야 합니다.
프로세스
다음 명령을 실행하여
parksmap
프런트 엔드 애플리케이션을 공개할 경로를 생성합니다.oc create route edge parksmap --service=parksmap
$ oc create route edge parksmap --service=parksmap
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 애플리케이션 경로가 성공적으로 생성되었는지 확인합니다.
oc get route parksmap
$ oc get route parksmap
Copy 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 None
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.2. Pod 세부 정보 보기 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform에서는 하나의 호스트에 함께 배포되는 하나 이상의 컨테이너이자 정의, 배포 및 관리할 수 있는 최소 컴퓨팅 단위인 Pod 의 Kubernetes 개념을 사용합니다. Pod는 컨테이너에 대한 머신 인스턴스, 물리 또는 가상과 대략적으로 동일합니다.
클러스터의 Pod를 보고 해당 Pod 및 클러스터의 상태를 전체적으로 확인할 수 있습니다.
사전 요구 사항
-
parksmap
프런트 엔드 애플리케이션을 배포했습니다.
프로세스
다음 명령을 실행하여 현재 프로젝트의 모든 Pod를 나열합니다.
oc get pods
$ oc get pods
Copy 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 77s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod 세부 정보를 표시합니다.
oc describe pod parksmap-5f9579955-6sng8
$ oc describe pod parksmap-5f9579955-6sng8
Copy 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-6sng8
Copy 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은 포드
,서비스
,ReplicaSet
및 배포
리소스를 생성합니다.
parksmap
이미지를 배포하면 배포 리소스가 생성됩니다. 이 예에서는 하나의 Pod만 배포됩니다. 사용자 요구에 맞게 애플리케이션을 확장하거나 하나의 Pod가 다운된 경우에도 애플리케이션이 항상 실행 중인지 확인할 수 있습니다.
다음 절차에서는 두 개의 인스턴스를 사용하도록 parksmap
배포를 스케일링합니다.
사전 요구 사항
-
parksmap
프런트 엔드 애플리케이션을 배포했습니다.
프로세스
다음 명령을 실행하여 배포를 하나의 Pod 인스턴스에서 두 개의 Pod 인스턴스로 확장합니다.
oc scale --replicas=2 deployment/parksmap
$ oc scale --replicas=2 deployment/parksmap
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
deployment.apps/parksmap scaled
deployment.apps/parksmap scaled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 배포가 올바르게 확장되었는지 확인합니다.
oc get pods
$ oc get pods
Copy 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 24s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 두 개의
parksmap
Pod가 나열되어 있는지 확인합니다.
배포를 하나의 Pod 인스턴스로 다시 축소하려면 1
을 --replicas
옵션으로 전달합니다.
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=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5.1. 백엔드 서비스 노출 링크 복사링크가 클립보드에 복사되었습니다!
외부 클라이언트에 대한 프런트 엔드 서비스를 노출하는 방식과 유사하게 경로를 생성하여 백엔드 서비스를 노출해야 합니다.
사전 요구 사항
-
nationalparks
백엔드 애플리케이션을 배포했습니다. -
cluster-admin
또는 프로젝트 수준관리자
권한이 있어야 합니다.
프로세스
다음 명령을 실행하여
nationalparks
백엔드 애플리케이션을 노출할 경로를 생성합니다.oc create route edge nationalparks --service=nationalparks
$ oc create route edge nationalparks --service=nationalparks
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
nationalparks
경로에 레이블을 지정합니다.oc label route nationalparks type=parksmap-backend
$ oc label route nationalparks type=parksmap-backend
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 애플리케이션 코드에서
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'
$ 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 데이터베이스에 액세스하려면 nationalparks
애플리케이션에는 데이터베이스 이름, 사용자 이름 및 암호와 같은 정보가 필요합니다. 그러나 이 정보는 민감하므로 Pod에 직접 저장하지 않아야 합니다.
시크릿 을 사용하여 중요한 정보를 저장하고 해당 시크릿을 워크로드와 공유할 수 있습니다.
보안
오브젝트는 암호, OpenShift Container Platform 클라이언트 구성 파일 및 개인 소스 리포지토리 자격 증명과 같은 중요한 정보를 보유하는 메커니즘을 제공합니다. 보안은 Pod에서 중요한 콘텐츠를 분리합니다. 볼륨 플러그인을 사용하거나 에서 시크릿을 환경 변수로 전달하여 컨테이너에 보안을 마운트할 수 있습니다. 그런 다음 시스템에서 보안을 사용하여 Pod에 중요한 정보를 제공할 수 있습니다.
다음 절차에서는 nationalparks-mongodb-parameters
시크릿을 생성하여 nationalparks
워크로드에 마운트합니다.
사전 요구 사항
-
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=mongodb
Copy 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/nationalparks
Copy to Clipboard Copied! Toggle word wrap Toggle overflow nationalparks
배포가 이 환경 정보를 사용하여 새 버전을 롤아웃할 때까지 기다립니다. 다음 명령을 실행하여nationalparks
배포 상태를 확인합니다.oc rollout status deployment nationalparks
$ oc rollout status deployment nationalparks
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
deployment "nationalparks" successfully rolled out
deployment "nationalparks" successfully rolled out
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
$ 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 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/all
Copy 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
프런트 엔드 애플리케이션을 배포했습니다. -
nationalparks
백엔드 애플리케이션을 배포했습니다. -
mongodb-nationalparks
데이터베이스 애플리케이션을 배포했습니다. -
데이터를
mongodb-nationalparks
데이터베이스에 로드했습니다.
프로세스
다음 명령을 실행하여 맵 애플리케이션 URL을 검색하려면 경로 정보를 가져옵니다.
oc get route parksmap
$ oc get route parksmap
Copy 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 None
Copy 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.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 애플리케이션 URL을 웹 브라우저에 붙여넣습니다. 사용 중인 브라우저에는 전 세계의 국립 공원 지도가 표시되어야 합니다.
그림 3.1. 전 세계의 국립공원
애플리케이션이 위치에 액세스할 수 있도록 허용하면 맵이 사용자의 위치를 중심으로 합니다.
4장. 추가 실습 학습 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat은 관리자와 개발자가 OpenShift Container Platform에 대한 실습 경험을 얻을 수 있는 많은 추가 학습 리소스를 제공합니다.
4.1. Red Hat Developer Learning 경로 링크 복사링크가 클립보드에 복사되었습니다!
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 Learning 경로의 전체 목록은 OpenShift 및 Kubernetes 러닝 을 참조하십시오.
4.2. Red Hat 교육 과정 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat 교육은 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 클러스터를 관리하고 개발자와 협력하여 애플리케이션 워크로드를 지원하는 방법을 배울 수 있습니다. | |
클러스터 관리자는 이 과정을 통해 보안 기능을 구성하고 Operator를 관리하고 클러스터 업데이트를 수행하는 방법을 배울 수 있습니다. | |
클러스터 관리자는 이 과정을 통해 다양한 환경에 OpenShift Container Platform 클러스터를 설치하는 방법을 배울 수 있습니다. |
사용 가능한 교육 과정의 전체 목록은 Red Hat 교육 및 인증을 참조하십시오. 기술 평가를 통해 교육을 시작할 수 있는 위치에 대한 권장 사항을 받을 수도 있습니다.
4.3. Red Hat fake sheets 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat은 OpenShift Container Platform 작업을 위해 일반적인 oc CLI(oc
CLI) 명령에 대한 빠른 참조를 제공하는 몇 가지 스포크 시트를 제공합니다.
다음 표에는 OpenShift Container Platform에 권장되는 몇 가지 예가 나와 있습니다.
스프레인 시트 | 설명 |
---|---|
이 스트리트 시트는 애플리케이션 라이프사이클을 관리하기 위한 많은 OpenShift CLI( | |
이 대략적 시트는 애플리케이션 생성, 디버깅 및 배포 편집과 같은 몇 가지 필수 OpenShift CLI( |
사용 가능한 스트리트 시트의 전체 목록은 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.