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..
k8s
최근에 쿠버네티스를 통해 간단히 파드로 서버를 띄워야 하는 일이 있었다. 오랜만에 쿠버네티스를 사용해보는 것이라 서버 자체는 빠르게 띄웠는데, 외부에서 접속하는 방법을 잊어버려서 조금 헤맸다. 그래도 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..