17.3. 외부 SaaS 공급자


외부 서비스의 일반적인 유형은 외부 SaaS 끝점입니다. 외부 SaaS 공급자를 지원하려면 애플리케이션이 필요합니다.

  1. 통신할 끝점입니다.
  2. 다음과 같은 자격 증명 세트입니다.

    1. API 키
    2. 사용자 이름
    3. 암호

다음 단계에서는 외부 SaaS 공급자와 통합하기 위한 시나리오를 간략하게 설명합니다.

17.3.1. IP 주소 및 끝점 사용

  1. 외부 서비스를 나타내는 OpenShift Container Platform 서비스를 생성합니다. 이는 내부 서비스를 생성하는 것과 유사하지만 서비스의 Selector 필드에 차이가 있습니다.

    내부 OpenShift Container Platform 서비스는 Selector 필드를 사용하여 라벨 을 사용하여 포드를 서비스와 연결합니다. EndpointsController 라는 시스템 구성 요소는 선택기와 일치하는 Pod와 선택기를 지정하는 서비스의 끝점을 동기화합니다. 서비스 프록시 및 OpenShift Container Platform 라우터 는 서비스 끝점 간에 서비스에 대한 요청을 로드 밸런싱합니다.

    외부 리소스를 나타내는 서비스는 포드를 연결할 필요가 없습니다. 대신 Selector 필드를 설정되지 않은 상태로 둡니다. 이렇게 하면 EndpointsController 에서 서비스를 무시하고 끝점을 수동으로 지정할 수 있습니다.

      kind: "Service"
      apiVersion: "v1"
      metadata:
        name: "example-external-service"
      spec:
        ports:
          -
            name: "mysql"
            protocol: "TCP"
            port: 3306
            targetPort: 3306 1
            nodePort: 0
      selector: {} 2
    1
    선택 사항: 서비스가 연결을 전달하는 백업 Pod의 포트입니다.
    2
    비워둘 선택기 필드입니다.
  2. 다음으로 서비스 프록시 및 라우터로 전송되는 트래픽을 보낼 위치에 대한 정보가 포함된 서비스의 끝점을 생성합니다.

    kind: "Endpoints"
    apiVersion: "v1"
    metadata:
      name: "example-external-service" 1
    subsets: 2
    - addresses:
      - ip: "10.10.1.1"
      ports:
      - name: "mysql"
        port: 3306
    1
    서비스 인스턴스의 이름입니다.
    2
    서비스에 대한 트래픽은 여기에 제공된 하위 집합 간에 부하 분산됩니다.
  3. 이제 서비스 및 엔드포인트가 정의되었으므로 적절한 컨테이너에서 환경 변수를 설정하여 서비스를 사용할 수 있는 인증 정보를 Pod에 제공합니다.

      kind: "DeploymentConfig"
      apiVersion: "v1"
      metadata:
        name: "my-app-deployment"
      spec:  1
        strategy:
          type: "Rolling"
          rollingParams:
            timeoutSeconds: 120
        replicas: 1
        selector:
          name: "frontend"
        template:
          metadata:
            labels:
              name: "frontend"
          spec:
            containers:
              -
                name: "helloworld"
                image: "openshift/openshift/origin-ruby-sample"
                ports:
                  -
                    containerPort: 3306
                    protocol: "TCP"
                env:
                  -
                    name: "SAAS_API_KEY" 2
                    value: "<SaaS service API key>"
                  -
                    name: "SAAS_USERNAME" 3
                    value: "<SaaS service user>"
                  -
                    name: "SAAS_PASSPHRASE" 4
                    value: "<SaaS service passphrase>"
    1
    DeploymentConfig 의 다른 필드는 생략됩니다.
    2
    SAAS_API_KEY: 서비스와 함께 사용할 API 키입니다.
    3
    SAAS_USERNAME: 서비스와 함께 사용할 사용자 이름입니다.
    4
    SAAS_PASSPHRASE: 서비스에 사용할 암호입니다.

    이러한 변수는 컨테이너에 환경 변수로 추가됩니다. 환경 변수를 사용하면 서비스 간 통신이 가능하며 API 키, 사용자 이름 및 암호 인증 또는 인증서와 같은 추가 매개 변수가 필요하지 않을 수 있습니다.

외부 SaaS 공급자 환경 변수

마찬가지로 내부 서비스를 사용할 때 애플리케이션에는 서비스에 대한 환경 변수와 이전 단계에 설명된 자격 증명과 추가 환경 변수가 할당됩니다. 위 예제에서 컨테이너는 다음 환경 변수를 수신합니다.

  • EXAMPLE_EXTERNAL_SERVICE_SERVICE_HOST=<ip_address>
  • EXAMPLE_EXTERNAL_SERVICE_SERVICE_PORT=<port_number>
  • SAAS_API_KEY=<saas_api_key>
  • SAAS_USERNAME=<saas_username>
  • SAAS_PASSPHRASE=<saas_passphrase>

애플리케이션은 환경에서 서비스의 좌표와 자격 증명을 읽고 서비스와의 연결을 설정합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.