병렬성(parallelism)의 문제 1) CPU마다 갖는 캐시를 서로 다르기 때문에 동기화가 어렵다는 문제가 있음(서로 로컬 캐시 이기 때문)2) L3 캐시를 사용하더라도 사로 다른 코어가 동시에 접근할 수 없음(lock) - 보통의 경우 먼저 선점한 코어가 빠져나오기까지 block 됨. - 이럴 거면 멀티 코어를 쓰는 의미가 없어짐 위와 같이 비동기(순서가 서로 다른), 병렬성에 따른 문제가 있었고 이를 해결하기 위해 프로그래밍 언어 레벨에서 해결하려는 노력들(RxJava, 콜백)이 있었다. 이러한 노력에도 단점들이 있는데, 콜백을 사용할 경우 콜백 정의부가 메소드 내부 인자로 들어감에 따라 코드 depth가 커지고 가독성이 나빠질 수 있으며 RxJava를 사용할 때엔 항상 스트림을 사용..
Job Controller 쿠버네티스의 가장 기본적인 특징은 Pod를 항상 Running 중인 상태로 보장해준다는 것이다. 하지만 배치 처리처럼 특정 시점에만 Pod가 필요하다면 Job 컨트롤러를 사용하는 것이 해답이 될 수 있다. Job Controller에 의해서 Pod를 실행시키면 해당 Job에 대한 결과(정상인지에 대한 여부)를 점검해서 비정상으로 종료되었을 경우에는 다시 재시작해준다는 특징이 있다. 실습 예시 1) restartPolicy: Never - job-exam.yaml 파일 apiVersion: batch/v1 kind: Job metadata: name: centos-job spec: # completions: 5 # parallelism: 2 # activeDeadlineSecon..
- Total
- Today
- Yesterday
- 쿠버네티스
- Non-Blocking
- CICD
- go
- RDB
- container
- ubuntu
- Kubernetes
- Stream
- github actions
- Controller
- 코틀린
- Linux
- 컨트롤러
- helm
- Java
- golang
- LFCS
- kafka
- docker
- db
- 카프카
- ci/cd
- 우분투
- GitOps
- spring
- K8s
- jvm
- rolling update
- argocd
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |