다음을 통해 공유


Azure Stack Edge Pro GPU의 Azure Arc 지원 Kubernetes 클러스터에서 Redis를 사용하여 PHP Guestbook 무상태 애플리케이션 배포

적용 대상:Pro GPU SKU에 대해 예Azure Stack Edge Pro - GPUPro 2 SKU에 대해 예Azure Stack Edge Pro 2Pro R SKU에 대해 예Azure Stack Edge Pro RMini R SKU에 대해 예Azure Stack Edge Mini R

이 문서에서는 Kubernetes 및 Azure Arc를 사용하여 다중 계층 웹 애플리케이션을 빌드하고 배포하는 방법을 보여줍니다. 이 예제는 다음 구성 요소로 구성됩니다.

  • guestbook 항목을 저장할 단일 인스턴스 Redis 마스터
  • 읽기를 제공하기 위해 복제된 여러 Redis 인스턴스
  • 여러 웹 프런트 엔드 인스턴스

배포는 Azure Stack Edge Pro 디바이스의 Azure Arc 지원 Kubernetes 클러스터에서 GitOps를 사용하여 수행됩니다.

이 절차는 Azure Stack Edge Pro 디바이스에서 Kubernetes 워크로드 를 검토하고 Azure Arc 지원 Kubernetes(미리 보기)의 개념에 익숙한 사용자를 위한 것입니다.

필수 조건

무상태 애플리케이션을 배포하기 전에 디바이스 및 이 디바이스에 액세스하는 데 사용할 클라이언트에서 다음 필수 사항을 완료했는지 확인해야 합니다.

디바이스의 경우

  1. 1노드 Azure Stack Edge Pro 디바이스에 대한 로그인 자격 증명이 있습니다.

    1. 디바이스가 활성화됩니다. 디바이스 활성화를 참조하세요.
    2. 디바이스에는 Azure Portal을 통해 구성된 컴퓨팅 역할이 있으며 Kubernetes 클러스터가 있습니다. 컴퓨팅 구성을 참조하세요.
  2. 디바이스의 기존 Kubernetes 클러스터에서 Azure Arc를 사용하도록 설정했으며 Azure Portal에 해당 Azure Arc 리소스가 있습니다. 자세한 단계는 Azure Stack Edge Pro 디바이스에서 Azure Arc 사용 설정을 참조하세요.

디바이스에 액세스하는 클라이언트의 경우

  1. Azure Stack Edge Pro 디바이스에 액세스하는 데 사용할 Windows 클라이언트 시스템이 있습니다.

    • 클라이언트가 Windows PowerShell 5.0 이상을 실행하고 있습니다. 최신 버전의 Windows PowerShell을 다운로드하려면 Windows PowerShell 설치로 이동합니다.

    • 지원되는 운영 체제를 사용하는 다른 클라이언트도 가질 수 있습니다. 이 문서에서는 Windows 클라이언트를 사용할 때의 절차를 설명합니다.

  2. Azure Stack Edge Pro 디바이스의 Kubernetes 클러스터 액세스에 설명된 절차를 완료했습니다. 보유 항목:

    • 클라이언트에 kubectl를 설치했습니다.

    • kubectl 클라이언트 버전이 Azure Stack Edge Pro 디바이스에서 실행되는 Kubernetes 마스터 버전보다 두 버전 이상 차이 나지 않는지 확인합니다.

      • 클라이언트에서 실행되는 kubectl의 버전을 확인하는 데 사용합니다 kubectl version . 전체 버전을 기록해 둡다.
      • Azure Stack Edge Pro 디바이스의 로컬 UI에서 개요 로 이동하여 Kubernetes 소프트웨어 번호를 확인합니다.
      • 지원되는 Kubernetes 버전에 제공된 매핑의 호환성을 위해 이 두 버전을 확인합니다.
  3. Azure Arc 배포를 실행하는 데 사용할 수 있는 GitOps 구성이 있습니다. 이 예제에서는 다음 yaml 파일을 사용하여 Azure Stack Edge Pro 디바이스에 배포합니다.

    • frontend-deployment.yaml
    • frontend-service.yaml
    • redis-master-deployment.yaml
    • redis-master-service.yaml
    • redis-replica-deployment.yaml
    • redis-replica-service.yaml

구성 배포

