Profile img

robin

@robin@hackers.pub · 40 following · 52 followers

ImageGithub
@robin-maki

오늘도 오라클의 기묘한 버그? 스펙??을 밟아서 기록하려 왔는데요 nginx-ingress-controller를 기본 설정으로 설치하면 Service의 externalTrafficPolicy가 Local이라서 controller pod이 떠 있는 node에서만 접속이 되는데요 이랬더니 왠지 NLB 자체가 연결이 안 되고(포트가 닫힘) externalTrafficPolicy를 Cluster로 바꾸서 모든 node에서 접속할 수 있게 만드니까 NLB가 열리는데 보통 NLB의 백엔드 Healthcheck는 문제있는 백엔드를 제외하기 위해 존재한다고 생각했는데 오라클 NLB는 일부 백엔드에 문제가 생기면 전체가 안되는 기묘한 구조인가봐요??? 대체왜??????

여튼 처음부터 이런 버그를 안 밟으시려면 쿠버네티스 클러스터를 만드실 때 꼭 네트워크를 VCN-Native Pods Networking으로 설정하셔서 node 말고 Pod이 직접 NLB의 백엔드가 될 수 있도록 해주세요... 전 이미 늦었어요...

1

오늘도 오라클의 기묘한 버그? 스펙??을 밟아서 기록하려 왔는데요 nginx-ingress-controller를 기본 설정으로 설치하면 Service의 externalTrafficPolicy가 Local이라서 controller pod이 떠 있는 node에서만 접속이 되는데요 이랬더니 왠지 NLB 자체가 연결이 안 되고(포트가 닫힘) externalTrafficPolicy를 Cluster로 바꾸서 모든 node에서 접속할 수 있게 만드니까 NLB가 열리는데 보통 NLB의 백엔드 Healthcheck는 문제있는 백엔드를 제외하기 위해 존재한다고 생각했는데 오라클 NLB는 일부 백엔드에 문제가 생기면 전체가 안되는 기묘한 구조인가봐요??? 대체왜??????

0

오늘도 오라클의 기묘한 버그? 스펙??을 밟아서 기록하려 왔는데요 nginx-ingress-controller를 기본 설정으로 설치하면 Service의 externalTrafficPolicy가 Local이라서 controller pod이 떠 있는 node에서만 접속이 되는데요 이랬더니 왠지 NLB 자체가 연결이 안 되고(포트가 닫힘) externalTrafficPolicy를 Cluster로 바꾸서 모든 node에서 접속할 수 있게 만드니까 NLB가 열리는데 보통 NLB의 백엔드 Healthcheck는 문제있는 백엔드를 제외하기 위해 존재한다고 생각했는데 오라클 NLB는 일부 백엔드에 문제가 생기면 전체가 안되는 기묘한 구조인가봐요??? 대체왜??????

2

확실히 오라클에 1%쯤 배신감 든 게 전에 발표에서 오라클은 설정한 유저데이터 스크립트 조회도 못하게 한다라고 욕하고 왔는데 알고보니 API로는 제공하는데 콘솔엔 없었다는게 참 테라폼 사용자들만 고객이구나... 같은 느낌 (물론 저도 이젠 테라폼을 쓰지만요...)

정말 IaC 사용자만 고객인 정도가 아니라 테라폼 사용자만 고객인게 쿠버네티스 클러스터 구축할때 콘솔에서 빠른시작으로 구축해도 안돼고 Pulumi로 구축해도 안됐는데 테라폼 쓰니까 빠르게 성공해서 좀 허무했어요

1

확실히 오라클에 1%쯤 배신감 든 게 전에 발표에서 오라클은 설정한 유저데이터 스크립트 조회도 못하게 한다라고 욕하고 왔는데 알고보니 API로는 제공하는데 콘솔엔 없었다는게 참 테라폼 사용자들만 고객이구나... 같은 느낌 (물론 저도 이젠 테라폼을 쓰지만요...)

3
1
5

오늘 해커스펍 송년회에서 오라클 사용해도 될까? 주제로 발표한 로빈입니다! 행사 정말 재밌었고요 오라클 쓰는 이야기 GraphQL 이야기 플랫폼 비즈니스의 방향성 이야기 등등 마음껏 해주세요~

11
3
0

원래는 한달에 30만원 초중반 나왔었고요 이번에 쿠버네티스로 전면 이전하면서 (심지어 관리형 쿠버네티스 서비스도 무료니까) 비용효율화를 엄청 시켜서 이번달부터는 20만원 초중반 예상해요

2

매일마다 찬양과 폄하를 오가는 오라클 클라우드

오늘의 찬양: NLB(L4 로드밸런서)도 무료 배스쳔(퍼블릭 IP가 없는 인스턴스 접속을 위한 SSH 터널링)도 무료

오늘의 폄하: 블록볼륨 최소사이즈가 50GB인게 말이되냐!! 기본 오라클리눅스 dnf를 램 4기가 이하 인스턴스에서 돌리면 메모리만 전부 잡아먹고 스스로 OOMKill은 안시켜서 인스턴스가 죽는게 말이되냐!!!

1

매일마다 찬양과 폄하를 오가는 오라클 클라우드

오늘의 찬양: NLB(L4 로드밸런서)도 무료 배스쳔(퍼블릭 IP가 없는 인스턴스 접속을 위한 SSH 터널링)도 무료

오늘의 폄하: 블록볼륨 최소사이즈가 50GB인게 말이되냐!! 기본 오라클리눅스 dnf를 램 4기가 이하 인스턴스에서 돌리면 메모리만 전부 잡아먹고 스스로 OOMKill은 안시켜서 인스턴스가 죽는게 말이되냐!!!

