3.5. Docker 컨테이너 환경에 APIcast 배포

이는 Red Hat 3scale API Management API 게이트웨이로 사용할 준비가 된 Docker 컨테이너 엔진 내부에 APIcast를 배포하는 단계별 가이드입니다.

참고

Docker 컨테이너 환경에 APIcast를 배포할 때 지원되는 RHEL(Red Hat Enterprise Linux) 및 Docker 버전은 다음과 같습니다.

  • RHEL 7.7
  • Docker 1.13.1

사전 요구 사항

Docker 컨테이너화된 환경에 APIcast를 배포하려면 다음 섹션에 설명된 단계를 수행합니다.

3.5.1. Docker 컨테이너 환경 설치

이 가이드에서는 RHEL 7.x에서 Docker 컨테이너 환경을 설정하는 단계를 설명합니다.

Red Hat에서 제공하는 Docker 컨테이너 엔진은 RHEL에서 Extras 채널의 일부로 릴리스됩니다. 추가 리포지토리를 활성화하려면 Subscription Manager 또는 yum-config-manager 옵션을 사용할 수 있습니다. 자세한 내용은 RHEL 제품 설명서를 참조하십시오.

AWS(Amazon Web Services), Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 RHEL 7.x를 배포하려면 다음 단계를 따르십시오.

절차

  1. 모든 리포지토리 나열합니다: sudo yum repolist all.
  2. *-extras 리포지토리를 찾습니다.
  3. extras 리포지토리 sudo yum-config-manager --enable rhui-REGION-rhel-server-extras를 활성화합니다.
  4. Docker 컨테이너 환경 패키지 설치: sudo yum install docker.

추가 리소스

다른 운영 체제의 경우 다음 Docker 설명서를 참조하십시오.

3.5.2. Docker 컨테이너 환경 게이트웨이 실행

중요

3scale 2.11에서는 RHEL 7에서 컨테이너로 실행되는 APIcast 배포에 대한 지원이 더 이상 사용되지 않습니다. 향후 릴리스에서 3scale은 RHEL 8 및 Podman만 지원합니다. APIcast 자체 관리를 컨테이너로 실행하는 경우 지원되는 구성으로 설치를 업그레이드합니다.

Docker 컨테이너 환경 게이트웨이를 실행하려면 다음을 수행합니다.

절차

  1. Docker 데몬을 시작합니다.

    sudo systemctl start docker.service
  2. Docker 데몬이 실행 중인지 확인합니다.

    sudo systemctl status docker.service
  3. Red Hat 레지스트리에서 Docker 컨테이너 엔진 이미지를 사용할 준비가 된 것을 다운로드합니다.

    sudo docker pull registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.11
  4. Docker 컨테이너 엔진에서 APIcast를 실행합니다.

    sudo docker run --name apicast --rm -p 8080:8080 -e THREESCALE_PORTAL_ENDPOINT=https://<access_token>@<domain>-admin.3scale.net registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.11

    여기서 <access_token>은 3scale 계정 관리 API의 액세스 토큰입니다. 액세스 토큰 대신 Provider Key를 사용할 수 있습니다. <domain>-admin.3scale.net은 3scale 관리 포털의 URL입니다.

이 명령은 포트 8080에서 "apicast"라는 Docker 컨테이너 엔진을 실행하고 3scale 관리 포털에서 JSON 구성 파일을 가져옵니다. 기타 구성 옵션은 APIcast 설치를 참조하십시오.

3.5.2.1. docker 명령 옵션

docker run 명령과 함께 다음 옵션을 사용할 수 있습니다.

  • --rm: 종료되면 컨테이너를 자동으로 제거합니다.
  • -d 또는 --detach: 백그라운드에서 컨테이너를 실행하고 컨테이너 ID를 출력합니다. 지정하지 않으면 컨테이너가 전경 모드에서 실행되며 CTRL + c를 사용하여 중지할 수 있습니다. 분리된 모드에서 시작하면 docker attach 명령을 사용하여 컨테이너에 다시 연결할 수 있습니다(예: docker attach apicast).
  • -p 또는 --publish: 컨테이너의 포트를 호스트에 게시합니다. 값의 형식은 <host port="">:<container port="">이므로 -p 80:8080은 컨테이너의 포트 8080을 호스트 시스템의 포트 80에 바인딩합니다. 예를 들어 관리 API는 포트 8090을 사용하므로 -p 8090:8090docker run 명령에 추가하여 이 포트를 게시할 수 있습니다.
  • -e 또는 --env: 환경 변수를 설정합니다.
  • -V 또는 --volume: 볼륨을 마운트합니다. 값은 일반적으로 <host path="">:<container path="">[:<options>] 표시됩니다. <options>는 선택적 속성입니다. 이는 :ro로 설정하여 볼륨이 읽기 전용임을 지정할 수 있습니다 (기본적으로 읽기-쓰기 모드로 마운트됨). 예: -v /host/path:/container/path:ro.

3.5.2.2. APIcast 테스트

