Argo CD를 사용하여 GitOps 검색

본고는 GitOps를 간략하게 소개하고 Argo CD를 개괄하는데 이것은 GitOps 방법을 실현하는 기원 프로젝트이다.우리는 Promyze에서 Argo CD 실험을 진행할 기회가 있기 때문에 귀하와 우리의 견해를 공유하고 싶습니다.

❓ GitOps란 무엇입니까?


GitOps는 WeaveWorks가 2017년에 제기한 개념으로 그 핵심 사상은 Git 저장소의 인프라 시설 상태를 묘사하는 것이다.Git는 유일한 진리의 원천이다.
Kubernetes를 사용하고 수십 개의 YAML 파일을 가지고 계십니까?아마도 당신은 Helm을 사용하여 당신의 프로그램을 도표로 배치할 수 있을 것입니다.이제 모든 구성 파일이 Git 저장소에 저장된다고 가정합니다.
개발자가 응용 프로그램의 소스 코드를 수정할 때마다 단원 테스트, 패키지, 마지막으로 새로운 Docker 이미지를 전송하는 기존의 지속적인 통합 과정을 수행한다.새 Docker 이미지가 준비되었으며 Git의 인프라 구성을 패치하여 CI 파이핑이 종료됩니다.
마지막으로 GitOps 도구는 Git repo의 변경 사항을 감청하여 현재 배치와 Git의 설정 사이의 증가량을 식별하고 생산에서 수정을 적용합니다.따라서 이 조작원은 사용자 환경에서 변경을 실행할 수 있는 유일한 실체입니다.
다음은 GitOps 워크플로우의 개요입니다.

자료 출처: 시파.목위일

✨ GitOps의 이점


