본문 바로가기
반응형

개발 이야기/Kubernetes14

telepresence intercept 사용해서 로컬머신에서 디버깅 쿠버네티스 클러스터를 개발환경으로 사용하고 있다면telepresence intercept 기능을 한번쯤 들어봤을 것입니다.이번 포스팅에서는 intercept 기능을 간단하게 사용해보고 정리합니다. 목차1. Intercept?telepresence intercept는 쿠버네티스 클러스터에서 실행 중인 서비스의 트래픽을로컬 개발 환경으로 리다이렉션하는 기능입니다.특정 서비스만 선택적으로 가로챌 수 있고, 로컬에서 디버깅 및 수정 테스트를 실시간에 가깝게 해볼수 있습니다.서비스 간 의존성을 감안해서 개발했다면, MSA 환경에서 이만한 개발도구가 없을 것으로 보입니다. 2. CLI먼저 대상 서비스를 확인하고아래 명령어를 통해 트래픽을 로컬 환경으로 가로챌 수 있습니다.telepresence intercept .. 2024. 11. 3.
unknown service telepresence.pro.manager.ProManager 대처 어느 날 맥북에서 telepresence를 통한 로컬 환경 디버깅을 하려고 하는데연결이 되지 않았습니다.흠 Windows 에서는 문제 없이 되었었는데, 맥OS(m2)에서 안됬기 때문에처음부터 다시 설치 해보고 이것저것 해보다가 해결하여 포스팅합니다. 목차1. 연결 시 에러 발견~ telepresence connecttelepresence connect: error: connector.Connect: rpc error: code = Unimplemented desc = unknown service telepresence.pro.manager.ProManager telepresence.pro.manager.ProManager 가 눈에 띕니다.telepresence 상용버전에 대한 기능 제한일 가능성이 있습니.. 2024. 11. 3.
우분투에 k3s 설치하는 방법 k3s는 경량 k8s라고 보면됩니다.가벼워서 리소스 사용량도 적고, 실제 쿠버네티스와도 비슷합니다.또한 설치가 간편하여서 쿠버네티스 학습에 좋을 것 같습니다.이번 포스팅은 Ubuntu 22.04에 k3s를 설치하는 방법을 정리합니다. 목차1. 대상 서버에 접근대상 서버는 이미 구축되어있다고 가정합니다.putty나 ssh를 이용해 접근합니다.$ ssh 유저명@123.123.123.123 # 실제 ip를 입력 2. 간단 설치$ curl -sfL https://get.k3s.io | sh -[sudo] password for usss1:[INFO] Finding release for channel stable[INFO] Using v1.30.5+k3s1 as release[INFO] Downloadi.. 2024. 10. 3.
Kubernetes ConfigMap with Springboot 현업에서 Kubernetes 환경에 서버를 띄운다면Configuration의 외부화는 필수적입니다.당장에 생각나는건 아래와 같은 측면에서 유리하다고 볼 수 있을 것 같습니다.민감 정보에 대한 보안 유지환경마다 다른 변수와 애플리케이션 코드 디커플링빠른 로컬 환경 구성이번 포스팅에서는 쿠버네티스의 ConfigMap을 활용하여애플리케이션의 환경변수를 외부화 하는 방법을 정리합니다. 목차1. 기본 사용법# configmap.ymlapiVersion: v1kind: ConfigMapmetadata: name: api-server-configdata: DATASOURCE_USERNAME: "root" DATASOURCE_PASSWORD: "1234"먼저 ConfigMap은 위와 같이 구성해 볼 수 있습니다... 2024. 4. 10.
Telepresence 사용해보기 Telepresence는 MSA구조의 프로젝트에서 애플리케이션을 로컬에서 개발하기 위한 도구입니다. 개발자들이 Kubernetes cluster에서 서비스를 로컬 컴퓨터에서 실행하여 디버깅 및 테스트를 쉽게 할 수 있게 합니다.즉, Cluster내에서만 접근 가능한 마이크로 서비스들을 로컬에서 쉽게 접근 할 수 있습니다.이번 포스팅에서는 Telepresence로 로컬에 설치된 Kubernetes Cluster(Minikube) 연결해보겠습니다.목차1. Telepresence 설치설치는 공식 홈페이지에 있는 문서를 참고하면 됩니다. 저는 Mac(M2) 랩탑이라서 아래와 같이 설치해줬습니다.# 다운로드~ sudo curl -fL https://app.getambassador.io/download/tel2o.. 2024. 4. 3.
Kubernetes CronJob 실행 해보기 CronJob은 특정 잡을 주기적으로 실행 시킬 때 사용합니다.주기적으로 파드를 띄워 프로그램을 실행/종료를 반복합니다.이번 포스팅에서는 간단한 Cronjob을 실행해봅니다.목차1. cronjob.yml 작성apiVersion: batch/v1kind: CronJobmetadata: name: hellospec: schedule: "* * * * *" jobTemplate: spec: template: spec: containers: - name: hello image: busybox args: - /bin/sh - -c - date; echo.. 2024. 3. 30.
Kubernetes HPA 설정하기 HPA는 Horizontal Pod Autoscaler를 뜻합니다.워크로드에 따라 파드의 수평 확장/축소을 담당합니다.최소 파드 수와 최대 파드 수를 설정하고, CPU 및 메모리의 사용량을 디플로이먼트에 기입하여야 합니다.이번 포스팅에서는 간단한 예시를 통해 HPA 설정 방법을 정리합니다.목차1. HPA.yml 작성apiVersion: autoscaling/v2kind: HorizontalPodAutoscalermetadata: name: api-serverspec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: api-server minReplicas: 1 maxReplicas: 2 metrics: - type: Re.. 2024. 3. 30.
Docker Image를 Minikube 로드하기 Docker Image를 Minikube로 로드 하는 과정에서 아래 에러가 발견됬습니다. ~ minikube image load api-exam:0.0.1❌ Exiting due to GUEST_IMAGE_LOAD: Failed to load image: save to dir: caching images: caching image "/Users/myuserid/.minikube/cache/images/arm64/api-exam_0.0.1": write: unable to calculate manifest: blob sha256:00fd5b12683afed295344689d9cd313043ecd10a660da04f9c48484e10095a09 not found GUEST_IMAGE_LOAD: Failed.. 2024. 3. 24.
ArgoCD를 통해서 Application 배포 지난번 포스팅에서 ArgoCD를 구축하는 방법을 정리했습니다.이어서 Application을 만들고 Git Ops 워크플로우를 적용해봅시다. 1. Git Ops 워크플로우란GitOps 워크플로우란 Git Repository를 통해 Application 배포 및 관리를 수행하는 것을 뜻합니다.Application의 상태와 구성이 Git 저장소에 정의되어있으며, 변경사항이 Commit 되면 ArgoCD를 통해서Application 배포가 이뤄지게 됩니다. 위와 같은 워크플로우 적용을 위해서는 Git Repository에 저장될 정의가 중요할 것입니다.여기서 kustomize라는 쿠버네티스의 오브젝트 선언형 관리 방법을 적용해 볼 수 있습니다.  2. Kustomize로 Application 정의여기서는 Bas.. 2024. 3. 24.
Kubernetes, ArgoCD 설치 해보기(with Minikube) ArgoCD는 쿠버네티스 클러스터에 쉽게 애플리케이션을 배포 할 수 있게 해주는 유용한 도구입니다. 저도 실무에서 사용하고 있는데요. 운영을 하고 있는건 아니고 개발자로서 사용자 입장입니다. ArgoCD가 없는 업무 환경은 상상하기 싫을 정도로 만족하며 쓰는 도구입니다.👍 아래와 같은 주요 특징이 있습니다. 사용자 친화적 UI 제공 Git repository와 연동 및 지속 배포(Continuous Delivery) 구성 손쉬운 쿠버네티스 CLI(Command Line Interface) 사용 이번 포스팅에서는 ArgoCD를 설치하는 과정을 정리합니다. Docker, Minikube가 설치되어 있어야합니다. 1. 설치 먼저 설치하기 전에 Namespace를 하나 만들어 줍니다. ~ kubectl crea.. 2024. 3. 9.
kubectl 자주 쓰는 명령어 정리 kubectl은 쿠버네티스 클러스터 사용을 위한 CLI(Comand Line Interface)입니다. 이번 포스팅에서는 실무에서 자주 사용하는 kubectl을 정리해봅니다. 1. 설치 만약 로컬 환경에 minikube 설치 또는 kubernetes on docker desktop 활성화가 되어있다면 따로 설치할 필요가 없습니다. 만약 쿠버네티스 클러스터가 외부에 있다면 공식 홈에서 설치 가능합니다. 설치가 완료되었다면 아래처럼 로컬 PC에서 kubectl 사용 가능합니다. ~ kubectl version Client Version: v1.29.2 Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3 Server Version: v1.28.3 2. 클러스터 .. 2024. 3. 9.
Kubernetes, Ingress 구성 해보기 Ingress는 쿠버네티스 클러스터 외부에서 내부 서비스로 HTTP와 HTTPS 경로를 노출하기 위해 사용합니다. 위 핵심 기능 외에도 Ingress 리소스에 라우팅 규칙을 정의하여 로드밸런서로서의 역할을 할 수도 있습니다. 이번 포스팅에서는 Minikube를 통해 Ingress를 설정하는 방법을 정리합니다. 그 전에 Minikube 및 간단한 Service, Deployment는 구성되어 있다고 가정합니다. 이전 포스팅👉 Minikube 설치: https://basketdeveloper.tistory.com/104 Service 구성: https://basketdeveloper.tistory.com/105 1. Ingress 설치 아래처럼 minikube 명령어를 통해 ingress를 클러스터에 설치해.. 2024. 3. 8.
반응형