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

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

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..

Pod Pod은 kubernetes에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 단위이다. 하나 이상의 Container를 포함하고 있으며 Pod 내에서 Container들은 스토리지와 네트워크를 공유한다. Pod에는 Pod가 시작될 때 실행되는 InitContainer 등이 포함될 수 있다. Pod은 제한된 리소스 이상을 사용하게 되면 재시작된다. apiVersion: v1 kind: Pod metadata: name: nginx # Pod 이름 spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 resources: requests: cpu: 300m memory: 500Mi limits: # Pod가 사용..