GitOps 워크플로우를 사용하면 다음과 같은 여러 가지 이점이 있습니다.
  • 은 Git를 하나의 실제 소스 코드로 사용하여 모든 CLI 또는 웹 인터페이스를 통해 수동으로 작업할 때 오류가 발생할 위험을 줄입니다.운영 환경의 모든 수정 사항은 Git에서 제출합니다.
  • 은 배포 환경에 대한 변경 사항이 Git에 기록되어 있습니다. 변경 사항이 무엇인지, 변경 시기, 변경 이유를 알고 있습니다(메시지 제출 덕분).인프라의 문서로 간주할 수 있습니다.모든 변경 사항을 보고 풀 요청을 통해 확인하는 것은 매우 쉽다.
  • 신규 구축 후 문제가 발생하여 이전 버전으로 복구해야 합니까?매우 간단합니다. 마지막으로 제출한 프로그램을 복원하고 스크롤합니다.
  • 은 Git의 구성과 실제 환경에 배치된 구성의 차이를 살펴봅니다.그래서 매번 재배치하기 전에 무슨 변화가 생겼는지 알아요.
  • 🔎 탐색 Argo CD


    Argo CD은 Kubernetes의 성명식 GitOps 연속 교부 도구입니다.이것은 클라우드 컴퓨팅 원생 기금회의 일부분이다.이제 Argo CD를 통해 애플리케이션을 배포하는 방법에 대한 빠른 프레젠테이션을 제공합니다.

    설치 프로그램


    Argo CD를 설치하는 방법을 설명하고 Kubernetes 클러스터 외부에 공개하는 Getting Started 섹션을 설명합니다.
    $> kubectl create namespace argocd
    $> kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
    

    기본 암호 가져오기


    시작 화면에 처음 들어가면 로그인/암호가 표시됩니다.기본 로그인 이름은 admin입니다.암호를 검색하려면 다음 명령을 실행해야 합니다.
    $> kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
    
    문서는 이 암호를 업데이트하는 방법을 설명합니다.

    첫 번째 프로젝트 구성


    왼쪽 메뉴에서 저장소, 프로젝트, 설정 관리 항목을 선택합니다.

    먼저 저장소를 추가합니다(물론 사용자의 저장소를 사용합니다).

    내가 사용한 것은 몇몇 도표를 포함하는 공공 도표이다.이제 wordpress라는 새 프로젝트를 추가합니다.소스 저장소를 추가하고 있습니다.

    우리는 또 이 프로젝트를 위해 가능한 목적지를 추가해야 한다.이 예에서, 우리는 이 강좌를 위한 'dev' 명칭 공간을 사용할 것입니다.

    이제 주 메뉴로 돌아가서 새 응용 프로그램을 만듭니다.
  • 이전에 만든 항목 선택
  • 브로셔
  • 으로 정책 동기화 설정
  • 은 Git 파일이 들어 있는 저장소를 선택하고 경로 및/또는 Git 분기를 동기화하도록 설정합니다.키 맵의 경우 사용할 값을 지정합니다.
  • 애플리케이션을 확인하고 동기화 를 클릭합니다.배포된 모든 K8S 구성 요소를 볼 수 있습니다.참고로 UI는 매우 멋있습니다.

    재배치의 예


    이 예에서, 우리는 현재 우리가 사용하고 있는WordPress 버전을 업그레이드하려고 한다.Docker 이미지 태그를 업데이트합니다.

    이제 아르고에게 무슨 일이 일어났는지 봅시다.새로 고침 버튼을 클릭하면 Git pull 작업이 강제로 수행되지만 이 외에도 감지되는 데 몇 초/분 정도 소요됩니다.이렇게 하면 새 커밋이 감지되고 애플리케이션이 동기화되지 않음으로 표시됩니다.

    Diff 를 클릭하면 Git 저장소에 구축된 컨텐츠와 구성의 차이점을 확인할 수 있습니다.

    "동기화"를 클릭하면 Argo가 애플리케이션을 재배치합니다.🚀
    응용 프로그램의 자동 동기화 및 배치를 선택할 수 있습니다.만약 당신이 매일 새로운 수정을 추진하고 있다면 이것은 개발 환경에서 의미가 있다.항목을 편집하고 자동 동기화 사용 을 클릭해야 합니다.
    아고 CD투어는 여기서 마치겠습니다.이 도구는 매우 직관적이어서 광범위한 기능을 제공하지 않는다.그것은 곧장 목표를 향해 갔다.

    🔣 동일한 애플리케이션의 여러 환경 처리


    응용 프로그램에 서로 다른 환경을 제공하는 것은 매우 흔히 볼 수 있는 것이다. 개발, 등장, 생산...Argo CD는 어떠한 GitOps와 마찬가지로 이러한 상황에 대응하기 위해 설계되었습니다.Argo CD를 사용하여 각 환경에 대해 별도의 응용 프로그램을 만들도록 선택했습니다.
    프로그램마다 항목을 만들 수 있습니다.응용 프로그램을 만드는 방식은 기초 구조 설정에 달려 있습니다.Git 저장소에서 서로 다른 지점을 사용하고 개발 환경에서 등장에 이르기까지 변경 사항을 적용하고 생산 환경에 적용할 때 요청 메커니즘을 적용하는 방법이 포함된다.Helm 또는 템플릿 모듈을 사용하면 환경의 모든 값을 포함하는 YAML의 특정 파일:values-dev.YAML,values staging을 사용할 수 있습니다.yaml,values-prod.yaml...

    ✏️ CI/CD 동안 인프라 패치


    우리의 환경에서, 우리는 십여 개의 마이크로 서비스를 가지고 있으며, 각각 자신의 Docker 이미지와 독립된Git 소스 코드 저장소를 가지고 있다.Kubernetes 인프라에 대한 설명은 Git 저장소에 있습니다.우리가 직면한 도전은 제출할 때마다 매일 개발 환경에서 응용 프로그램을 재배치해야 한다는 것이다.그러나 Docker 이미지 이름은 제출할 때마다 변경되지 않기 때문에 GitOps 조작부호가 변경되었음을 알리는 방법을 찾아야 합니다.
    Google 정책은 모든 K8S 배치 요소에 메타데이터를 사용하고 Docker 이미지를 구축하는 Git commit (마이크로 서비스) 에 대응하는 탭을 가지고 있습니다.예를 들면 다음과 같습니다.
    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        app: analyzer
        commit: 06d604bad53b
    
    Jenkins의 CI 과정 중 (당신은 어떤 도구를 사용할 수 있지만), 우리는 스크립트 yq을 사용하여 제출 ID로 Git 저장소를 수리합니다. 따라서, 매번 CI가 구축된 후에 Git 인프라를 수리합니다.
    이것은 우리의 요구에 부합되기 때문에 우리는 이 과정을 보류했다.이 상황을 처리하는 데 틀림없이 더 적합한 방법이 있을 것이다. 언제든지 댓글에 당신이 어떻게 했는지 알려주세요.)
    🤗 이 사람들만!GitOps가 무엇인지, 그리고 배포를 관리하는 데 얼마나 강한지 이제 알아두시기 바랍니다.우리는 Promyze에서 받은 피드백이 매우 적극적이다.만약 당신이 Argo CD를 사용할 기회가 있다면, 우리는 기꺼이 당신의 피드백과 생각을 받을 것입니다.

    좋은 웹페이지 즐겨찾기