2장. Kafka 브리지용 3scale 배포


Kafka 브리지와 함께 3scale을 사용하려면 먼저 배포한 다음 Kafka Bridge API를 검색하도록 구성합니다.

또한 3scale APIcast 및 3scale toolbox를 사용합니다.

  • APIcast는 3scale에서 HTTP 클라이언트가 Kafka Bridge API 서비스에 연결할 수 있도록 NGINX 기반 API 게이트웨이로 제공됩니다.
  • 3scale toolbox는 Kafka Bridge 서비스의 OpenAPI 사양을 3scale로 가져오는 데 사용되는 구성 툴입니다.

이 시나리오에서는 동일한 OpenShift 클러스터에서 AMQ Streams, Kafka, Kafka Bridge 및 3scale/APIcast를 실행합니다.

참고

Kafka Bridge와 동일한 클러스터에 3scale을 이미 배포한 경우 배포 단계를 건너뛰고 현재 배포를 사용할 수 있습니다.

3scale 배포의 경우:

  • Red Hat 3scale API Management 지원 구성을 확인합니다.
  • 설치에는 system:admin 과 같은 cluster-admin 역할이 있는 사용자가 필요합니다.
  • 다음을 설명하는 JSON 파일에 액세스해야 합니다.

    • Kafka 브리지 OpenAPI 사양 (openapiv2.json)
    • Kafka Bridge의 헤더 수정 및 라우팅 정책 (policies_config.json)

      GitHub 에서 JSON 파일을 찾습니다.

자세한 내용은 Red Hat 3scale 설명서를 참조하십시오.

