GitOps 및 Flux를 사용하여 원격 배포 및 CI
이 문서에서는 Arc 지원 AKS Edge Essentials 클러스터에 애플리케이션을 배포하는 방법을 설명합니다. 단계는 다음과 같습니다.
- GitHub 애플리케이션에서 Azure Portal 가리킵니다.
- GitOps 구성을 설치하여 애플리케이션을 AKS Edge Essentials 클러스터에 푸시합니다.
- 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
웹 브라우저를 열고 노드 IP external-IP
(의 ingress-nginx-controller
)로 이동합니다.
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를 사용하여 애플리케이션 업데이트
azure-arc-jumpstart-apps 리포지토리의 포크에서 hello-arc > 릴리스 > 앱 > hello-arc.yaml로 이동합니다.
편집을 선택하여 이 YAML 파일을 변경 합니다. replicaCount를 5로 변경합니다. 값을 "AKS Edge Essentials Gitops에 배포!"로 변경합니다.
이 변경 내용을 커밋합니다.
참고
구성을 만들 때 동기화 간격 을 1분 으로 설정했으므로 Flux는 1분마다 GitHub에서 변경 내용을 끌어냅니다.
를 사용하여
kubectl
이전 Pod가 종료되고 새 Pod가 온라인 상태가 되는지 확인합니다.kubectl get pods -n hello-arc -w
애플리케이션을 새로 고쳐 이 변경 내용이 롤링 업데이트로 반영되는지 확인합니다.
GitOps에 대한 자세한 내용은 Azure Arc Jumpstart 가이드를 참조하세요.
다음 단계
피드백
https://aka.ms/ContentUserFeedback을 참조하세요.
출시 예정: 2024년 내내 콘텐츠 피드백 메커니즘인 GitHub 문제를 단계적으로 폐지하고 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은다음에 대한 사용자 의견 제출 및 보기