데이터 플랫폼 업무를 진행하면서, infra에는 kubernetes를 사용하고 있습니다.
현재 운영중인 환경에는 argocd가 구축되어 있지 않아, 도입하면 좋겠다는 생각이 들어 argocd에 대해서 이야기해보려고 합니다.
먼저 argocd의 공식 문서 입니다.
argocd는 선언적(declarative)이며 gitops로 gitlab 혹은 github와 연동하여 사용할 수 있습니다.
저희는 kubernetes에 올라가있는 서비스를 yaml 파일이나, helm으로 관리하고 있습니다.
여러 사람이 관리하다보니, 수정한 파일 최신인지, 현재 띄워져있는 서비스가 내가 보고있는 yaml 혹은 helm으로 띄운것인지 이런 것들을 쉽게 파악하기가 힘들었습니다.
argocd를 도입하여 yaml, helm 같은 문서를 github 혹은 gitlab에 올려서 관리하고,
그것을 이용하여 띄운 서비스(pod, deployment, svc etc..)를 한눈에 확인할 수 있습니다.
설치
저는 helm chart를 이용하여 argocd를 k8s에 설치했습니다.
먼저 argocd에서 지원하는 helm repo 추가하였습니다.
폐쇄망의 환경이라면 직접 helm chart를 다운로드 받아서 사용할 수도 있습니다.
실제 운영환경에서는 폐쇄망이기 때문에 여러서비스들은 수동으로 설치하여 진행합니다.
helm chart를 pull하여 문서로 관리할 수 있도록 하였습니다.
해당문서를 사내의 gitlab, github올려서 관리할예정입니다.
저는 values-override.yaml 파일을 만들어서 기본 values.yaml에 override해서 사용하고 있습니다.
values-override.yaml파일만 보고 value.yaml을 보지 않아도 어떤 것을 수정했는지 확인할 수 있습니다.
현재 적용한 환경은 폐쇄망이 아니기 때문에 Nodeport만 추가하였습니다.
만약 폐쇄망이라면 받아올 image repo, Secret 등 환경에 맞게 세팅하여 진행해야 합니다.
helm install를 이용하여 value-override.yaml 파일로 k8s에 argocd를 띄웠습니다.
Nodeport는 기본 30080, 30443을 지원하여 그대로 사용하였습니다.
argocd 접속 및 확인
현재 환경의 IP와 30080으로 접속하여, argocd가 띄워진 것을 확인했습니다.
초기 ID는 admin이며,
PW는 아래처럼 확인할 수 있습니다.
arocd에서 초기에 제공하는 admin secret을 통하여 알 수 있습니다.
secret이 가장 일반적으로 제공하는 Opaque을 확인할 수 있습니다. base64로 인코딩되어 있으며 마찬가지로 base64로 디코딩할 수 있습니다.
각 환경에 맞는 초기 비밀번호를 확인하고, Argocd에 접속 할 수 있습니다.
저는 이전에 테스트했던 서비스들이 올라가있습니다.
오른쪽에 User Info로 들어가 현재 접속한 ID(admin)의 비밀번호를 변경할 수 있습니다.
Argocd CLI
argocd는 위에서 보았던 것처럼 UI는 물론 CLI로 관리할 수 있습니다.
다음은 Argocd CLI를 설치하는 공식 문서입니다.
'인프라' 카테고리의 다른 글
[Docker] 폐쇄망 환경에서 Docker 설치 (2) | 2024.11.26 |
---|