본문 바로가기

전체 글22

gRPC 개요가끔 테크블로그를 보다보면 gRPC를 자주 보게되어서 만들어보고 싶어졌다! 어느 날 누워서 테크블로그를 보다가 우연치않게 gRPC 포스팅을 보게되었다.. 사실 개발쪽으로는 정말 문외한인 나(REST API 개발도 끙끙대면서 하고있음..)에게 많은 기업에서 gRPC로 통신하는 MSA 환경을 구축하고 있다는 정보를 입수하여 하루빨리 해봐야겠다고 생각했다 ㅠ정말 정말 작은 프로젝트이지만 gRPC로 한번 해보자.. (안해보는것보다 해보는게 낫지)gRPC란?gRPC는 구글(Google)에서 시작한 오픈소스이며, '원격 프로시저 호출(RPC, Remote Procedure Calls)'을 위한 시스템입니다.특징은 다음과 같다고 합니다.gRPC는 HTTP/2 기반의 RPC Framwork 입니다.gRPC는 Pro.. 2025. 1. 12.
GitLab 설치 개요기존에 CI 툴로 Jenkins를 주로 사용했었는데 이번에 GitLab Runner를 사용해보고 싶어 GitLab을 먼저 설치를 진행. kind에서 설치했던 Helm Chart를 가지고 VKE에 설치해야겠다.GitLab 설치GitLab Helm Chart (7.0.4)Helm Repo 추가하기GitLab Helm Repo를 추가 후 업데이트 진행하기.$ helm repo add gitlab https://charts.gitlab.io/$ helm repo update특정 버전의 Helm Chart 받기.$ helm pull gitlab/gitlab --version 7.0.4$ tar xvfz gitlab-7.0.4.tgz$ vi gitlab-7.0.4/values.yamlgitlab-values.y.. 2025. 1. 12.
인증서를 무료로 관리해보자(Cert-manager + Let’s Encrypt) 💡 해당 내용은 Cert-Manager와 let’s encrypt를 사용하여 적용하는 내용입니다. DNS는 가비아(유료)를 사용하고 있습니다.Cert-Manager란?Cert-Manager는 Kubernetes 환경에서 SSL/TLS 인증서를 자동으로 발급, 갱신, 관리하는 오픈소스 도구입니다. (https://cert-manager.io/docs/)자동화된 인증서 관리: 인증서의 발급, 갱신, 사용을 자동화하여 수동 관리의 번거로움을 줄입니다. (3개월마다 갱신됩니다.)다양한 인증 기관 지원: Let's Encrypt, HashiCorp Vault, Venafi 등 여러 인증 기관과 통합됩니다.Kubernetes 네이티브: Kubernetes의 CustomResourceDefinitions(CRDs).. 2025. 1. 12.
VKE - Vultr Kubernetes Engine 💡 개인 프로젝트 용도로 사용할 수 있는 관리형 쿠버네티스를 찾아보자..!개요저렴하고 안전한 관리형 쿠버네티스를 찾아보자!!로컬 쿠버네티스(Kind)를 MacBook에서 구동하던 중 오픈 소스가 점점 많아짐에 따라 리소스 부족이 발생했다…외부에서 작업할 때 MacBook이 없으면 집에 가서 설치를 진행해보곤 하는데 너무 번거로웠다.사실 집에 도착하면 자동으로 눕게되는 것도 한몫했다..그래서 이 참에 외부 관리형 쿠버네티스 서비스를 합리적으로 이용할 수 있는 업체를 찾아서 이용해보기로 결정!관리형 쿠버네티스 서비스개인이 사용하기에 EKS는 비싼것같다.. ㅠ종류먼저 크게 관리형 쿠버네티스 서비스를 떠올리면 3사가 있다.AWS의 EKS (Elastic Kubernetes Service)GCP의 GKE (Go.. 2025. 1. 12.
kind(Kubernetes in Docker) 개요맥북에서 로컬 클러스터를 구축하는데 k3s, kind 중에서 어떤걸 사용할까 고민하다 kind로 결정했다.AWS를 사용하기에는 너무 비용이 많이 들어서 로컬 클러스터에서 작업해야겠다.kind(Kubernetes in Docker)란?https://kind.sigs.k8s.io/kind는 Docker 컨테이너 노드를 사용하여 로컬 Kubernetes 클러스터를 실행하기 위한 도구이다.go(1.16+) + docker / podman이 설치되어 있으면 사용이 가능하다.Go 설치하기 (Mac)Brew를 통해서 go를 설치한다.$ brew update$ brew install gogo version 확인해서 정상적으로 설치되었는지 확인한다.$ go versiongo version go1.22.2 darwin.. 2025. 1. 12.
Kubernetes Workload Resources(Daemonset) 쿠버네티스의 대표적인 워크로드 리소스인 Daemonset(데몬셋)을 살펴보는 섹션입니다 :) Daemonset - 데몬셋 먼저 쿠버네티스의 공식문서를 통해서 Daemonset의 정의를 살펴보겠습니다. "데몬셋 은 모든(또는 일부) 노드가 파드의 사본을 실행하도록 한다. 노드가 클러스터에 추가되면 파드도 추가된다. 노드가 클러스터에서 제거되면 해당 파드는 가비지(garbage)로 수집된다. 데몬셋을 삭제하면 데몬셋이 생성한 파드들이 정리된다." 해당 내용을 살펴보면, 디플로이먼트(Deployment)와 스테이트풀셋(Statefulset)과 달리 노드별로 하나씩 동일한 파드를 구성하게 해주는 워크로드 리소스로 해석됩니다. 데몬셋(Daemonset)은 노드별로 하나의 파드가 배치되기 때문에 replicas를 .. 2023. 12. 3.
Kubernetes Workload Resources(Statefulset) 쿠버네티스의 대표적인 워크로드 리소스인 Statefulset(스테이트풀셋)을 살펴보는 섹션입니다 :) Statefulset - 스테이트풀셋 먼저 쿠버네티스의 공식문서에 따르면 Statefulset은 다음과 같이 정의되어 있습니다. "스테이트풀셋은 애플리케이션의 스테이트풀을 관리하는데 사용하는 워크로드 API 오브젝트이다.""파드 집합의 디플로이먼트와 스케일링을 관리하며, 파드들의 순서 및 고유성을 보장한다." "디플로이먼트와 유사하게, 스테이트풀셋은 동일한 컨테이너 스펙을 기반으로 둔 파드들을 관리한다. 디플로이먼트와는 다르게, 스테이트풀셋은 각 파드의 독자성을 유지한다. 이 파드들은 동일한 스팩으로 생성되었지만, 서로 교체는 불가능하다. 다시 말해, 각각은 재스케줄링 간에도 지속적으로 유지되는 식별자를.. 2023. 12. 3.
Kubernetes Workload Resources(Deployment, Replicaset) 쿠버네티스의 대표적인 워크로드 리소스인 Deployment(디플로이먼트), Replicaset(레플리카셋)를 살펴보는 섹션입니다 :)해당 섹션에서 사용하는 Kubernetes 중요한 개념 중 하나인 "선언형 접근"에 대해서 먼저 살펴보겠습니다. "선언형 접근"과 반대되는 개념인 "명령형 접근"이 있습니다. kubectl 명령어를 통해서 구분하자면 "kubectl apply" vs "kubectl create"의 차이점입니다. ! "선언형 접근 (kubectl apply)"는 프로그램에게 무엇을 요구하는지에 초점이 맞춰져 있습니다. yaml 파일에 필요한 리소스와 리소스의 속성 등 사용자가 무엇을 원하는지 시스템 상태를 정의하면, 프로그램은 해당 상태를 유지하기 위해 스스로 구성을 변경하거나 설정합니다.. 2023. 11. 27.
Jenkins Offline 설치 0. Jenkins 란? 젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스(CI)를 제공하는 툴입니다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 저장소(Git, Bitbucket ...) 에 업로드함으로써 지속적 통합이 가능하도록 합니다. 젠킨스의 이점은 다음과 같습니다. 각종 배치 작업의 간략화 Build 자동화의 확립 자동화 테스트 코드 표준 준수여부 검사 빌드 파이프라인 구성 1. 구성 요소 및 Jenkins 설치 파일 다운로드 버전 Ubuntu (OS) 18.04 (x64) Jenkins 2.387.2 Java 11 설치할 Jenkins 버전(2.387.2)은 Java 11 버전을 필요로 합니다. 2.357 버전 이전은 Jav.. 2023. 4. 15.
Nexus Repository 설치 0. Nexus Repository 란? Nexus Repository는 Maven에서 사용할 수 있는 오픈소스 Repository 중 하나입니다. 외부 Repository에 접근하기 어려운 경우 Nexus Repository를 사용하여 사내 Repository로 사용할 수 있으며, 팀에서 공통으로 사용하는 라이브러리를 Nexus Repository에 업로드하여 팀간의 공유할 수 있습니다. Nexus Repository는 Docker, Helm 같이 다양한 종류도 지원합니다. 1. 구성 요소 및 Nexus Repository 설치 파일 다운로드 Nexus Repository 설치에 진행한 구성 요소는 다음과 같습니다. 버전 Ubuntu (OS) 18.04 (x64) Nexus 3.45.0-01 Java .. 2023. 4. 15.