절차

  1. OpenShift 클러스터에 3scale API Management를 배포합니다.

    1. 새 프로젝트를 생성하거나 기존 프로젝트를 사용합니다.

      oc new-project my-project \
          --description="description" --display-name="display_name"
    2. 3scale 배포.

      Red Hat 3scale 설명서는 템플릿 또는 Operator를 사용하여 OpenShift에 3scale을 배포하는 방법을 설명합니다.

      어떤 접근 방식을 사용하든 WILDCARD_DOMAIN 매개변수를 OpenShift 클러스터의 도메인으로 설정해야 합니다.

      3scale 관리 포털에 액세스하기 위해 제공된 URLS 및 인증 정보를 기록합니다.

  2. Kafka Bridge 서비스를 검색하기 위해 3scale에 대한 권한을 부여합니다.

    oc adm policy add-cluster-role-to-user view system:serviceaccount:my-project:amp
  3. 3scale이 OpenShift 콘솔 또는 CLI에서 Openshift 클러스터에 성공적으로 배포되었는지 확인합니다.

    예를 들면 다음과 같습니다.

    oc get deployment 3scale-operator
  4. 3scale toolbox를 설정합니다.

    1. Red Hat 3scale 설명서에 제공된 정보를 사용하여 3scale toolbox를 설치합니다.
    2. 3scale과 상호 작용할 수 있도록 환경 변수를 설정합니다.

      export REMOTE_NAME=strimzi-kafka-bridge 
      1
      
      export SYSTEM_NAME=strimzi_http_bridge_for_apache_kafka 
      2
      
      export TENANT=strimzi-kafka-bridge-admin 
      3
      
      export PORTAL_ENDPOINT=$TENANT.3scale.net 
      4
      
      export TOKEN=3scale access token 
      5
      1
      REMOTE_NAME 은 3scale 관리 포털의 원격 주소에 할당된 이름입니다.
      2
      SYSTEM_NAME 은 3scale toolbox를 통해 OpenAPI 사양을 가져와서 생성된 3scale 서비스/API의 이름입니다.
      3
      TENANT 는 3scale 관리 포털의 테넌트 이름입니다(즉, https://$TENANT.3scale.net).
      4
      PORTAL_ENDPOINT 는 3scale 관리 포털을 실행하는 엔드포인트입니다.
      5
      TOKEN 은 3scale toolbox 또는 HTTP 요청을 통한 상호 작용을 위해 3scale 관리 포털에서 제공하는 액세스 토큰입니다.
    3. 3scale toolbox의 원격 웹 주소를 구성합니다.

      3scale remote add $REMOTE_NAME https://$TOKEN@$PORTAL_ENDPOINT/

      이제 toolbox를 실행할 때마다 3scale 관리 포털의 끝점 주소를 지정할 필요가 없습니다.

  5. Cluster Operator 배포에 3scale에서 Kafka Bridge 서비스를 검색하는 데 필요한 레이블 및 주석 속성이 있는지 확인합니다.

    #...
    env:
    - name: STRIMZI_CUSTOM_KAFKA_BRIDGE_SERVICE_LABELS
        value: |
        discovery.3scale.net=true
    - name: STRIMZI_CUSTOM_KAFKA_BRIDGE_SERVICE_ANNOTATIONS
        value: |
        discovery.3scale.net/scheme=http
        discovery.3scale.net/port=8080
        discovery.3scale.net/path=/
        discovery.3scale.net/description-path=/openapi
    #...

    그렇지 않은 경우 OpenShift 콘솔을 통해 속성을 추가하거나 Cluster Operator 및 Kafka Bridge를 재배포합니다.

  6. 3scale을 통해 Kafka 브리지 API 서비스를 검색합니다.

    1. 3scale을 배포할 때 제공된 인증 정보를 사용하여 3scale 관리 포털에 로그인합니다.
    2. 관리 포털 대시보드의 API 에서 제품 생성을 클릭합니다.
    3. OpenShift에서 가져오기 를 클릭합니다.
    4. Kafka 브리지 서비스 선택
    5. 제품 생성을 클릭합니다.

      Kafka 브리지 서비스를 보려면 페이지를 새로 고쳐야 할 수도 있습니다.

      이제 서비스의 구성을 가져와야 합니다. 편집기에서 이 작업을 수행하지만 포털을 열어서 가져오기가 성공했는지 확인합니다.

  7. Kafka Bridge 서비스의 기본 URL을 사용하도록 JSON(OpenAPI 사양)에서 Host 필드를 편집합니다.

    예를 들면 다음과 같습니다.

    "host": "my-bridge-bridge-service.my-project.svc.cluster.local:8080"

    호스트 URL에 올바른 항목이 포함되어 있는지 확인합니다.

    • Kafka 브리지 이름(my-bridge)
    • 프로젝트 이름 (my-project)
    • Kafka 브리지용 포트(8080)
  8. 3scale toolbox를 사용하여 업데이트된 OpenAPI 사양을 가져옵니다.

    3scale import openapi -k -d $REMOTE_NAME openapiv2.json -t myproject-my-bridge-bridge-service
  9. 서비스(JSON 파일)의 헤더 수정 및 라우팅 정책을 가져옵니다.

    1. 3scale에서 생성한 서비스의 ID를 찾습니다.

      여기에서 'jq' 유틸리티 를 사용합니다.

      export SERVICE_ID=$(curl -k -s -X GET "https://$PORTAL_ENDPOINT/admin/api/services.json?access_token=$TOKEN" | jq ".services[] | select(.service.system_name | contains(\"$SYSTEM_NAME\")) | .service.id")

      정책을 가져올 때 ID가 필요합니다.

    2. 정책을 가져옵니다.

      curl -k -X PUT "https://$PORTAL_ENDPOINT/admin/api/services/$SERVICE_ID/proxy/policies.json" --data "access_token=$TOKEN" --data-urlencode policies_config@policies_config.json
  10. 3scale 관리 포털에서 Integration Configuration 으로 이동하여 Kafka Bridge 서비스의 끝점 및 정책이 로드되었는지 확인합니다.
  11. Applications Create Application Plan (애플리케이션 계획 생성)으로 이동하여 애플리케이션 계획을 생성합니다.
  12. ScanSetting 개발자 애플리케이션 생성합니다.

    인증을 위한 사용자 키를 가져오려면 애플리케이션이 필요합니다.

  13. (프로덕션 환경 단계) 프로덕션 게이트웨이에서 API를 사용할 수 있도록 하려면 구성을 승격합니다.

    3scale proxy-config promote $REMOTE_NAME $SERVICE_ID
  14. API 테스트 툴을 사용하여 소비자 생성 호출과 애플리케이션에 대해 생성된 사용자 키를 사용하여 APIcast 게이트웨이를 통해 Kafka 브릿지에 액세스할 수 있는지 확인합니다.

    예를 들면 다음과 같습니다.

    https//my-project-my-bridge-bridge-service-3scale-apicast-staging.example.com:443/consumers/my-group?user_key=3dfc188650101010ecd7fdc56098ce95

    Kafka 브리지에서 페이로드가 반환되면 소비자가 성공적으로 생성되었습니다.

    {
      "instance_id": "consumer1",
      "base uri": "https//my-project-my-bridge-bridge-service-3scale-apicast-staging.example.com:443/consumers/my-group/instances/consumer1"
    }

    기본 URI는 클라이언트가 후속 요청에서 사용할 주소입니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동