ArgoCD 20

ArgoCD 6편 - Sync 설정

안녕하세요. 이 글은 ArgoCD시리즈입니다. git에 의도된 상태를 쿠버네티스 클러스터에 동기화 할 때, 필요한 개념과 자주 사용하는 기능을 설명합니다. 영상: https://youtu.be/XBcoj3-pjDA 1. Refresh Period 1.1 개념 argocd는 default 설정으로 3분(180초)마다 git과 현재상태를 비교합니다. 이 주기를 Period 시간(time)이라고 합니다. 3분마다 차이를 비교하는 것은 운영단계에서 매우 중요합니다. git의 업데이트 내용이 바로 반영이 안되는 상황이 발생합니다. 최악은 3분을 대기해야 합니다. 1.2 Period 시간 수정 helm으로는 values.yaml을 오버라이딩해서 수정할 수 있고 yaml파일로 배포했다면 Argo Controller ..

연재 시리즈 2022.08.16

ArgoCD 5편 - project

안녕하세요. 이 글은 ArgoCD시리즈입니다. 이번 시간에는 ArgoCD Application을 관리하는 project를 설명합니다. 영상: https://youtu.be/7QD6llN-WPo?t=270 1. Project란? project는 argocd가 관리하는 논리적 그룹이고 application을 관리합니다. 사용자가 생성한 application은 무조건 project에 속합니다. helloworld 예제(https://malwareanalysis.tistory.com/405#head1)를 실습할 때는 default project를 선택했습니다. argocd를 설치하면 쿠버네티스 default namespace처럼 default project가 존재합니다. 그러므로 별도로 project를 생성하지..

연재 시리즈 2022.08.14

ArgoCD 4편 - Application

안녕하세요. 이 글은 ArgoCD시리즈입니다. 이번 시간에는 ArgoCD의 최소 단위인 Application을 설명합니다. 영상: https://youtu.be/7QD6llN-WPo?t=15 1. Application이란? helloworld 예제 실습과정 기억나신가요? git정보와 쿠버네티스 클러스터를 입력했었습니다. 저희가 입력한 정보는 application CRD로 생성되고 argocd가 관리하게 됩니다. $ kubectl -n argocd get application argocd는 application이라는 단위로 배포할 리소스를 관리합니다. application은 쿠버네티스 CRD로서 argocd를 설치하면 자동으로 CRD가 생성됩니다. $ kubectl get crd | grep applica..

연재 시리즈 2022.08.13

ArgoCD 3편 - helloworld

안녕하세요. 이 글은 ArgoCD시리즈입니다. 이번 시간에는 nginx pod와 nginx service를 ArgoCD로 배포해보겠습니다. 영상: https://youtu.be/efBlfbCMRfs - YouTube www.youtube.com 1. 생성 왼쪽 위에 있는 [new APP]버튼을 클릭합니다. 아래 그림과 같이 ①, ②, ③필드를 설정합니다. ①, ②, ③번에 대한 자세한 내용은 다른 글에서 다룹니다. ArgoCD가 동기화 할 git정보를 선택합니다. 제 github repo의 main브랜치를 사용했습니다. helloworld 예제에 사용할 폴더는 example-1입니다. git url: https://github.com/choisungwook/argocd-practice.git 그 다음, ..

연재 시리즈 2022.08.13

ArgoCD 2편 - 설치

안녕하세요. 이 글은 ArgoCD시리즈입니다. 설치 튜토리얼 공식문서 설치방법을 준수했습니다. argocd namespace를 생성하고 공식 yaml을 kubectl apply로 생성했습니다. yaml파일 말고도 helm 설치 방법도 제공합니다 kubectl create namespace argocd kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml 튜토리얼 설치 방법은 연습을 위해 설정이 되어 있으므로 운영에서 사용할 때는 설정을 검토해야 합니다. 그리고 운영환경은 안전성을 위해 고가용 설정이 필요합니다. 설치 확인 argocd 컴퍼넌트와 DB(redis)가 p..

연재 시리즈 2022.08.12

ArgoCD 1편 - 컨셉과 장단점

안녕하세요. 이 글은 ArgoCD시리즈입니다. 영상: https://youtu.be/cLgzqc_hwIg 1. 컨셉 ArgoCD는 공식문서 소개처럼 쿠버네티스를 위한 GitOps도구입니다. GitOps는 Git과 Operations의 합성어인데요! 현재 쿠버네티스 상태를 git으로 관리하는 문화입니다.즉, 쿠버네티스에 배포하려고 하는 상태를 Git에 저장하면 ArgoCD가 git에 있는 내용을 쿠버네티스 배포합니다. git에 저장되어 있는 내용은 쿠버네티스 사용자가 의도된 상태(Desired state)로 취급됩니다. 쿠버네티스 declarative와 동일한 개념입니다. ArgoCD는 의도된 상태를 쿠버네티스에 동기화하려면 조건이 필요합니다. 현재 상태와 의도된 상태와 차이가 있어야 합니다. 예를 들어 ..

연재 시리즈 2022.08.12