다음 단계에 따라 Azure Portal을 통해 GitOps 구성을 배포하도록 Azure Arc 리소스를 구성합니다.

  1. Azure Portal에서 디바이스의 Kubernetes 클러스터에서 Azure Arc를 사용하도록 설정할 때 만든 Azure Arc 리소스로 이동합니다.

    Azure Arc 리소스로 이동

  2. 구성으로 이동하여 + 구성 추가를 선택합니다.

    스크린샷은 구성 추가가 선택된 Azure Arc 지원 Kubernetes 클러스터를 보여줍니다.

  3. Flux 버전 1 확장을 지정합니다.

  4. GitOps 구성 추가에서 필드에 적절한 값을 입력한 다음 추가를 선택합니다.

    매개 변수 Description
    구성 이름 구성 리소스의 이름입니다.
    운영자 인스턴스 이름 특정 구성을 식별하는 연산자의 인스턴스 이름입니다. 이름은 소문자, 영숫자, 하이픈 및 마침표만 사용해야 하는 최대 253자의 문자열입니다.
    연산자 네임스페이스 배포에 지정된 네임스페이스와 일치하도록 yaml으로 설정합니다.
    필드는 연산자가 설치된 네임스페이스를 정의합니다. 이름은 소문자, 영숫자, 하이픈 및 마침표만 사용해야 하는 최대 253자의 문자열입니다.
    리포지토리 URL
    GitOps 구성이 위치한 http://github.com/username/repo 또는 git://github.com/username/repo 형식의 git 리포지토리 경로입니다.
    연산자 범위 네임스페이스를 선택합니다.
    이 매개 변수는 연산자가 설치된 범위를 정의합니다. 네임스페이스를 선택하여 배포 yaml 파일에 지정된 네임스페이스에 운영자를 설치합니다.
    연산자 유형 기본값으로 둡니다.
    이 매개 변수는 연산자의 형식을 지정합니다. 기본적으로 flux로 설정됩니다.
    연산자 매개 변수 이 항목을 비워둡니다.
    이 매개 변수에는 flux 연산자에 전달할 매개 변수가 포함되어 있습니다.
    Helm 이 확인란을 선택 취소된 상태로 둡니다.
    차트 기반 배포를 수행하는 경우 이 옵션을 사용하도록 설정합니다.

    구성 추가

  5. 구성 배포가 시작되고 운영자 상태가보류 중으로 표시됩니다.

    스크린샷은 Azure Arc가 적용된 Kubernetes 클러스터가 새로 고침 중일 때 보류 상태에 있는 모습을 보여줍니다.

  6. 배포에는 몇 분 정도 걸립니다. 배포가 완료되면 운영자 상태가설치됨으로 표시됩니다.

    스크린샷은 설치된 상태의 Azure Arc 지원 Kubernetes 클러스터를 보여줍니다.

배포 확인

GitOps 구성을 통한 배포는 git 리포지토리에 있는 배포 demotestguestbook 파일에 지정된 대로 네임스페이스를 만듭니다yaml.

  1. GitOps 구성을 적용한 후 디바이스의 PowerShell 인터페이스에 연결합니다.

  2. 다음 명령을 실행하여 배포에 해당하는 네임스페이스 demotestguestbook에서 실행되는 포드를 나열합니다.

    kubectl get pods -n <your-namespace>

    다음은 샘플 출력입니다.

    [10.128.44.240]: PS>kubectl get pods -n demotestguestbook
    NAME                            READY   STATUS    RESTARTS   AGE
    aseoperator1-5569658644-cqtb5   1/1     Running   0          91m
    frontend-6cb7f8bd65-4xb4f       1/1     Running   0          91m
    frontend-6cb7f8bd65-q9cxj       1/1     Running   0          91m
    frontend-6cb7f8bd65-xpzs6       1/1     Running   0          91m
    memcached-86bdf9f56b-5l2fq      1/1     Running   0          91m
    redis-master-7db7f6579f-2z29w   1/1     Running   0          91m
    redis-replica-7664787fbc-lgr2n    1/1     Running   0          91m
    redis-replica-7664787fbc-vlvzn    1/1     Running   0          91m
    [10.128.44.240]: PS>
    
  3. 이 예제에서는 프런트 엔드 서비스가 type:LoadBalancer로 배포되었습니다. 를 보려면 이 서비스의 IP 주소를 찾아야 합니다 guestbook. 다음 명령을 실행합니다.

    kubectl get service -n <your-namespace>

    [10.128.44.240]: PS>kubectl get service -n demotestguestbook
    NAME           TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)        AGE
    frontend       LoadBalancer   10.96.79.38      10.128.44.245   80:31238/TCP   85m
    memcached      ClusterIP      10.102.47.75     <none>          11211/TCP      85m
    redis-master   ClusterIP      10.104.32.99     <none>          6379/TCP       85m
    redis-replica    ClusterIP      10.104.215.146   <none>          6379/TCP       85m
    [10.128.44.240]: PS>
    
  4. 프런트 엔드 서비스에 type:LoadBalancer 외부 IP 주소가 있습니다. 이 IP는 디바이스에서 컴퓨팅 네트워크 설정을 구성할 때 외부 서비스에 대해 지정한 IP 주소 범위에서 가져옵니다. URL guestbook에서 https://<external-IP-address>을(를) 보려면 이 IP 주소를 사용하십시오.

    게스트 북 보기

배포 삭제

배포를 삭제하려면 Azure Portal에서 구성을 삭제할 수 있습니다. 구성을 삭제하면 배포 및 서비스를 포함하여 생성된 개체가 삭제됩니다.

  1. Azure Portal에서 Azure Arc 리소스 > 구성으로 이동합니다.
  2. 삭제할 구성을 찾습니다. ...를 선택합니다. 상황에 맞는 메뉴를 호출하고 삭제를 선택합니다. 구성 삭제

구성을 삭제하는 데 몇 분 정도 걸릴 수 있습니다.

다음 단계

Kubernetes 대시보드를 사용하여 Azure Stack Edge Pro 디바이스에서 배포를 모니터링하는 방법 알아보기