Menu Close

4.8. Service Binding Operator를 사용한 워크로드 바인딩

애플리케이션 개발자는 바인딩 보안을 사용하여 워크로드를 하나 이상의 백업 서비스에 바인딩해야 합니다. 이 비밀은 워크로드에서 사용할 정보를 저장하기 위해 생성됩니다.

예를 들어 연결하려는 서비스가 바인딩 데이터를 이미 노출하고 있다고 가정합니다. 이 경우 ServiceBinding CR(사용자 정의 리소스)과 함께 사용할 워크로드가 필요합니다. 워크로드는 이 ServiceBinding CR을 사용하여 바인딩할 서비스의 세부 정보와 함께 바인딩 요청을 보냅니다.

ServiceBinding CR의 예

apiVersion: binding.operators.coreos.com/v1alpha1
kind: ServiceBinding
metadata:
    name: spring-petclinic-rest
    namespace: my-postgresql
spec:
    services: 1
    - group: postgres-operator.crunchydata.com
      version: v1beta1
      kind: PostgresCluster
      name: hippo
    - group: ""
      version: v1
      kind: Secret
      name: hippo-pguser-hippo
    application: 2
      name: spring-petclinic-rest
      group: apps
      version: v1
      resource: deployments

1
서비스 리소스 목록을 지정합니다.
2
Deployment 또는 포함된 PodSpec이 있는 기타 유사한 리소스를 가리키는 샘플 애플리케이션입니다.

이전 예제와 같이 ConfigMap 또는 Secret 자체를 서비스 리소스로 직접 사용하여 바인딩 데이터 소스로 사용할 수도 있습니다.

4.8.1. 네이밍 전략

이름 지정 전략은 binding.operators.coreos.com API 그룹에만 사용할 수 있습니다.

이름 지정 전략에서는 Go 템플릿을 사용하여 서비스 바인딩 요청을 통해 사용자 지정 바인딩 이름을 정의하는 데 도움이 됩니다. 네이밍 전략은 ServiceBinding CR(사용자 정의 리소스)의 매핑을 포함한 모든 속성에 적용됩니다.

백업 서비스는 바인딩 이름을 파일 또는 환경 변수로 워크로드에 프로젝트합니다. 워크로드에 특정 형식의 예상 바인딩 이름이 필요하지만 지원 서비스에서 예상하는 바인딩 이름은 해당 형식으로 사용할 수 없는 경우 네이밍 전략을 사용하여 바인딩 이름을 변경할 수 있습니다.

사전 정의된 후 처리 기능

워크로드의 기대치 또는 요구 사항에 따라 명명 전략을 사용하는 동안, 모든 조합에서 사전 정의된 다음 사후 처리 기능을 사용하여 문자 문자열을 변환할 수 있습니다.

  • upper: 문자 문자열을 대문자 또는 대문자로 변환합니다.
  • lower: 문자 문자열을 소문자로 변환합니다.
  • title: 특정 사소한 단어를 제외하고 각 단어의 첫 번째 문자가 대문자로 지정된 문자 문자열을 변환합니다.

사전 정의된 명명 전략

주석 또는 OLM(Operator Lifecycle Manager) 설명자를 통해 선언된 바인딩 이름은 다음 사전 정의된 명명 전략에 따라 워크로드로 예상되기 전에 이름 변경에 대해 처리됩니다.

  • none: 적용할 때 바인딩 이름은 변경되지 않습니다.

    예제

    템플릿 컴파일 후 바인딩 이름은 {{ .name }} 양식을 사용합니다.

    host: hippo-pgbouncer
    port: 5432
  • upper: namingStrategy 가 정의되지 않은 경우 적용됩니다. 적용되면 바인딩 name 키의 모든 문자 문자열을 대문자 또는 대문자로 변환합니다.

    예제

    템플릿 컴파일 후 바인딩 이름은 {{ .service.kind | upper}}_{{ .name | upper }} 양식을 사용합니다.

    DATABASE_HOST: hippo-pgbouncer
    DATABASE_PORT: 5432

    워크로드에 다른 형식이 필요한 경우 사용자 지정 명명 전략을 정의하고 접두사와 구분자를 사용하여 바인딩 이름을 변경할 수 있습니다(예: PORT_DATABASE ).

참고
  • 바인딩 이름이 파일로 예상되면 기본적으로 사전 정의된 none 명명 전략이 적용되고 바인딩 이름은 변경되지 않습니다.
  • 바인딩 이름이 환경 변수로 예상되고 namingStrategy 가 정의되지 않은 경우 기본적으로 사전 정의된 대문자 명명 전략이 적용됩니다.
  • 사용자 지정 바인딩 이름과 사전 정의된 사후 처리 기능의 다양한 조합을 사용하여 사용자 지정 명명 전략을 정의하여 사전 정의된 명명 전략을 재정의할 수 있습니다.