초보자를 위한 Kubernetes와 Argo CD를 사용한 애플리케이션 배포

쿠버네티스에서 애플리케이션을 배포하는 것은 특히 초보자에게는 복잡할 수 있습니다. Argo CD는 GitOps를 기반으로하고 쿠버네티스 애플리케이션 배포를 자동화하기 위해 설계된 선언적 도구입니다. 이 워크샵에서는 Argo CD를 설정하고 사용하여 애플리케이션을 원활하게 배포하는 방법을 배우게 됩니다. 완전한 초보자를 위해 단계별로 만들어졌습니다.

학습 내용

  • Argo CD 설치 및 구성.
  • GitOps 원칙을 사용한 애플리케이션 배포.
  • 배포 모니터링 및 문제 해결.
  • 롤백 및 애플리케이션 버전 관리.
  • 프로덕션 환경에서 Argo CD 보안.

Argo CD의 장점

Argo CD쿠버네티스에서 애플리케이션 관리를 간소화하며 매니페스트를 Git 리포지토리에 정의된 대로 지속적으로 동기화합니다. 이에 따른 이점은 다음과 같습니다:

  • 선언적 관리: Git에서 원하는 클러스터 상태를 정의합니다.
  • 지속적인 배포: 실시간 동기화로 배포를 자동화합니다.
  • 버전 관리: 이전 버전으로 쉽게 롤백합니다.

필수 조건

시작하기 전에 다음 사항을 확인하십시오:

  1. 쿠버네티스 클러스터(Minikube, Kind 또는 GKE, EKS, AKS와 같은 관리형 서비스 사용).
  2. kubectl이 설치되어 클러스터에 연결되어 있는지 확인하십시오.
  3. GitHub 또는 GitLab 계정을 보유하여 쿠버네티스 매니페스트를 호스팅하십시오.
  4. YAML 구문에 기본적인 이해도가 있어야 합니다(처음 접하시는 경우 이 워크샵에서 다룹니다).

단계별 안내

1. 쿠버네티스 클러스터 설정

단계 1: Minikube 설치

클러스터가 없는 경우 Minikube를 사용하십시오:

Shell

 

단계 2: Minikube 시작

시스템에 Minikube를 설치한 후 minikube start 명령을 실행하십시오:

Shell

 

단계 3: 클러스터 확인

클러스터가 실행 중인지 확인하십시오:

Shell

 

2. Argo CD 설치

단계 1: 네임스페이스 생성

Argo CD는 격리를 위해 자체 네임스페이스에서 실행됩니다:

Shell

 

단계 2: Argo CD 설치

공식 매니페스트를 적용하여 Argo CD를 설치하십시오:

Shell

 

단계 3: 설치 확인

Argo CD 팟을 확인하십시오:

Shell

 

3. Argo CD UI에 액세스하기

단계 1: Argo CD 노출

argocd-server를 로컬 머신에 노출하십시오:

Shell

 

단계 2: 관리자 자격 증명 검색

기본 관리자 암호를 가져옵니다:

Shell

 

단계 3: UI에 로그인

  1. 브라우저에서 https://localhost:8080를 엽니다.
  2. 다음으로 로그인합니다:
    • 사용자 이름: admin
    • 암호: 이전 단계에서 가져온 것.

4. Argo CD를 Git 리포지토리에 연결

단계 1: Git 리포지토리 준비

  1. Git 리포지토리를 생성합니다 (예: GitHub에서).
  2. 쿠버네티스 매니페스트를 리포지토리에 추가합니다. 이 샘플 deployment.yaml을 사용합니다:
YAML

 

단계 2: 리포지토리를 Argo CD에 추가

UI에서:

  1. 설정 > 리포지토리로 이동합니다.
  2. Git 리포지토리 URL 및 인증 세부 정보 (SSH 또는 HTTPS)를 추가합니다.

또는 CLI를 사용합니다:

Shell

 

5. 첫 번째 애플리케이션 배포

단계 1: 애플리케이션 생성

Argo CD UI에서:

  1. 새 앱을 클릭합니다.
    • 앱 이름: nginx-app
    • 프로젝트: default
    • 저장소 URL: 귀하의 Git 저장소 URL
    • 경로: deployment.yaml의 경로
    • 클러스터 URL: https://kubernetes.default.svc
    • 네임스페이스: default

단계 2: 애플리케이션 동기화

앱을 만든 후:

  1. Argo CD UI에서 동기화를 클릭하세요.
  2. 앱이 Kubernetes 클러스터로 배포되는 것을 확인하세요.

6. 배포 자동화

단계 1: 자동 동기화 활성화

지속적인 동기화를 활성화하세요:

Shell

 

단계 2: 변경 사항 테스트

  1. Git의 deployment.yaml을 수정하세요.
  2. 변경 사항을 저장소에 푸시하세요.
  3. Argo CD가 변경 사항을 감지하고 자동으로 클러스터로 동기화합니다.

7. 모니터링 및 문제 해결

단계 1: 애플리케이션 상태 모니터링

UI에서 확인하세요:

  • 건강: 응용 프로그램이 기대대로 작동하는지를 나타냅니다.
  • 동기화 상태: 클러스터 상태가 Git과 일치하는지 확인합니다.

단계 2: 로그 보기

문제가 발생하면:

Shell

 

단계 3: 변경 내용 롤백

이전 상태로 롤백:

Shell

 

8. Argo CD 보안

단계 1: 기본 관리자 비밀번호 변경

명령어 argocd account update-password를 사용하여 기본 관리자 비밀번호를 변경하십시오:

Shell

 

단계 2: SSO 통합

프로덕션 환경에서는 GitHub 또는 LDAP와 같은 단일 로그인(SSO) 솔루션과 통합합니다.

GitOps Best Practices

  1. 브랜치 전략: 개발, 스테이징 및 프로덕션용으로 별도의 브랜치를 사용합니다.
  2. 코드 리뷰: 매니페스트 변경에 대한 동료 검토를 강제합니다.
  3. 감사 로그: 규정 준수 및 디버깅을 위해 Argo CD 로그를 정기적으로 검토합니다.

결론

Argo CD는 GitOps 원칙을 사용하여 Kubernetes 배포를 효율적으로 관리하는 초보자 친화적이면서 강력한 방법을 제공합니다. 이 워크샵은 응용 프로그램을 효율적으로 배포, 모니터링 및 관리할 수 있는 기술을 제공합니다. 이러한 관행을 준수함으로써 Kubernetes 지속적인 전달을 숙달하는 길에 올라설 것입니다.

Source:
https://dzone.com/articles/deploying-applications-in-kubernetes-with-argo-cd