1️⃣ ArgoCD란? ArgoCD에 관한 공식적인 설명은 다음과 같다. Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. 한 마디로 쿠버네티스에 사용되는 선언적인 GitOps CD 툴이라는 의미다. GitOps는 Git을 활용하여 DevOps를 Git 환경으로 수행하는 것을 의미한다. 예를 들어 GitOps 파이프라인들은 다음과 같은 것들이 있다. 구성을 보면 대부분 개발 -> 레포지터리 반영 -> CI(테스트, 빌드 등) -> CD(이미지 빌드 및 전달, 애플리케이션 배포)의 과정을 거친다. 여기서 ArgoCD가 Kubernetes에 변경 사항을 업데이트하고 배포하는 과정을 담당하는 도구로 동작하는 것으로 이해했다. 2..
데브옵스 & 인프라/Kubernetes
최근에 쿠버네티스를 통해 간단히 파드로 서버를 띄워야 하는 일이 있었다. 오랜만에 쿠버네티스를 사용해보는 것이라 서버 자체는 빠르게 띄웠는데, 외부에서 접속하는 방법을 잊어버려서 조금 헤맸다. 그래도 minikube를 사용하니까 쉽게 웹 브라우저나 curl 명령어로 요청/응답이 가능했다. 하지만, LoadBalancer 타입의 Service 오브젝트를 실행하면서 의문이 들었었다. 분명 External IP, targetPort도 잘 지정이 되었는데 막상 로컬 환경에서는 접근이 불가했던 것이다. 구글링하면서 문제를 확인하고 나름 해결했는데 회고하는 겸 서버 띄우는 과정들 및 원인, 이를 해결하는 방법들을 공유해보고자 한다. 혹시 이 게시물이 도움이 될 수 있는 사람이 한 사람이라도 있지 않을까? Mini..
서비스 쿠버네티스에서는 서비스라는 개념이 있습니다. 일반적인 서비스의 의미와는 다르게, 외부에서 쿠버네티스 클러스터에 접속하는 방법을 서비스라고 합니다. 노드포트 노드포트는 외부에서 쿠버네티스 클러스터에 접근할 수 있는 방법입니다. 노드포트는 워커 노드의 특정한 포트를 설정하여 그 포트에 들어오는 요청이 노드포트 서비스로 전달이 됩니다. 그리고 사용자의 요청을 처리할 수 있는 파드에 요청을 전달하여 사용자가 클러스터 내부에 접근할 수 있도록 하는 것입니다. 간단하게 하청을 보내는 중간자 역할을 하는 서비스입니다. 하나의 파드를 만들어둔 후에 오브젝트 스펙을 사용하여 노드포트 서비스를 생성합니다. apiVersion: v1 kind: Service metadata: name: np-svc spec: sel..
파드 생성 컨테이너를 담을 파드를 생성합니다. 그런데 파드를 만드는 데는 2가지 방법이 있습니다. 먼저 첫 번째 방법입니다. kubectl run [파드명] --image=[이미지명] 이렇게 해서 파드를 생성한 다음에 파드가 잘 생성되었는지 확인합니다. kubectl get pods 다음 방법입니다. run이 아니라 create를 통해서 파드를 생성하는 것입니다. kubectl create deployment [파드명] --image=[이미지명] 동일하게 파드 생성을 확인합니다. kubectl get pods 그런데 둘은 동일하게 파드를 생성하는데 왜 명령어를 굳이 2개나 사용할까요? 디플로이먼트 둘의 차이는 바로 디플로이먼트입니다. run을 통해 생성한 파드는 디플로이먼트가 없으며, create dep..