Argo CD를 사용하여 GitOps 검색
7122 단어 devopsdockerkubernetesgitops
❓ GitOps란 무엇입니까?
GitOps는 WeaveWorks가 2017년에 제기한 개념으로 그 핵심 사상은 Git 저장소의 인프라 시설 상태를 묘사하는 것이다.Git는 유일한 진리의 원천이다.
Kubernetes를 사용하고 수십 개의 YAML 파일을 가지고 계십니까?아마도 당신은 Helm을 사용하여 당신의 프로그램을 도표로 배치할 수 있을 것입니다.이제 모든 구성 파일이 Git 저장소에 저장된다고 가정합니다.
개발자가 응용 프로그램의 소스 코드를 수정할 때마다 단원 테스트, 패키지, 마지막으로 새로운 Docker 이미지를 전송하는 기존의 지속적인 통합 과정을 수행한다.새 Docker 이미지가 준비되었으며 Git의 인프라 구성을 패치하여 CI 파이핑이 종료됩니다.
마지막으로 GitOps 도구는 Git repo의 변경 사항을 감청하여 현재 배치와 Git의 설정 사이의 증가량을 식별하고 생산에서 수정을 적용합니다.따라서 이 조작원은 사용자 환경에서 변경을 실행할 수 있는 유일한 실체입니다.
다음은 GitOps 워크플로우의 개요입니다.
자료 출처: 시파.목위일
✨ GitOps의 이점
GitOps 워크플로우를 사용하면 다음과 같은 여러 가지 이점이 있습니다.
🔎 탐색 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' 명칭 공간을 사용할 것입니다.
이제 주 메뉴로 돌아가서 새 응용 프로그램을 만듭니다.
재배치의 예
이 예에서, 우리는 현재 우리가 사용하고 있는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를 사용할 기회가 있다면, 우리는 기꺼이 당신의 피드백과 생각을 받을 것입니다.
Reference
이 문제에 관하여(Argo CD를 사용하여 GitOps 검색), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/promyze/discover-gitops-with-argo-cd-3nne텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)