4.9. 애플리케이션 내 및 애플리케이션 간 구성 요소 연결
애플리케이션 내에서 여러 구성 요소를 그룹화하는 것 외에도 토폴로지 보기를 사용하여 구성 요소를 서로 연결할 수 있습니다. 바인딩 커넥터 또는 시각적 커넥터를 사용하여 구성 요소를 연결할 수 있습니다.
대상 노드가 Operator 지원 서비스인 경우에만 구성 요소 간 바인딩 연결을 설정할 수 있습니다. 이러한 연결은 해당 대상 노드로 화살표를 드래그할 때 표시되는 바인딩 커넥터 생성 툴팁으로 표시됩니다. 바인딩 커넥터를 사용하여 애플리케이션을 서비스에 연결하면 서비스 바인딩 요청이 생성됩니다. 그러면 Service Binding Operator 컨트롤러에서 중간 시크릿을 사용하여 필요한 바인딩 데이터를 애플리케이션 배포에 환경 변수로 삽입합니다. 요청이 성공하면 애플리케이션이 재배포되어 연결된 구성 요소 간 상호 작용을 설정합니다.
시각적 커넥터는 구성 요소 간 시각적 연결만 설정하고 연결하려는 의도를 표시합니다. 구성 요소 간 상호 작용은 설정되지 않습니다. 대상 노드가 Operator에서 지원하는 서비스가 아닌 경우 대상 노드로 화살표를 드래그하면 시각적 커넥터 생성 툴팁이 표시됩니다.
4.9.1. 구성 요소 간 시각적 연결 생성
시각적 커넥터를 사용하여 애플리케이션 구성 요소를 연결하려는 의도를 나타낼 수 있습니다.
이 절차에서는 MongoDB 서비스와 Node.js 애플리케이션 간 시각적 연결을 생성하는 예제를 보여줍니다.
사전 요구 사항
- 개발자 화면을 사용하여 Node.js 애플리케이션을 생성하고 배포했는지 확인합니다.
- 개발자 화면을 사용하여 MongoDB 서비스를 생성하고 배포했는지 확인합니다.
프로세스
MongoDB 서비스 위에 커서를 올리면 노드에서 출발하는 화살표가 표시됩니다.
그림 4.8. 커넥터
- 화살표를 클릭하고 Node.js 구성 요소 쪽으로 드래그하여 MongoDB 서비스와 연결합니다.
-
MongoDB 서비스를 클릭하여 개요 패널을 확인합니다. 서비스에 추가된 Key =
app.openshift.io/connects-to
및 Value =[{"apiVersion":"apps.openshift.io/v1","kind":"DeploymentConfig","name":"nodejs-ex"}]
주석을 확인하려면 주석 섹션에서 편집 아이콘을 클릭합니다.
마찬가지로 기타 애플리케이션 및 구성 요소를 생성하고 이들 간의 연결을 설정할 수 있습니다.
그림 4.9. 여러 애플리케이션 연결
4.9.2. 구성 요소 간 바인딩 연결 생성
서비스 바인딩은 기술 프리뷰 기능 전용입니다. Technology Preview 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/를 참조하십시오.
현재 etcd 및 PostgresSQL Database Operator의 서비스 인스턴스와 같은 몇 가지 특정 Operator를 바인딩할 수 있습니다.
Operator 지원 구성 요소를 사용하여 바인딩 연결을 설정할 수 있습니다.
이 절차에서는 PostgreSQL 데이터베이스 서비스와 Node.js 애플리케이션 간 바인딩 연결을 생성하는 예를 보여줍니다. PostgreSQL Database Operator에서 지원하는 서비스로 바인딩 연결을 생성하려면 먼저 CatalogSource
리소스를 사용하여 OperatorHub에 Red Hat 제공 PostgreSQL Database Operator를 추가한 후에 Operator를 설치해야 합니다. 그러면 PostreSQL Database Operator에서 시크릿, 구성 맵, 상태, 사양 속성에 바인딩 정보를 노출하는 데이터베이스
리소스를 생성하고 관리합니다.
사전 요구 사항
- 개발자 화면을 사용하여 Node.js 애플리케이션을 생성하고 배포했는지 확인합니다.
- OperatorHub에서 Service Binding Operator를 설치했는지 확인합니다.
프로세스
Red Hat에서 제공하는 PostgresSQL Database Operator를 OperatorHub에 추가하는
CatalogSource
리소스를 생성합니다.- +추가 보기에서 YAML 옵션을 클릭하여 YAML 가져오기 화면을 확인합니다.
다음 YAML 파일을 추가하여
CatalogSource
리소스를 적용합니다.apiVersion: operators.coreos.com/v1alpha1 kind: CatalogSource metadata: name: sample-db-operators namespace: openshift-marketplace spec: sourceType: grpc image: quay.io/redhat-developer/sample-db-operators-olm:v1 displayName: Sample DB OLM registry updateStrategy: registryPoll: interval: 30m
-
생성을 클릭하여 클러스터에서
CatalogSource
리소스를 생성합니다.
Red Hat에서 제공하는 PostgreSQL Database Operator를 설치합니다.
-
콘솔의 관리자 화면에서 Operator
OperatorHub로 이동합니다. - 데이터베이스 카테고리에서 PostgreSQL Database Operator를 선택하고 설치합니다.
-
콘솔의 관리자 화면에서 Operator
애플리케이션에 대한 DB(데이터베이스) 인스턴스를 생성합니다.
-
개발자 화면으로 전환하고 적절한 프로젝트(예:
test-project
)에 있는지 확인합니다. - +추가 보기에서 YAML 옵션을 클릭하여 YAML 가져오기 화면을 확인합니다.
편집기에 서비스 인스턴스 YAML을 추가하고 생성을 클릭하여 서비스를 배포합니다. 다음은 서비스 YAML의 예입니다.
apiVersion: postgresql.baiju.dev/v1alpha1 kind: Database metadata: name: db-demo spec: image: docker.io/postgres imageName: postgres dbName: db-demo
DB 인스턴스가 토폴로지 보기에 배포됩니다.
-
개발자 화면으로 전환하고 적절한 프로젝트(예:
- 토폴로지 보기에서 Node.js 구성 요소 위에 커서를 올리면 노드에서 출발하는 화살표가 표시됩니다.
이 화살표를 클릭하고 db-demo-postgresql 서비스를 향해 끌어와서 Node.js 애플리케이션과 바인딩 연결합니다. 서비스 바인딩 요청이 생성되고 Service Binding Operator 컨트롤러에서 DB 연결 정보를 애플리케이션 배포에 환경 변수로 삽입합니다. 요청이 성공하면 애플리케이션이 재배포되고 연결이 설정됩니다.
그림 4.10. 바인딩 커넥터
dangling 화살표를 끌어서 운영자가 지원하는 서비스에 바인딩 연결을 추가하고 만들면 컨텍스트 메뉴를 사용할 수도 있습니다.
그림 4.11. 바인딩 연결을 생성하는 컨텍스트 메뉴