일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mirror maker2
- producer
- PAGING
- JPA
- spring
- K8s
- QueryDSL
- ECS
- mysql
- consumer
- Kubernetes
- centos7
- cd
- topic생성
- Spring JPA
- transactionaleventlistener
- git
- offsetdatetime
- API
- bean
- Kotlin
- Spring Data JPA
- CodePipeline
- Entity
- kafka
- entity graph
- Streams
- CI
- spring kafka
- AWS
- Today
- Total
목록전체 글 (101)
Yebali

스텝페이에서 적용했던 Spring Cloud Config을 사용하여재시작 없이 Spring Cloud Gateway의 Route을 동적으로 추가하도록 했던 경험 남기기.Spring Cloud Gateway란?먼저 Spring Cloud Gateway은 Spring을 기반으로 API Gatewa기능을 제공해 주는 프로젝트이다.일반적으로 MSA환경에서는 서버를 구성할 때 Gateway을 앞단에 배치하여 클라이언트들의 요청을 받고요청 경로에 따라 알맞은 서비스에게 그 요청을 전달하게 한다.이때, 요청을 어느 서비스에 전달할 지에 대한 Predicate, 요청/응답에 적용할 Filter 등의 정보를 가지고 있는 것을 Route라고 한다.Route을 등록하는 기존 방식일반적으로 Gateway의 route정보는 아..

ConfigMap은 Key-Value쌍으로 보안에 민감하지 않은 데이터를 저장할 때 사용하는 API 오브젝트이다. ConfigMap을 사용하면 Container image에서 환경별로 구성을 분리하여, 애플리케이션을 쉽게 의식할 수 있다. ConfigMap은 암호화를 제공하지 않기 때문에 민감한 데이터는 Secret을 사용해야 한다. 또한, 많은 정보를 보유하도록 설계되지 않았기 때문에 저장된 데이터는 1MiB를 초과할 수 없다. 예시 apiVersion: v1 kind: ConfigMap metadata: name: game-demo data: # 속성과 비슷한 키; 각 키는 간단한 값으로 매핑됨 player_initial_lives: "3" ui_properties_file_name: "user-in..

Ingress은 k8s 클러스터 외부에서 내부의 Service로 HTTP/HTTPS 경로를 노출한다.즉, 서비스들에 대한 단일 진입점을 제공한다. 단, Ingress를 사용하기 위해서는 Ingress Controller가 있어야 한다. Ingress source만 생성하면 동작하지 않는다.그렇기 때문에 필요에 따라 ingress-nginx와 같은 Ingress Controller을 배포해야 할 수도 있다. 예시apiVersion: extensions/v1beta1kind: Ingressmetadata: name: marvel-ingressspec: rules: - http: paths: - path: / # / path로 들어오는 요청은 'marvel-service'로 보낸다. ..

kube-proxy은 Kubernetes에서 Service를 만들었을 때 Service의 가상 IP, Port를 관리하고 ClusterIP나 NodePort로 접근할 수 있게 하는 컴포넌트이다. kube-proxy는 DeamonSet이 Control Plane과 각 Node마다 실행되며 클러스터 내부 IP로 연결하려는 트래픽을 적절한 Pod로 전달한다. kube-proxy가 네트워크를 관리하는 방법은 아래 3가지가 있다. userspace 모드 클라이언트가 Service의 ClusterIP를 통해 요청을 하면 iptables을 거쳐 kube-proxy가 요청을 받는다. 그리고 Service의 ClusterIP에 연결되어야하는 적절한 Pod로 요청을 매핑한다. 요청을 분배하는 방식은 라운드 로빈 방식을 사..

Service란 Pod에서 실행되고 있는 애플리케이션을 네트워크에 노출시키는 컴포넌트이다. 보통 Pod은 일회성 자원이기 때문에 언제든 다른 노드로 옮겨지거나 삭제될 수 있다. 그때마다 Pod는 새로운 내부 IP를 부여받기 때문에 지속적으로 클러스터 내/외부와 통신을 유지하기 어렵다. 따라서 Kubernetes은 Pod가 외부와 지속적으로 통신할 수 있도록 클러스터 내부에 고정적인 IP을 가지는 Service를 사용하도록 하고 있다. 또한 같은 애플리케이션으로 구성된 여러 Pod들의 단일 진입점을 제공하는 역할을 한다. ClusterIP Pod들이 클러스터 내부에서 다른 리소스들과 통신할 수 있도록 단일 진입점(IP)을 제공하는 Service이다. 'ClusterIP'로 들어온 클러스터 내부 트래픽을 해..

Job Job은 설정한 작업이 정상적으로 완료되면 종료되고, 비정상적으로 끝나면 다시 실행하는 Pod들을 관리한다. Job을 사용하면 여러 Pod들을 병렬로 실행할 수도 있다. apiVersion: batch/v1 kind: Job metadata: name: centos-job spec: completions: 5 # 실행할 Pod의 수 parallelism: 2 # 동시에 실행되는 Pod 수 activeDeadlineSeconds: 15 # 작업에 대한 데드라인 template: spec: containers: - name: centos-container image: centos:7 command: ["bash"] args: - "-c" - "echo 'Hello World'; sleep 5; ech..