5.7. 바인딩 데이터 예상
이 섹션에서는 바인딩 데이터를 사용하는 방법에 대한 정보를 제공합니다.
5.7.1. 바인딩 데이터 사용
백업 서비스에서 바인딩 데이터를 노출한 후 워크로드가 이 데이터에 액세스하고 사용하기 위해 백업 서비스에서 해당 데이터를 워크로드로 프로젝트해야 합니다. Service Binding Operator는 다음 방법으로 이 데이터 집합을 워크로드로 자동 계획합니다.
- 기본적으로 를 파일로 설정합니다.
-
ServiceBinding
리소스에서.spec.bindAsFiles
매개변수를 구성한 후 환경 변수로 설정합니다.
5.7.2. 워크로드 컨테이너 내부의 바인딩 데이터를 예상할 디렉터리 경로 구성
기본적으로 Service Binding Operator는 바인딩 데이터를 워크로드 리소스의 특정 디렉터리에 파일로 마운트합니다. 워크로드가 실행되는 컨테이너에서 SERVICE_BINDING_ROOT
환경 변수 설정을 사용하여 디렉터리 경로를 구성할 수 있습니다.
예: 파일로 마운트된 바인딩 데이터
$SERVICE_BINDING_ROOT 1 ├── account-database 2 │ ├── type 3 │ ├── provider 4 │ ├── uri │ ├── username │ └── password └── transaction-event-stream 5 ├── type ├── connection-count ├── uri ├── certificates └── private-key
바인딩 데이터를 환경 변수로 사용하려면 선택한 프로그래밍 언어의 기본 언어 기능을 사용하여 환경 변수를 읽을 수 있습니다.
예: Python 클라이언트 사용
import os username = os.getenv("USERNAME") password = os.getenv("PASSWORD")
5.7.2.1. 바인딩 데이터를 파일로 예상하기 위한 최종 경로 계산
다음 표에는 파일이 특정 디렉터리에 마운트될 때 바인딩 데이터 예측의 최종 경로가 계산되는 방법에 대한 구성이 요약되어 있습니다.
SERVICE_BINDING_ROOT | 최종 경로 |
---|---|
사용할 수 없음 |
|
|
|
이전 표에서 <ServiceBinding_ResourceName>
항목은 CR(사용자 정의 리소스)의 .metadata.name
섹션에서 구성하는 ServiceBinding
리소스의 이름을 지정합니다.
기존 SERVICE_BINDING_ROOT
환경 변수 내의 바인딩 데이터에 액세스하고 사용하려면 환경 변수를 읽을 수 있는 선택한 프로그래밍 언어의 기본 언어 기능을 사용합니다.
예: Python 클라이언트 사용
from pyservicebinding import binding try: sb = binding.ServiceBinding() except binding.ServiceBindingRootMissingError as msg: # log the error message and retry/exit print("SERVICE_BINDING_ROOT env var not set") sb = binding.ServiceBinding() bindings_list = sb.bindings("postgresql")
이전 예제에서 bindings_list
변수에는 postgresql
데이터베이스 서비스 유형의 바인딩 데이터가 포함되어 있습니다.
5.7.3. 바인딩 데이터 예상
워크로드 요구 사항 및 환경에 따라 바인딩 데이터를 파일 또는 환경 변수로 예상하도록 선택할 수 있습니다.
사전 요구 사항
다음 개념을 이해합니다.
- 워크로드의 환경과 요구 사항, 그리고 제공된 서비스와의 작동 방식.
- 워크로드 리소스의 바인딩 데이터 사용.
- 기본 메서드에 대해 데이터 예측의 최종 경로를 계산하는 방법에 대한 구성입니다.
- 바인딩 데이터는 백업 서비스에서 노출됩니다.
프로세스
-
바인딩 데이터를 파일로 계획하려면 기존
SERVICE_BINDING_ROOT
환경 변수가 워크로드가 실행되는 컨테이너에 있는지 확인하여 대상 폴더를 확인합니다. -
바인딩 데이터를 환경 변수로 계획하려면 CR(사용자 정의 리소스)의
ServiceBinding
리소스에서.spec.bindAsFiles
매개변수의 값을false로 설정합니다
.