일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 자바
- Spring
- ansible
- 클라우드 네이티브 자바
- MSA
- cloud native java
- ingress
- MySQL
- 쿠버네티스
- spring microservice
- decorator 패턴
- Kotlin
- Algorithm
- nGrinder
- cloud native
- Semaphore
- 헬름
- 동기화
- Stress test
- 익명클래스
- java
- Adapter 패턴
- Microservice
- 코틀린
- kubernetes
- 마이크로서비스
- devops
- 클라우드 네이티브
- 머신러닝
- CRD
- Today
- Total
목록쿠버네티스 (14)
카샤의 만개시기
Skaffold 쿠버네티스 개발 → 디버깅 → 배포를 한 줄로 끝내기Skaffold는 쿠버네티스 네이티브 애플리케이션을 위한 로컬-to-클러스터 개발 파이프라인을 자동화하는 CLI입니다.dev → build → push → deploy → log/port-forward → (loop)위 모든 단계를 단일 명령으로 처리해 개발-속도와 안정성을 동시에 챙길 수 있습니다.왜 Skaffold인가? (Kustomize·Helm과의 관계)빌드 & 배포 자동화 : 코드 변경 감지 → 이미지 빌드/푸시 → 신규 매니페스트 배포까지 한 번에 진행 [참고]다중 배포 도구 호환 : kubectl · Kustomize · Helm · Kpt 모두 지원 → 동일 워크플로우 안에서 혼용 가능Profiles / Modules :..
🚀 Telepresence 완전 정복: intercept, replace, wiretap, ingest 기능 비교쿠버네티스(Kubernetes) 환경에서 로컬 개발을 실서비스와 통합해 테스트하고 싶으신가요?Telepresence는 마이크로서비스 개발자들에게 가장 유용한 디버깅 도구 중 하나입니다.이 글에서는 Telepresence의 핵심 기능 4가지인✅ intercept, ✅ replace, ✅ wiretap, ✅ ingest를 최신 버전 기준으로 자세히 설명하고 차이점을 비교합니다.🧭 Telepresence란?Telepresence는 로컬 개발 환경과 쿠버네티스 클러스터 간의 양방향 연결을 제공하는 오픈소스 도구입니다.CI/CD 없이도 로컬 코드를 클러스터 트래픽과 연결해 테스트하거나, 클러스터 환..
Kubernetes에서 실시간 디버깅을 위한 강력한 도구, Ephemeral 컨테이너에 대해 알아봅니다.실전 사용법부터 리소스 경합, 종료 후 동작까지 완전 정리!📚 목차Ephemeral 컨테이너란?Ephemeral 컨테이너 생성 방법디버깅용 추천 이미지다른 컨테이너의 파일 시스템 접근Pod 내 컨테이너 목록 확인Ephemeral 컨테이너의 리소스 사용 방식Kubernetes QoS 클래스 정리종료된 Ephemeral 컨테이너는 어떻게 되나?1️⃣ Ephemeral 컨테이너란?기존 Pod에 일시적으로 주입되는 디버깅 전용 컨테이너spec.ephemeralContainers[]에만 등록됨자동 재시작 없음, resources, livenessProbe 설정 불가Kubernetes v1.25 이상에서 정식 ..
클러스터 검증 Sonobuoy 자체 호스팅 클러스터를 관리하거나 관리형 서비스를 사용 중이지만 쿠버네티스가 제대로 구성되어 있는지 최신 상태인지 확인하기 위해서 쿠버네티스 적합성 테스트를 진행할수 있다. K8Guard 쿠버네티스 클러스터의 일반적인 문제를 확인하고 잘못된 부분을 수정하거나 해당 문제에 대한 알람을 보낼 수 있는 도구이다. 프로메테우스와 같은 모니터링 시스템에서 수집할 수 있는 메트릭을 제공하여 정책을 위반하는 디플로이먼트 개수, 쿠버네티스 API 응답 성능 등을 모니터링 할 수 있다. Copper 쿠버네티스 매니페스트를 검사하는 도구로 일반적인 문제 사항을 플래그하거나 사용자 지정 정책을 적용한다. Cooper는 검증 규칙과 정책을 표현하기 위한 도메인 특화 언어(DSL)을 제공한다. 예..
인그레스는 서비스 앞에 존재하는 일종의 로드 밸런서이다. 쿠버네티스의 서비스는 L4 레이어로 TCP 단에서 Pod들을 밸런싱하기 때문에 TLS나, VirtualHost와 같이 여러 호스트명을 사용하거나 호스트명에 대한 라우팅이 불가능하고, URL Path에 따른 서비스간 라우팅이 불가능하다. MSA 환경에서는 하나의 어플리케이션이 하나의 URL로 매핑되는 경우가 많은데, 이를 위해 MSA 서비스간의 라우팅을 하기 위해서는 API 게이트웨이를 사용하는 경우가 많다. 이 경우에는 API 게이트웨이에 대한 관리포인트가 생기기 때문에, URL 기반의 라우팅 정도라면 L7 로드밸런서로 해당 기능을 제공한다. 쿠버네티스에서 HTTP(S)기반의 L7 로드밸런싱 기능을 제공하는 컴포넌트를 Ingress라고 한다. ap..
데몬셋 각 파드마다 동일한 로깅 에이전트를 가지고 있으면 각 노드에 중복으로 존재할수 있기때문에, 각 노드마다 실행이 필요한 단일 레플리카의 파드가 있다면 데몬셋을 이용하면 된다. 주로 로그 수집기나, 노드를 모니터링하는 데몬 등에 사용된다. .spec.updateStrategy.type 데몬세트/스테이트풀셋의 파드를 업데이트할때 OnDelete와 RollingUpdate 중 선택할 수 있다. 기본 값은 RollingUpdate이나, 쿠버네티스 1.5 이하 버전에서는 OnDelete가 기본 값이다. RollingUpdate는 템플릿을 변경했을때 바로 변경되지만 OnDelete는 파드를 직접 제거해야 새로운 버전의 파드가 생성된다. .spec.updateStrategy.rollingUpdate.maxUna..
쿠버네티스는 Pod를 추가 생성할때 Pod를 적정 node에 배치하기 위해 많은 것을 고려하고 스케줄링한다. 파드가 특정 노드에 선정되기까지 크게 세가지 필터의 절차를 순차적으로 가진다. 볼륨 필터 리소스 필터 토폴로지 필터 볼륨 필터 Pod를 생성되고자 하는 디스크 볼륨에 대해서 Node가 지원할 수 있는지를 확인하고 마운트 되는 볼륨이 충돌이 일어나지 않는지 확인한다. 기본 클라우드 제공자를 이용할 경우, 규칙과 충돌을 일으키지 않고 attach 할 수 있는지 확인한다. Node Affinity를 이용하여 특정 노드에만 지정되도록 하는 추가적인 볼륨 토폴로지 제한이 있는지 확인한다. 리소스 필터 Pod를 배포할만한 충분한 리소스(CPU,Memory,Disk)를 특정 노드가 가지고 있는지 확인하는 단계..
쿠버네티스에서 레이블과 어노테이션은 모두 key-value 형식으로 메타 데이터를 제공한다는데서 동일함을 가집니다. 그렇다면 두 기능의 차이점에 대해 알아보도록 하겠습니다. 레이블 (Label) 가장 큰 차이점은 레이블은 쿠버네티스 리소스를 식별한다는 것입니다. 그로인해 레이블은 서비스 셀렉터와 같이 관련된 리소스 그룹을 지정하는데 사용할수 있습니다. 또한 키와 값의 구조가 제한되어 있기때문에 최적화 된 데이터 구조와 알고리즘을 사용하여 쿼리를 빠르게 평가할 수 있습니다. 레이블의 키와 값 구조에 대한 제한 어노테이션 (Annotation) 어노테이션은 비식별 정보이며 쿠버네티스 내부에서 사용할수 없습니다. 하지만 헬름과 같은 외부 툴이나 라이브러리에서 참조하여 사용할수 있습니다. 어노테이션의 양이 크더..