
개요 서비스 (East-West) 파드 집합을 단일 유닛 또는 네트워크 서비스로 취급 로드밸런싱/라우팅. 서비스 검색 매커니즘. 레이어 3/4 매커니즘 인그레스 (North-South) 클러스터에서 실행되는 워크로드에 대한 진입점 세분화 된 트래픽 라우팅. 레이어7 로드밸런싱. 서비스 메시 더 진보된 라우팅, 보안, Observability 제공 East-West, North-South 지원 애플리케이션 소스코드 변경없이 Proxy/Sidecar를 이용한 통신 Kubernetes Service 여러 파드에서 걸쳐 트래픽을 로드밸런싱 하는 쿠버네티스의 핵심 API L3/L4 Layer load balancing -> TCP/IP, Port/IP 워크로드/파드는 대체 가능한 특성이기에 IP 대신 서비스를 이..

Javascript ? 신이 찾아와 개발자인 당신에게 평생 한 프로그래밍 언어만 사용할 수 있다고 한다면, 어떤 언어를 고르겠는가? 백엔드 개발자로서 자바민국(요즘은 코틀린민국이 되가고 있는 것 같긴 하다만)에선 Java를 골라야지 싶기도 하지만, 나는 무조건 Javascript를 고르겠다. 무언가를 만들어낸다는 행복과 뿌듯함을 바라보고 온 직업인데, 한 측면에 집중된 언어보단 여러 곳에서 메인 언어로 선택될 수 있는 녀석을 선택하겠다. 그리고 개인적으로 평생 Java나 해라는 욕같다 그냥. 평생 Javascript나 해라는 욕같은 느낌이 덜하다. Javascript의 생태계는 정말 끝이 없는 것 같다. 단순히 Web Frontend를 넘어 Backend 영역을 넘어서 App Frontend까지 넘기 시..

Secret에 대해 알아보기 전에 Secret이란 애플리케이션이 비밀로 유지하려는 데이터 더 쉽게 말하면 애플리케이션 서비스에서 필요한 비밀 데이터 ex) secret token, password, ... 다음과 같은 운영상의 문제를 고려해야 함 시크릿 순환 정책/키 (암호화) 순환 정책 시크릿의 순환 주기는 어떻게 결정할 것인가? 암호화 키의 순환 주기는 어떻게 결정할 것인가? 시크릿 저장 정책 시크릿 데이터를 저장할 때 어떤 요구사항을 충족해야 하는가? 격리된 하드웨어에 시크릿을 유지해야 하는가? 개선 계획 시크릿 또는 암호화 키가 손상되었을 때 어떻게 해결할 것인가? 애플리케이션에 영향주지 않고 계획 및 자동화를 실행할 수 있는가? 시크릿 관리를 어떤 레이어에서 제공할지 결정도 필요함 쿠버네티스 단..

Go언어에 대한 관심은 언제부터였을까? k8s 오픈소스(Operator 등)를 뒤적거리다보면 대부분 Go언어로 구성되어 있는 것을 볼 수 있다. 나 또한 k8s 생태계의 개발자로서 자연스럽게 Go언어에 어떤 특징들이 있고, 왜 사용하는지 등에 대한 궁금증들이 생겨났다. 근데 궁금증으로 쉽게 공부할 수 있는 것은 아니다. 현재 업무에서 사용하고 있는 언어가 아닌게 제일 컸다. 또한, 아직 역사가 그리 오래되지 않은 언어로 배우는 로드맵이 있다던지, 자료가 엄청 방대한다던지, 나아가 나에게 궁금증 이상의 동기부여가 부족했다. 궁금증으로 일단 udemy 강의를 사서 쭉 들었던 경험은 있는데, 그 이상 나아가지 않아 얼마가지 않아 다 까먹어버렸다. 최근에 와서야 갑작스레 호기심이 생겼다. Java/Spring에..

개요 쿠버네티스 자체는 컨테이너를 생성, 시작, 중지하는 법을 알지 못한다. 대신 이런 작업을 컨테이너 런타임이라는 컴포넌트가 담당해 진행한다. 이 컨테이너 런타임에 대해 알아보자. 컨테이너 런타임을 간단하게 설명하면 다음과 같다. Linux: cgroups 및 namespace 같은 커널 기능을 이용하여 컨테이너 프로세스를 생성하는 녀석 Kubernetes: kubelet과 함께 동작하며 쿠버네티스 node에서 컨테이너를 생성 및 관리하는 녀석 그럼 2가지 의문점이 든다. 왜 쿠버네티스는 몰라야하는가? 명색의 컨테이너 기반 오케스트레이션인데 몰라도 되나? kubelet이 컨테이너를 관리한다고 했다. kubelet 내부에 컨테이너 런타임이 있다고 보면 되나? 이 의문점에 대해 답을 하기 위해 OCI, C..

Cilium을 공부하며 eBPF를 알게 되었다. Cilium의 근간이 되므로, Cilium을 학습하기 이전에 간단하게나마 살펴보고자 한다. 이 글은 아래의 글들을 참고하여 작성되었다. https://ebpf.io/what-is-ebpf/ https://www.brendangregg.com/blog/2019-01-01/learn-ebpf-tracing.html https://ebpf.io/what-is-ebpf/ eBPF가 뭐야? eBPF(extended Berkeley Packet Filter)란 운영체제 커널과 같은 권한이 있는 컨텍스트에서 샌드박스가 적용된 프로그램을 실행할 수 있는 기술 프로그램을 변경/추가할 때마다 커널 소스코드를 변경하거나 커널 모듈을 새롭게 빌드/로드 할 필요가 없다. 왜 eB..

Deep Link, Universal Link, App Link를 간단하게 훑어보자. Deep link - 딥링크 모바일 애플리케이션을 자동으로 열어 앱 내의 특정화면으로 보낼 수 있는 링크 앱 연결의 소요 시간을 단축하고, UX를 개선할 수 있음 URL 매개변수를 이용해 토큰/미리 채워진 양식 등의 데이터를 전달할 수 있음 Deep link를 선택하면 iOS: 앱을 열 것인지 묻는 메시지가 표시되거나 Android: 사용할 앱을 묻는 대화상자가 표시되거나 Deep link 주소의 구조는 일반적인 https 구조가 아닌 custom한 링크를 가짐 custom_scheme://host/path?param=x scheme 부분만 다를 뿐 나머지는 https에서 사용하는 주소처럼 동일하게 설정할 수 있음 Un..
이전부터 문제 많던 Enum의 values(). Kotlin v1.9.0에서는 드디어 Enum.values()를 대체하는 녀석인 entries property를 stable feature로 제공한다. 내부적인 구현은 다르지만, 사용하는 법은 values()와 같다고 보면 된다. fun main() { val americaBrand = Brand.entries.filter { it.country == "America" } println(americaBrand) } enum class Brand(val country: String) { SAMSUNG("Korea"), APPLE("America"), GOOGLE("America"), MICROSOFT("America"), } 릴리즈 문서에서는 이제 아예 va..
- Total
- Today
- Yesterday
- jasync
- Intellij
- 일상
- Kubernetes
- container
- python
- 알고리즘
- 클린 아키텍처
- boj
- 비동기
- 하루
- tag
- 로그
- k8s
- java
- Spring
- OpenTelemetry
- docker
- 백준
- Spring boot
- gradle
- Clean Architecture
- Algorithm
- Istio
- 쿠버네티스
- HTTP
- Log
- MySQL
- WebFlux
- c++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |