본문으로 건너뛰기
버전: docs v25.02

For AWS Cloud

목차

  1. Edge App Infra Login
  2. Helm 설치
  3. Edge App Helm Chart 다운로드 및 인프라 정보 작성
  4. Edge App 설치/삭제/업데이트
  5. Edge Conductor 상에서 확인 후 사용  

1. Edge App Infra Login

  • Edge App infra의 자원들을 이용하기 위해 key 계정의 확보가 필수 입니다 (클라우드 관리자에게 Key를 문의해 주세요)

  • awscli, curl, kubectl 사전 설치

        sudo apt-get install awscli
    sudo apt-get install curl
    sudo curl -LO https://dl.k8s.io/release/v1.28.0/bin/linux/amd64/kubectl
    sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
  • AWS ECR 로그인

        aws configure set aws_access_key_id {"AWS Access Key"}
    aws configure set aws_secret_access_key  {"AWS Secret Access Key"}
    aws configure set default.region  {"region"}
    aws ecr get-login-password --region {region}| sudo docker login --username AWS --password-stdin {AWS Account ID}.dkr.ecr.{region}.amazonaws.com
  • 개발 환경 설정

        aws eks update-kubeconfig --region ap-northeast-2 --name {AWS cluster name}
    kubectl config set-context --current --namespace={namespace}

2. Helm 설치

  • helm 설치
    sudo snap install helm --classic

3. Edge App Helm Chart 다운로드 및 환경구성

  • Edge App Helm chart 설치

    git clone https://github.com/mellerikat/Edge-App.git
  • Edge App 환경 구성(최초 1회 )

        helm install init ./setup-pacakge/edgeapp-setup-[--version].tgz-f [namespace_setting_file] -n {namespace}

    (ex)

        helm install init ./setup-pacakge/edgeapp-setup-1.0.0.tgz -f example/aws-setup-for-each-namespace.yaml -n edge-app
  • 환경에 따라 맞는 하나의 예제파일을 선택해서 수정후 -f 옵션 뒤에 넣는다

    • example/aws-setup-for-each-namespace.yaml
    • example/gcp-setup-for-each-namespace.yaml
    • example/wsl-setup-for-each-namespace.yaml
  • 저장소, Rolebind 등 엣지앱이 동작위한 환경 설정을 위한 파일 (aws 예시)

    # aws-setup-for-each-namespace.yaml
    global:
    is_aws: True #aws환경인 경우 True
    cluster_set: True #저장소 setting 최초 세팅이라면 True

    env:
    namespace: edge-app #k8s namespace
    serviceaccount: edge-app #k8s service account

    pv:
    pv_enable: True #저장소를 사용할것이라면 True
    volumeHandle: {"storage name"} #할당받은 저장소 이름을 적는다

4. Edge App 설치/삭제/업데이트

  • 1. Edge App 설치

    helm install [edgeapp name] ./edgeapp-package/edgeapp-manifest-[--version].tgz -f example/aws-edgeapp.yaml -n {namespace}

    (ex)

    helm install edgeapp-1 ./edgeapp-package/edgeapp-manifest-3.4.1.tgz -f example/aws-edgeapp-1.yaml -n edge-app
    helm install edgeapp-2 ./edgeapp-package/edgeapp-manifest-3.4.1.tgz -f example/aws-edgeapp-2.yaml -n edge-app
    • 환경에 따라 맞는 하나의 예제파일을 선택해서 수정후 -f 옵션 뒤에 넣는다

      • example/aws-edgeapp.yaml
      • example/gcp-edgeapp.yaml
      • example/wsl-edgeapp.yaml
    • 엣지앱의 사용자/인프라 정보를 저장하는 파일

        # mellerikat-dev
    env:
    type: aws #설치환경
    cluster: eks-an2-meerkat-dev-eks-master #설치 클러스터
    edgeapp_node: ng-an2-meerkat-ws-edge-app-t3-medium #엣지앱노드
    # GPU를 이용하여 추론하기 위해서는 GPU node를 기입
    alo_node: ng-an2-edgeapp-meerkat-standard #추론 노드
    alo_memory: 6500Mi #추론 메모리
    storage: s3-an2-meerkat-dev-meerkat #저장소
    #ECR이미지 주소
    controller_image_address: 339713051385.dkr.ecr.ap-northeast-2.amazonaws.com/mellerikat/release/edge-app/amd/controller:[--version]
    iomanager_image_address: 339713051385.dkr.ecr.ap-northeast-2.amazonaws.com/mellerikat/release/edge-app/amd/iomanager:[--version]
    redis_image_address: 339713051385.dkr.ecr.ap-northeast-2.amazonaws.com/ecr-repo-an2-meerkat-dev/edgeapp/amd/redis:v7.2.3
    namespace: edge-app #k8s namespace
    serviceaccount: edge-app #k8s service account

    pv:
    pv_enable: True #log 저장여부

    conductor:#edge conductor 정보
    host: edgecond.meerkat-dev.com #edge app과 edge cond가 동일한 쿠버네티스 cluster에 설치되는 경우에는 URL대신 쿠버네티스 service DNS 주소를 사용할 수 있다
    http_protocol: https
    port: 443
    wsprotocol: wss

    appinfo:
    data_input_path: edgeapp_test/input #추론 이미지 입력장소
    data_ouput_path: edgeapp_test/output #추론 결과 저장장소
    data_input_policy: copy #'move','copy' #입력이미지 정책
    data_save_policy: add_utc #'overwrite','add_utc','add_date' #이미지 저장정책
    enable_result_to_edgecond: True #edge conductor로 결과 전송 여부
    Note: aws-test-edgeapp #기타 참고 사항
  • 4.edgeapp 삭제

    helm uninstall [edgeapp name]

    (ex)

    helm uninstall example1
    helm uninstall example2
  • 5.Helm 설정정보 업데이트

    helm upgrade [edgeapp name] ./edgeapp-package/edgeapp-manifest-[--version].tgz -n {namespace}
  • 6. Alo삭제

    kubectl delete pod [alo pod name] -n {namespace}

5. Edge Conductor 상에서 확인 후 사용

  • 엣지 컨덕터상에서 사용자가 설치한 엣지가 보이는지 확인한다
    • ex) {edgetest} -> {serail-number}{edgetest}