8장. OpenShift에서 Fuse에서 Spring Boot 2에 대한 REST 브리지 빠른 시작 버전 실행
이 빠른 시작에서는 Camel의 REST DSL을 사용하여 백엔드 CHAP API를 노출하는 방법을 설명합니다. 간단한 camel 경로는 REST 호출을 레거시 CHAP 서비스에 연결할 수 있습니다. 보안은 모두 RH SSO에서 지원하는 REST 엔드포인트 및 CHAP 끝점 모두에 적용됩니다. OAuth 및 OpenID Connect를 통해 보호되는 프런트 엔드 REST API와 클라이언트는 Resource Owner Password Credentials OAuth2 모드를 사용하여 RH SSO에서 JWT 액세스 토큰을 가져오고 이 토큰을 사용하여 REST 엔드포인트에 액세스합니다.
Prerequsites
- OCP 4.1 이상을 설치 및 구성했습니다.
- RH SSO 7.4 이상을 설치했습니다.
- 3Scale 2.8 이상 버전을 설치했습니다.
-
registry.redhat.io
에 대한 인증이 구성되어 있습니다. 자세한 내용은 Red Hat Container Registry 인증 구성을 참조하십시오.
절차
다음 섹션에서는 OpenShift에서 Fuse에서 gRPC를 실행하고 REST 브리지 빠른 시작에 배포하는 방법을 설명합니다.
- OpenShift 서버를 시작합니다. 이 빠른 시작의 전제 조건으로 RH SSO 이미지(2 pod) 및 3Scale 이미지(15개)를 설치해야 하므로 옵션 --memory 8GB --cpus 4 를 사용하여 강력한 시스템에서 OpenShift 서버를 시작해야 합니다. 또한 만료 시간과 함께 보안 토큰을 발행해야 하므로 시간대 옵션도 추가해야 합니다. Openshift 클러스터가 로컬 시스템과 동일한 시간대를 사용하는지 확인합니다(기본적으로 UTC 시간대 사용).
사용자
developer
에cluster-admin
역할을 추가합니다.oc login -u system:admin oc adm policy add-cluster-role-to-user cluster-admin developer oc login -u developer oc project openshift
$ oc login -u system:admin $ oc adm policy add-cluster-role-to-user cluster-admin developer $ oc login -u developer $ oc project openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 빠른 시작은
openshift
네임스페이스(관련 템플릿의 기본 구성 요구 사항)와 RH SSO 이미지에 배포되므로 사용자개발자에게
cluster-admin
역할을 추가해야 합니다.시크릿을 생성하여
serviceaccounts
에 연결합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow RH SSO 이미지 스트림을 추가하고 템플릿
sso74-x509-postgresql-persistent
를 사용하여 RH SSO를 설치합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow openshift
네임스페이스에서 RH SSO 이미지를 사용할 수 있는지 확인한 다음 템플릿sso74-x509-postgresql-persistent
를 사용하여 RH SSO를 설치합니다. 이 템플릿은 RH SSO 구성을 영구적으로 저장할 수 있으므로 Openshift 서버를 다시 시작한 후에도 구성이 유지됩니다.RH SSO 이미지가 서버에 설치되면 다음과 같이 콘솔에 출력이 표시됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RH SSO 관리 콘솔에 액세스하는 데 사용되는 Username/Password를 기록해 두십시오. 예를 들면 다음과 같습니다.
* RH-SSO Administrator Username=tprYtXP1 # generated * RH-SSO Administrator Password=nEjf7fojv11FmhJ5eaqadoh0SI2gvlls # generated
* RH-SSO Administrator Username=tprYtXP1 # generated * RH-SSO Administrator Password=nEjf7fojv11FmhJ5eaqadoh0SI2gvlls # generated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 3scale 프로젝트에 3scale 템플릿을 설치합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow openshift에 3scale 설치는 15개의 Pod를 시작하므로 3scale에 대한 새 특정 프로젝트를 생성해야 합니다. 3scale의 새로운
3scale-registry-auth
(이 이름을 사용하여 3scale 템플릿으로 작성된 보안) 시크릿을 생성해야 합니다. camel-bridge에서 USERNAME/PASSWORD를 재사용할 수 있습니다. 여기서는 로컬 머신/laptop에서 쉽게 실행할 수 있도록 하드웨어 리소스를 명시적으로 지정하지 않기 때문에 이 템플릿을 의도적으로 사용할 수 있습니다.3scale 템플릿이 Openshift에 성공적으로 설치되면 다음과 같이 콘솔에 출력이 표시됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 3scale 관리 콘솔에 액세스할 수 있는 Username/Password를 기록해 둡니다.
* ADMIN_PASSWORD=b6t784nt # generated * ADMIN_USERNAME=admin
* ADMIN_PASSWORD=b6t784nt # generated * ADMIN_USERNAME=admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RH SSO 구성.
-
RH SSO 설치 후 콘솔에 표시된 사용자 이름/암호를 사용하여
https://sso-openshift.OPENSHIFT_IP_ADDR.nip.io/auth
에서 RH SSO 관리 콘솔에 로그인합니다. - 페이지의 왼쪽 상단에 있는 Add ECDHE 버튼을 클릭합니다.
- Add CloudEvent 페이지에서 Import Select file 버튼을 선택합니다.
-
이 예제에 대해 사전 정의된 필수 영역/
클라이언트/사용자/역할을 가져올 디렉터리에서
을 선택합니다../src/main/resources/keycloak-config/realm
-export-new.json
-
RH SSO 설치 후 콘솔에 표시된 사용자 이름/암호를 사용하여
3Scale API Gateway를 구성합니다.
-
3Scale 설치 후
https://3scale-admin.OPENSHIFT_IP_ADDR.nip.io/p/admin/dashboard
에서 3Scale 관리 콘솔에 로그인합니다. -
새 제품을 생성할 때 수동으로 정의를 선택하고 Name 및 System name 에 모두
camel-security-bridge
를 사용합니다. -
새 백엔드를 생성할 때 이름 및 시스템 이름 모두에
camel-security-bridge
를 사용하고 개인 기본 URL 은http://spring-boot-camel-soap-rest-bridge-openshift.OPENSHIFT_IP_ADDR.nip.io/
이어야 합니다. - 새로 생성된 제품에 새로 생성된 백엔드를 추가합니다.
-
매핑 규칙
Verb:ECDHE Pattern:/
를 추가합니다. -
애플리케이션 계획을 생성할 때 Name 및 System 이름 모두에
camel-security-bridge
를 사용합니다. 애플리케이션을 생성할 때 새로 생성된
camel-security-bridge
애플리케이션 계획을 선택합니다. 애플리케이션을 생성한 후 API 자격 증명을 기록해 둡니다. 이러한 인증 정보를 사용하여 3scale 게이트웨이에 액세스합니다. Eample의 경우User Key bdfb53fe9b426fbf21428fd116035798
User Key bdfb53fe9b426fbf21428fd116035798
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
새로 생성된
camel-security-bridge
프로젝트를 편집하고 대시보드의camel-security-bridge
에서 게시합니다. - Integration > Settings 으로 이동합니다. 인증 정보 위치로 HTTP 헤더 로 을 선택합니다.
-
대시보드의
camel-security-bridge
에서 Integration > Configuration으로 이동하여 staging APIcast 및 Production APIcast 를 모두 승격합니다.
-
3Scale 설치 후
추출된 빠른 시작 애플리케이션이 포함된 디렉터리로 이동합니다(예: my_openshift/spring-boot-camel-soap-rest-bridge).
cd my_openshift/spring-boot-camel-soap-rest-bridge
$ cd my_openshift/spring-boot-camel-soap-rest-bridge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 프로젝트를 빌드하고 OpenShift 클러스터에 배포합니다.
mvn clean oc:deploy -Popenshift -DJAVA_OPTIONS="-Dsso.server=https://sso-openshift.OPENSHIFT_IP_ADDR.nip.io -Dweather.service.host=${your local ip}"
$ mvn clean oc:deploy -Popenshift -DJAVA_OPTIONS="-Dsso.server=https://sso-openshift.OPENSHIFT_IP_ADDR.nip.io -Dweather.service.host=${your local ip}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow openshift에서 두 가지 속성을
camel-soap-rest-bridge
이미지에 전달해야 합니다. 하나는 openshift의 RH SSO 서버 주소이며 이는 https://sso-openshift.OPENSHIFT_IP_ADDR.nip.io 입니다. 또 다른 하나는 백엔드 soap 서버입니다. 이 빠른 시작에서는 로컬 시스템에서 backend soap 서버를 실행하므로 시스템의 로컬 IP 주소를 -Dw lights.service.host로 전달합니다. (이 주소는 localhost 또는 127.0.0.1 이외의 IP 주소여야 합니다.)-
브라우저에서 OpenShift 콘솔에서
openshift
프로젝트로 이동합니다.spring-boot-camel-soap-rest-bridge
의 Pod가 시작되었는지 확인할 때까지 기다립니다. -
프로젝트의 개요 페이지에서
spring-boot-camel-soap-rest-bridge
애플리케이션의 세부 정보 페이지 배포로 이동합니다. https://OPENSHIFT_IP_ADDR:8443/console/project/openshift/browse/pods/spring-boot-camel-soap-rest-bridge-NUMBER_OF_DEPLOYMENT?tab=details. - Camel의 로그를 보려면 로그 탭으로 전환합니다.
- OpenApi API에 액세스합니다.
이 예제에서는 context-path camelcxf/openapi를 사용하여 openapi를 사용하여 서비스에 대한 API 문서를 제공합니다. 웹 브라우저 http://spring-boot-camel-soap-rest-bridge-openshift.OPENSHIFT_IP_ADDR.nip.io/camelcxf/openapi/openapi.jsonn 에서 API 문서에 액세스할 수 있습니다.