17.3. 외부 SaaS 공급자
외부 서비스의 일반적인 유형은 외부 SaaS 끝점입니다. 외부 SaaS 공급자를 지원하려면 애플리케이션이 필요합니다.
- 통신할 끝점입니다.
다음과 같은 자격 증명 세트입니다.
- API 키
- 사용자 이름
- 암호
다음 단계에서는 외부 SaaS 공급자와 통합하기 위한 시나리오를 간략하게 설명합니다.
17.3.1. IP 주소 및 끝점 사용
외부 서비스를 나타내는 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
다음으로 서비스 프록시 및 라우터로 전송되는 트래픽을 보낼 위치에 대한 정보가 포함된 서비스의 끝점을 생성합니다.
kind: "Endpoints" apiVersion: "v1" metadata: name: "example-external-service" 1 subsets: 2 - addresses: - ip: "10.10.1.1" ports: - name: "mysql" port: 3306
이제 서비스 및 엔드포인트가 정의되었으므로 적절한 컨테이너에서 환경 변수를 설정하여 서비스를 사용할 수 있는 인증 정보를 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>"
이러한 변수는 컨테이너에 환경 변수로 추가됩니다. 환경 변수를 사용하면 서비스 간 통신이 가능하며 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>
애플리케이션은 환경에서 서비스의 좌표와 자격 증명을 읽고 서비스와의 연결을 설정합니다.