이전 단계에서는 Docker 컨테이너 엔진이 3scale 레지스트리의 고유한 구성 파일 및 Docker 컨테이너 이미지로 실행되고 있는지 확인합니다. 포트 8080 에서 APIcast를 통해 호출을 테스트하고 3scale 계정에서 가져올 수 있는 올바른 인증 정보를 제공할 수 있습니다.

테스트 호출은 APIcast가 올바르게 실행되고 있는지 확인할 뿐만 아니라 인증 및 보고가 성공적으로 처리되고 있는지도 확인합니다.

참고

호출에 사용하는 호스트가 Integration (통합) 페이지의 Public Base URL 필드에 구성된 호스트와 같은지 확인합니다.

추가 리소스

3.5.3. 추가 리소스

3.5.4. Podman에 APIcast 배포

이는 Red Hat 3scale API Management API 게이트웨이로 사용할 Pod Manager(Podman) 컨테이너 환경에 APIcast를 배포하는 단계별 가이드입니다.

참고

Podman 컨테이너 환경에 APIcast를 배포할 때 지원되는 RHEL(Red Hat Enterprise Linux) 및 Podman은 다음과 같습니다.

  • RHEL 8.x
  • podman 1.4.2

사전 요구 사항

Podman 컨테이너 환경에 APIcast를 배포하려면 다음 섹션에 설명된 단계를 수행합니다.

3.5.4.1. Podman 컨테이너 환경 설치

이 가이드에서는 RHEL 8.x에서 Podman 컨테이너 환경을 설정하는 단계를 설명합니다. Docker는 RHEL 8.x에 포함되어 있지 않으므로 컨테이너 작업을 위해 Podman을 사용합니다.

RHEL 8.x를 사용한 Podman에 대한 자세한 내용은 컨테이너 명령줄 참조를 확인하십시오.

절차

  • Podman 컨테이너 환경 패키지를 설치합니다.

    sudo dnf install podman

추가 리소스

다른 운영 체제의 경우 다음 Podman 설명서를 참조하십시오.

3.5.4.2. Podman 환경 실행

Podman 컨테이너 환경을 실행하려면 아래 절차를 따르십시오.

절차

  1. Red Hat 레지스트리에서 Podman 컨테이너 이미지를 사용할 준비가 된 것을 다운로드합니다.

    podman pull registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.11
  2. Podman에서 APIcast를 실행합니다.

    podman run --name apicast --rm -p 8080:8080 -e THREESCALE_PORTAL_ENDPOINT=https://<access_token>@<domain>-admin.3scale.net registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.11

    여기서 <access_token>은 3scale 계정 관리 API의 액세스 토큰입니다. 액세스 토큰 대신 Provider Key를 사용할 수 있습니다. <domain>-admin.3scale.net은 3scale 관리 포털의 URL입니다.

이 명령은 포트 8080에서 "apicast"라는 Podman 컨테이너 엔진을 실행하고 3scale 관리 포털에서 JSON 구성 파일을 가져옵니다. 기타 구성 옵션은 APIcast 설치를 참조하십시오.

3.5.4.2.1. Podman을 사용하여 APIcast 테스트

이전 단계에서는 3scale 레지스트리의 고유한 구성 파일 및 Podman 컨테이너 이미지를 사용하여 Podman 컨테이너 엔진이 실행되고 있는지 확인합니다. 포트 8080 에서 APIcast를 통해 호출을 테스트하고 3scale 계정에서 가져올 수 있는 올바른 인증 정보를 제공할 수 있습니다.

테스트 호출은 APIcast가 올바르게 실행되고 있는지 확인할 뿐만 아니라 인증 및 보고가 성공적으로 처리되고 있는지도 확인합니다.

참고

호출에 사용하는 호스트가 Integration (통합) 페이지의 Public Base URL 필드에 구성된 호스트와 같은지 확인합니다.

3.5.4.3. podman 명령 옵션

podman 명령에 다음 옵션 예제를 사용할 수 있습니다.

  • -d: 분리된 모드에서 컨테이너를 실행하고 컨테이너 ID를 출력합니다. 지정하지 않으면 컨테이너가 전경 모드에서 실행되며 CTRL + c를 사용하여 중지할 수 있습니다. 분리 모드에서 시작되면 podman attach 명령을 사용하여 컨테이너에 다시 연결할 수 있습니다(예: podman attach apicast ).
  • ps-a: podman ps 는 컨테이너 생성 및 실행을 나열하는 데 사용됩니다. ps 명령에 -a 를 추가하면 실행 중이고 중지된 모든 컨테이너(예: podman ps -a )가 표시됩니다.
  • inspect-l: 실행 중인 컨테이너를 검사합니다. 예를 들어, 컨테이너에 할당된 ID를 확인하려면 inspect 를 사용합니다. -l 을 사용하여 최신 컨테이너의 세부 정보를 가져옵니다(예: podman inspect -l | grep Id\": ).

3.5.4.4. 추가 리소스