다음을 통해 공유


Helm을 사용하여 Kubernetes에 자체 호스팅 게이트웨이 배포

적용 대상: 개발자 | 프리미엄

Helm은 Kubernetes 애플리케이션을 설치하고 수명 주기를 관리하는 오픈 소스 패키징 도구입니다. 사전 구성된 Kubernetes 리소스 패키지인 Kubernetes 차트를 관리할 수 있습니다.

이 문서에서는 Helm을 사용하여 Azure API Management의 자체 호스팅 게이트웨이 구성 요소를 Kubernetes 클러스터에 배포하는 단계를 제공합니다.

참고 항목

자체 호스팅 게이트웨이를 Azure Arc 지원 Kubernetes 클러스터클러스터 확장으로 배포할 수도 있습니다.

필수 조건

  • Kubernetes 클러스터를 만들거나 기존 클러스터에 액세스할 수 있습니다.

    단일 노드 클러스터는 개발 및 평가 목적에 적합합니다. 프로덕션 워크로드에는 온-프레미스 또는 클라우드에서 Kubernetes 인증 다중 노드 클러스터를 사용하세요.

Helm 리포지토리 추가

  1. Azure API Management를 새 Helm 리포지토리로 추가합니다.

    helm repo add azure-apim-gateway https://azure.github.io/api-management-self-hosted-gateway/helm-charts/
    
  2. 최신 Helm 차트를 가져오려면 리포지토리를 업데이트합니다.

    helm repo update
    
  3. 사용 가능한 모든 차트를 나열하여 Helm 구성을 확인합니다.

    $ helm search repo azure-apim-gateway
    NAME                                            CHART VERSION   APP VERSION     DESCRIPTION
    azure-apim-gateway/azure-api-management-gateway 1.0.0           2.0.0           A Helm chart to deploy an Azure API Management ...
    

Kubernetes에 자체 호스팅 게이트웨이 배포

  1. 배포 및 인프라 아래에서 게이트웨이를 선택합니다.

  2. 배포하려는 자체 호스팅 게이트웨이 리소스를 선택합니다.

  3. 배포를 선택합니다.

  4. 토큰 텍스트 상자의 새 토큰은 기본 만료비밀 키 값을 사용하여 자동으로 생성되었습니다. 원하는 경우 둘 중 하나 또는 둘 다를 조정하고 생성을 선택하여 새 토큰을 만듭니다.

  5. 토큰구성 URL을 기록해 둡니다.

  6. Helm 차트를 사용하여 자체 호스팅 게이트웨이 설치

    helm install azure-api-management-gateway \
                 --set gateway.configuration.uri='<your configuration url>' \
                 --set gateway.auth.key='<your token>' \
                 azure-apim-gateway/azure-api-management-gateway
    
  7. 명령을 실행합니다. 이 명령은 Kubernetes 클러스터에 다음을 지시합니다.

    • Microsoft Container Registry에서 자체 호스팅 게이트웨이의 이미지를 다운로드하고 컨테이너로 실행합니다.
    • HTTP(8080) 및 HTTPS(8081) 포트를 노출하도록 컨테이너를 구성합니다.

    Important

    기본적으로 게이트웨이는 ClusterIP 서비스를 사용하며 클러스터 내부에만 노출됩니다. 설치하는 동안 Kubernetes Service 형식을 지정하여 이를 변경할 수 있습니다.

    예를 들어 --set service.type=LoadBalancer를 추가하여 부하 분산 장치를 통해 노출할 수 있습니다.

  8. 다음 명령을 실행하여 게이트웨이 Pod가 실행 중인지 확인합니다. Pod 이름이 달라집니다.

    kubectl get pods
    NAME                                           READY     STATUS    RESTARTS   AGE
    azure-api-management-gateway-59f5fb94c-s9stz   1/1       Running   0          1m
    
  9. 다음 명령을 실행하여 게이트웨이 서비스가 실행 중인지 확인합니다. 서비스 이름과 IP 주소가 달라집니다.

    kubectl get services
    NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)               AGE
    azure-api-management-gateway   ClusterIP   10.0.229.55     <none>        8080/TCP,8081/TCP     1m
    
  10. Azure Portal로 돌아가서 배포한 게이트웨이 노드가 정상 상태를 보고하는지 확인합니다.

kubectl logs <gateway-pod-name> 명령을 사용하여 자체 호스팅 게이트웨이 로그의 스냅샷을 봅니다.

다음 단계