3

오라클 쿠버네티스 노드가 무작위로 10분~1시간 뒤에 죽는 문제 -> 원인은 cloud agent가 실행한 dnf가 혼자서 모든 메모리를 먹고 죽는것 -> 노드 램 4기가는 부족하다

2
2
1
3
3
3

마스토돈을 쿠버네티스로 옮기고 드디어 프로덕션 전환을 했다... (개인적인 축하파티) 이제 pg 레디스 es 옮기는거만 남았다... 이 쫄깃한 프로덕션 작업의 맛...

10

드디어 힘든 싸움 끝에 마스토돈을 쿠버네티스에 띄워서 접속하는데 성공은 했지만... 지금은 기존 DB를 tailnet으로 접속하고 있는데 디비왔다갔다 레디스왔다갔다 하다 보니 페이지 뜨는데 5초가 넘게 걸려서 이걸 실제로 적용했다간 파멸이 분명하다... hosts로 먼저 테스트해보길 잘 했다...

1

지금 아이디어는 load에서 SSR인지 여부에 따라서 T | Promise<T>를 던져서 SSR에서는 바로 데이터 / CSR 에서는 Promise 결과가 스트리밍되게 하고 +page.svelte에서는 항상 :then을 씌워주면 SSR때도 Promise 아닌게 들어오면 :then을 렌더링하니까 어떻게 될 거 같긴 한데 어쨌든 SvelteKit의 간단한 구조는 포기해야 하니까... (어쩔 수 없는거지 싶기도 하고)

오라클 네이티브 Ingress의 수많은 버그를 밟고 결국 사용을 포기하고 LoadBalancer Service (L4) -> nginx (L7, 여기서 web/streaming 분리) 방식으로 일단 땜빵을 했는데 솔직히 클라우드 갈아타고 싶은데 비용땜에 어떻게든 부여잡고있음

그래서 AWS 갈까요 GCP 갈까요 Azure 갈까요 어디가 더 쌀까요...

1
1

Hackers Public @ Seoul 송년회 ---- 2025년의 마지막을 해커들과 함께해요.

Hackers' Public @ Seoul 송년 네트워킹 밋업은 발표보다 대화, 형식보다 연결을 중심으로 진행됩니다. 라이트닝 토크도 지원받습니다. 만들었던 것·배운 것·고민했던 이야기를 자유롭게 얘기해보도록 해요.

많은 관심 부탁드립니다~

21
1
3
0

오라클 쿠버네티스에 OCI native ingress controller 설치하는거 계속 고급 클러스터를 쓰라면서 안 되는데 문서에서는 일반 클러스터도 할 수 있다고 해서 황당했는데 알고보니 일반 클러스터는 생성 시에만 애드온을 설정할 수 있고 고급 클러스터는 생성 후에 별도로 추가할수 있는 그런거인거 같다... 문서화너무구려궁시렁궁시렁

2

오라클 클라우드의 가장 좋은 점은 NAT 게이트웨이에 돈을 받지 않는다는 점이다... 어떻게 이걸 그렇게 비싼 가격을 받을까 다른 클라우드들은...

1

SvelteKit의 +page.svelte가 +page.ts를 기다리는 구조가 SSR 시에는 복잡도를 엄청 줄여주는데 (데이터가 다 로딩되어 있어서 <Suspense> 등이 필요 없으니까...) CSR 때는 페이지 렌더링을 늦추는 주범이 되는 것 같아서 고민

지금 아이디어는 load에서 SSR인지 여부에 따라서 T | Promise<T>를 던져서 SSR에서는 바로 데이터 / CSR 에서는 Promise 결과가 스트리밍되게 하고 +page.svelte에서는 항상 :then을 씌워주면 SSR때도 Promise 아닌게 들어오면 :then을 렌더링하니까 어떻게 될 거 같긴 한데 어쨌든 SvelteKit의 간단한 구조는 포기해야 하니까... (어쩔 수 없는거지 싶기도 하고)

1

SvelteKit의 +page.svelte가 +page.ts를 기다리는 구조가 SSR 시에는 복잡도를 엄청 줄여주는데 (데이터가 다 로딩되어 있어서 <Suspense> 등이 필요 없으니까...) CSR 때는 페이지 렌더링을 늦추는 주범이 되는 것 같아서 고민

1

사실 아직 이전한건 많이 없지만... 일단은 기존 DB랑 Redis를 tailnet으로 연결하고 클러스터에 사이드킥을 띄웠다 그리고 사이드킥 오토스케일링 기준을 CPU로 잡는게 조금 부적절하다고 생각했었는데 Prometheus로 사이드킥 큐 크기를 측정해서 그거 기반으로 스케일링하는게 좋을것같다 (내일)

1
2

오늘 디비 레디스 등등을 Tailnet에 연결하고 쿠버네티스 클러스터에 마스토돈을 띄워서 tailnet으로 연결시킨다

내일 서버를 내리고 디비를 백업 후 디비도 쿠버네티스로 올린다

4
5
4
3
3
4
6
4

개발자들이 연합우주에 잘 오지 않는 이유는 연합우주로 취업하기 어렵기 때문이다 연합우주 카르텔을 만들어서 서로 밀고 끌고 해줘야 한다!! (절대 제가 일자리를 알아보고 있어서 하는 말입니다)

20
2
2
1
2
1

멘션이라던가 커모지라던가 하는걸 어떻게 구현하지 하고 좀 고민을 했었는데 역시 Tiptap을 쓰는게 나은거 같다... 아무래도 배운게 그거니까...

1
2
2