GitOps 및 Flux를 사용하여 원격 배포 및 CI

이 문서에서는 Arc 지원 AKS Edge Essentials 클러스터에 애플리케이션을 배포하는 방법을 설명합니다. 단계는 다음과 같습니다.

  1. GitHub 애플리케이션에서 Azure Portal 가리킵니다.
  2. GitOps 구성을 설치하여 애플리케이션을 AKS Edge Essentials 클러스터에 푸시합니다.
  3. GitHub 애플리케이션에 변경 내용을 커밋하고 앱이 자동으로 업데이트되는 것을 표시합니다.

참고

0보다 큰 서비스 IP 범위뿐만 아니라 Linux VM에 대해 4GB 이상의 RAM 및 4개 CPU를 할당했는지 확인합니다. 워크로드에 따라 기본 10GB보다 더 큰 디스크 공간이 필요할 수도 있습니다.

1단계: 포크 데모 애플리케이션 리포지토리

Azure Arc Jumpstart 리포지토리로 이동하여 고유한 GitHub 계정으로 포크합니다.

2단계: 구성 만들기

이제 Azure Portal 클러스터로 이동하여 GitOps를 선택합니다. 다음으로 클러스터 수준 구성 및 네임스페이스 수준 구성을 만듭니다. 만들기Flux 버전 2를 선택합니다.

클러스터 수준 구성

attribute 입력
구성 이름 config-nginx
네임스페이스 ingress-nginx
범위 클러스터
원본 종류 Git 리포지토리
리포지토리 URL <포크의 URL>
참조 형식 Branch
Branch main
리포지토리 형식 공용
동기화 간격 1
동기화 시간 제한 10
Kustomization
인스턴스 이름 nginx
경로 ./nginx/release
동기화 간격 10
동기화 시간 제한 10
잘라낼 사용
Force 사용 안 함

네임스페이스 수준 구성을 config-nginx 만들기 전에 가 성공적으로 만들어지고 Azure Portal GitOps에 표시될 때까지 기다립니다(규정 준수가 보류 중인 상태인 경우 다음 구성 만들기로 이동할 수 있음).

클러스터 수준 구성을 보여 주는 스크린샷

네임스페이스 수준 구성

attribute 입력
구성 이름 config-helloarc
네임스페이스 hello-arc
범위 네임스페이스
원본 종류 Git 리포지토리
리포지토리 URL <포크의 URL>
참조 형식 Branch
Branch main
리포지토리 형식 공용
동기화 간격 1
동기화 시간 제한 10
Kustomization
인스턴스 이름 app
경로 ./hello-arc/releases/app
동기화 간격 10
동기화 시간 제한 10
잘라낼 사용
Force 사용 안 함

네임스페이스 수준 구성을 보여 주는 스크린샷

구성 테이블을 새로 고치고 구성이 설치되고 규정을 준수할 때까지 기다립니다. 를 사용하여 kubectl서비스가 실행 중인 검사.

kubectl get svc -n ingress-nginx
kubectl get pods -n hello-arc

hello-arc 서비스를 보여 주는 스크린샷

웹 브라우저를 열고 노드 IP external-IP (의 ingress-nginx-controller)로 이동합니다.

hello-arc 애플리케이션 성공의 스크린샷.

3단계: Windows 구성 만들기(선택 사항)

Windows 노드가 있는 경우 Windows에 flux2 를 사용하도록 설정할 수도 있습니다. hello-arc-windows 샘플은 hello-arc Windows 컨테이너를 사용합니다.

Windows 컨테이너는 Linux 컨테이너보다 크기가 큽니다. hello-arc-windows 컨테이너를 다운로드하는 데 최대 15분이 걸릴 수 있습니다.

Windows 노드에 대한 새 네임스페이스 수준 구성을 만듭니다.

네임스페이스 수준 구성

attribute 입력
구성 이름 config-helloarc-windows
네임스페이스 hello-arc
범위 네임스페이스
원본 종류 Git 리포지토리
리포지토리 URL <포크의 URL>
참조 형식 Branch
Branch main
리포지토리 형식 공용
동기화 간격 1
동기화 시간 제한 10
Kustomization
인스턴스 이름 app
경로 ./hello-arc-windows/releases/app
동기화 간격 10
동기화 시간 제한 10
잘라낼 사용
Force 사용 안 함

4단계: GitOps를 사용하여 애플리케이션 업데이트

  1. azure-arc-jumpstart-apps 리포지토리의 포크에서 hello-arc > 릴리스 > 앱 > hello-arc.yaml로 이동합니다.

  2. 편집을 선택하여 이 YAML 파일을 변경 합니다. replicaCount를 5로 변경합니다. 값을 "AKS Edge Essentials Gitops에 배포!"로 변경합니다.

  3. 이 변경 내용을 커밋합니다.

    참고

    구성을 만들 때 동기화 간격1분 으로 설정했으므로 Flux는 1분마다 GitHub에서 변경 내용을 끌어냅니다.

    hello-arc yaml을 보여 주는 스크린샷

  4. 를 사용하여 kubectl 이전 Pod가 종료되고 새 Pod가 온라인 상태가 되는지 확인합니다.

    kubectl get pods -n hello-arc -w
    

    Pod 롤링 업데이트를 보여 주는 스크린샷

  5. 애플리케이션을 새로 고쳐 이 변경 내용이 롤링 업데이트로 반영되는지 확인합니다.

    업데이트된 hello-arc 애플리케이션을 보여 주는 스크린샷

GitOps에 대한 자세한 내용은 Azure Arc Jumpstart 가이드를 참조하세요.

다음 단계