공부하고 기록하는, 경제학과 출신 개발자의 노트

Istio 14

2024 당근테크 - 네트워크 통신 불가를 해결하기 위한 여정 (feat. istio)

https://youtu.be/Hh9zcth4UcI?si=vCq-pKTm6xxopnDP 당근페이에서 발생했던 여러 문제들을 어떻게 해결했는지. 당근서비스와 함께 잘 성장하던 당근페이. Redis에서 timeout 에러 발생 - redis 명령어 실행에 1500ms 이상 걸림. Redis Java client인 Lettuce에서 확인해보니, 에러 발생 시점에 command명령어 지연이 발생함. 근데 Redis 서버에는 문제가 없음 JDBC에서 DB Connection 맺을 때도 timeout 발생. (8초 정도 걸림) Deep Dive 마이페이지 상단에 '당근페이' 영역이 있다.당근페이는 가입하지 않은 사용자에게도 송금이 가능함.송금을 받았다면, '받지 않은 금액이 있다'는 정보를 표..

KubeCon2024 - Comparing Sidecar-Less Service Mesh from Cilium and Istio

https://youtu.be/91oylZSoYzM?si=HPMFGBtma5rbIUrI   발표자: Christiansolo.io의 Global Field CTO. service mesh 쪽 오픈소스 2017년부터 참여 중. cloud native 환경의 Networking infra 역할.Security, Compilance, Zero Trust, Mandates, Multi Cloud...mTLS나 Observability, traffic control 등의 기능Architecture history: Shared Node or Sidecar구현을 위한 architectural tradeoff를 설명하려면, service Mesh 진영의 역사가 조금 필요하다. Linkerd: first & modern..

KubeCon2023 - Building Better Controllers

https://youtu.be/GKPBQDJ2Hjk?si=DMB5DbmgD64ohT6I 발표자: John Howardworking on istio for about 5 years, mostly on control plane.istio라는 big Control plane 개발하고 관리하면서 겪었던 controller 이슈를 어떤 식으로 해결했는지 소개.What is Controller? Controller를 거칠게 정의하면 'input을 넣었을 때, 대응되는 output을 내뱉는 것'Deployment yaml을 배포하면, Replicaset이 만들어진다.Replicaset이 배포되면, pod가 만들어진다.pod가 만들어지면, service에서 pod 생성이벤트 감지하고 적절한 endpoint를 배포한다...

tinygo로 Wasm filter 만들어서 istio에 envoy plugin으로 붙이기

eventing-kafka-broker로 외부의 cloudevent를 받아서 Fanout하는 기능을 만들고 있었는데event source별로 순서 보장이 필요하지만cloudevent 보내는 쪽의 로직을 변경할 수 없는상황을 해결하기 위한 여러 작업 중 하나.  외부 cloudevent 이벤트를 받아서 kafka에 저장할 때, cloudevent spec에서 제공하는 paritionkey라는 옵션을 쓰면 된다.https://github.com/cloudevents/spec/blob/main/cloudevents/extensions/partitioning.md특정 kafka partition별로 매핑하기 위한 옵션으로, 같은 paritionkey를 가진 cloudevent는 동일한 kafka partitio..

Istio Memory 사용량 체크 - Knative Service 개수와 Sidecar Memory 관계 확인

Knative + Istio 조합한 Serverless Service에서 어느 날부터 Sidecar OOMKilled가 발생 배포한 knative service 개수는 큰 변화가 없고 k8s 클러스터 리소스도 충분히 여유가 있는데, istio sidecar가 Memory Limit을 초과해서 OOMkilled가 발생한다. 찾아보니 mesh에 포함된 workload 개수가 증가할수록 istio-proxy의 메모리 사용량이 증가하는 문제는 이미 잘 알려져 있었고, Sidecar CR을 사용해서 mesh가 관리할 workload를 namespace 또는 label selector 등을 사용해 제한하는 방식을 안내하고 있었다. https://medium.com/geekculture/watch-out-for-th..

istioCon 2022 - Egress Woes: Debugging External service Traffic in istio

Egress Woes: Debugging external service traffic in Istio https://youtu.be/opLiXzkseCI 발표자료: https://events.istio.io/istiocon-2022/slides/f5b-EgressWoes.pdf VirtualService, DestinationRule, ServiceEntry 등을 만들었다. 그럼 failed Communication을 확인하고 로그 보는 것도 필요함. debugging 관련 내용은 이미 많이 알려져 있으니 Few Common mistakes regarding External Service Traffic을 소개하려 함. 1. istioctl ps / istioctl analyze 써라 일반적으로 faile..

istioCon 2022 - Understanding New istio Telemetry API

Understanding the new Istio Telemetry API https://youtu.be/2L6Htij1zGE v1.11 버전에 추가된 new Telemetry API를 소개하는 내용 목적: mesh wide수준을 넘어 namespace-scope, workload groups / individual workload 단위의 behavior scope도 지원하기 위해. Telemetry Generation 으로 3 layer level을 지원함. istio service-level (service to service. low-level proxy metric 말고.) Tracespan generation / reporting (어디로 보낼지, 무엇을 보낼지) Access logging be..

istioCon 2021 - What envoy hears when Istio Speaks

https://www.youtube.com/watch?v=nNTpfXSCLKs Understading the Data plane - What envoy hears when istio speaks What is istiod how it interacts with k8s / envoy what is envoy / how envoy works high-level tour of 'what an istio-generated envoy config actually looks like' envoyproxy github을 보면 go-control-plane이 있음. envoyproxy를 관리하기 위한 표준 (canonical way). istiod is built on top of this (go-control-pla..

ServiceMeshCon 2020 - istio Service Mesh Simplified Beyond a Single Cluster

https://youtu.be/Ol5tNcaQZas istio 공식문서에 있는 MultiCluster 세팅 문서(https://istio.io/latest/docs/setup/install/multicluster/) 해설과 실습. 발표자: Lin Sun: Senior Technical Member in IBM / istio Project Contributor Sven Mawson: Principle Engineer on Google - working on ServiceMesh-related Technology 봄에 있었던 SerivceMeshCon 내용 요약 : istio 구조 단순화 istio-system에 있던 여러 컴포넌트 (Mixer, Galley, Citadel, injector) -> pilo..

KubeCon 2019 - Istio Multi-Cluster Service Mesh Patterns Explained

https://youtu.be/-zsThiLvYos Multi cluster를 사용하는 이유는 여러 가지. Performance Cost (Dev for cheaper) Failover / Redundancy (Availability) 비즈니스적인 이유로도 멀티 클러스터를 요청하는 고객이 많았음. Secure Workload 외부 공격 방지 (attack vector) auditing of public internet traffic 기존 On-prem과 cloud 간 통신 pod to pod, cluster to cluster 통신에서 데이터 Security 간단한 cluster configuration 예시 각 클러스터에는 worker node pool이 존재함. (VM / Bare Metal 무관) ..