오늘도 오라클의 기묘한 버그? 스펙??을 밟아서 기록하려 왔는데요 nginx-ingress-controller를 기본 설정으로 설치하면 Service의 externalTrafficPolicy가 Local이라서 controller pod이 떠 있는 node에서만 접속이 되는데요 이랬더니 왠지 NLB 자체가 연결이 안 되고(포트가 닫힘) externalTrafficPolicy를 Cluster로 바꾸서 모든 node에서 접속할 수 있게 만드니까 NLB가 열리는데 보통 NLB의 백엔드 Healthcheck는 문제있는 백엔드를 제외하기 위해 존재한다고 생각했는데 오라클 NLB는 일부 백엔드에 문제가 생기면 전체가 안되는 기묘한 구조인가봐요??? 대체왜??????
robin
@robin@hackers.pub · 40 following · 52 followers
Github
- @robin-maki
여튼 처음부터 이런 버그를 안 밟으시려면 쿠버네티스 클러스터를 만드실 때 꼭 네트워크를 VCN-Native Pods Networking으로 설정하셔서 node 말고 Pod이 직접 NLB의 백엔드가 될 수 있도록 해주세요... 전 이미 늦었어요...
오늘도 오라클의 기묘한 버그? 스펙??을 밟아서 기록하려 왔는데요 nginx-ingress-controller를 기본 설정으로 설치하면 Service의 externalTrafficPolicy가 Local이라서 controller pod이 떠 있는 node에서만 접속이 되는데요 이랬더니 왠지 NLB 자체가 연결이 안 되고(포트가 닫힘) externalTrafficPolicy를 Cluster로 바꾸서 모든 node에서 접속할 수 있게 만드니까 NLB가 열리는데 보통 NLB의 백엔드 Healthcheck는 문제있는 백엔드를 제외하기 위해 존재한다고 생각했는데 오라클 NLB는 일부 백엔드에 문제가 생기면 전체가 안되는 기묘한 구조인가봐요??? 대체왜??????
1시간동안 같이 싸워준 AI도 황당
오늘도 오라클의 기묘한 버그? 스펙??을 밟아서 기록하려 왔는데요 nginx-ingress-controller를 기본 설정으로 설치하면 Service의 externalTrafficPolicy가 Local이라서 controller pod이 떠 있는 node에서만 접속이 되는데요 이랬더니 왠지 NLB 자체가 연결이 안 되고(포트가 닫힘) externalTrafficPolicy를 Cluster로 바꾸서 모든 node에서 접속할 수 있게 만드니까 NLB가 열리는데 보통 NLB의 백엔드 Healthcheck는 문제있는 백엔드를 제외하기 위해 존재한다고 생각했는데 오라클 NLB는 일부 백엔드에 문제가 생기면 전체가 안되는 기묘한 구조인가봐요??? 대체왜??????
확실히 오라클에 1%쯤 배신감 든 게 전에 발표에서 오라클은 설정한 유저데이터 스크립트 조회도 못하게 한다라고 욕하고 왔는데 알고보니 API로는 제공하는데 콘솔엔 없었다는게 참 테라폼 사용자들만 고객이구나... 같은 느낌 (물론 저도 이젠 테라폼을 쓰지만요...)
정말 IaC 사용자만 고객인 정도가 아니라 테라폼 사용자만 고객인게 쿠버네티스 클러스터 구축할때 콘솔에서 빠른시작으로 구축해도 안돼고 Pulumi로 구축해도 안됐는데 테라폼 쓰니까 빠르게 성공해서 좀 허무했어요
확실히 오라클에 1%쯤 배신감 든 게 전에 발표에서 오라클은 설정한 유저데이터 스크립트 조회도 못하게 한다라고 욕하고 왔는데 알고보니 API로는 제공하는데 콘솔엔 없었다는게 참 테라폼 사용자들만 고객이구나... 같은 느낌 (물론 저도 이젠 테라폼을 쓰지만요...)
#오라클클라우드 인스턴스 생성해서 퍼블릭 아이피 붙인 건 잘 되는데... 번역하고 이런게 다 개판이야.... AWS가 그립다
@akastoot악하 (개인적인 억까 평가지만) 오라클은 자기네 모든 고객이 테라폼을 사용한다는 상정이라도 하고 있는 거 같으니 이번 기회에 테라폼을 사용해보시는걸 추천드려요... https://registry.terraform.io/providers/oracle/oci/latest/docs 문서 AI에 던져주면 그래도 그럭저럭 짜더라구요
오늘 해커스펍 송년회에서 오라클 사용해도 될까? 주제로 발표한 로빈입니다! 행사 정말 재밌었고요 오라클 쓰는 이야기 GraphQL 이야기 플랫폼 비즈니스의 방향성 이야기 등등 마음껏 해주세요~
오늘 맞으면서 램 8기가 노드도 dnf 돌아가다 수틀리면 죽는다는 걸 배웠고요... 역시 스왑을 키는 방법뿐인거같다...
@robin 저도 dnf 하려고 스왑을 4GB를 잡았습니다.
@curry박준규 쿠버네티스를 안 쓸때는 사실 스왑이 있는 게 일반적이니까 눈치를 못 챘었는데 새삼 dnf는 정말 무겁네요...
어쨌든 청구서를 보면 모두 용서할 수 있습니다... AWS였으면 플래닛은 한달에 백만원씩 나갔을것...
원래는 한달에 30만원 초중반 나왔었고요 이번에 쿠버네티스로 전면 이전하면서 (심지어 관리형 쿠버네티스 서비스도 무료니까) 비용효율화를 엄청 시켜서 이번달부터는 20만원 초중반 예상해요
매일마다 찬양과 폄하를 오가는 오라클 클라우드
오늘의 찬양: NLB(L4 로드밸런서)도 무료 배스쳔(퍼블릭 IP가 없는 인스턴스 접속을 위한 SSH 터널링)도 무료
오늘의 폄하: 블록볼륨 최소사이즈가 50GB인게 말이되냐!! 기본 오라클리눅스 dnf를 램 4기가 이하 인스턴스에서 돌리면 메모리만 전부 잡아먹고 스스로 OOMKill은 안시켜서 인스턴스가 죽는게 말이되냐!!!
어쨌든 청구서를 보면 모두 용서할 수 있습니다... AWS였으면 플래닛은 한달에 백만원씩 나갔을것...
매일마다 찬양과 폄하를 오가는 오라클 클라우드
오늘의 찬양: NLB(L4 로드밸런서)도 무료 배스쳔(퍼블릭 IP가 없는 인스턴스 접속을 위한 SSH 터널링)도 무료
오늘의 폄하: 블록볼륨 최소사이즈가 50GB인게 말이되냐!! 기본 오라클리눅스 dnf를 램 4기가 이하 인스턴스에서 돌리면 메모리만 전부 잡아먹고 스스로 OOMKill은 안시켜서 인스턴스가 죽는게 말이되냐!!!
오라클 쿠버네티스 노드가 무작위로 10분~1시간 뒤에 죽는 문제 -> 원인은 cloud agent가 실행한 dnf가 혼자서 모든 메모리를 먹고 죽는것 -> 노드 램 4기가는 부족하다
당했다... 오라클 클라우드 기본 클러스터 제한 1개다... 당황스럽다... 오늘은 작업하기 글렀군...
사이드킥 모니터링 시스템을 만들었는데 이거 테스트 어떻게하지 역시 괜히 계정 만들고 탈퇴하기 뿐인가...??
쿠버네티스로 이전 완료! 정말많은일이잇엇서...
점검때 할 일
- web/sidekiq 내리기
- sequence 동기화
- nginx 설정
- 레디스 캐시 분리
- 환경변수 맞추기
쿠버네티스에 올린 pg에 기존 디비에서 논리적 복제를 거는데 성공했다! 아마 며칠 걸리겠지만 다운타임이 없으니까 괜찮아~
마스토돈을 쿠버네티스로 옮기고 드디어 프로덕션 전환을 했다... (개인적인 축하파티) 이제 pg 레디스 es 옮기는거만 남았다... 이 쫄깃한 프로덕션 작업의 맛...
드디어 힘든 싸움 끝에 마스토돈을 쿠버네티스에 띄워서 접속하는데 성공은 했지만... 지금은 기존 DB를 tailnet으로 접속하고 있는데 디비왔다갔다 레디스왔다갔다 하다 보니 페이지 뜨는데 5초가 넘게 걸려서 이걸 실제로 적용했다간 파멸이 분명하다... hosts로 먼저 테스트해보길 잘 했다...
지금 아이디어는 load에서 SSR인지 여부에 따라서 T | Promise<T>를 던져서 SSR에서는 바로 데이터 / CSR 에서는 Promise 결과가 스트리밍되게 하고 +page.svelte에서는 항상 #await :then을 씌워주면 SSR때도 Promise 아닌게 들어오면 :then을 렌더링하니까 어떻게 될 거 같긴 한데 어쨌든 SvelteKit의 간단한 구조는 포기해야 하니까... (어쩔 수 없는거지 싶기도 하고)
@robin 관련된 내용인지는 모르겠는데, 비동기 SSR 관련해서 뭔가 업데이트가 진행중인 것 같네요. (대충 비동기로 SSR이 되게 할 예정이라는 공지)
https://github.com/sveltejs/svelte/discussions/16784
오라클 네이티브 Ingress의 수많은 버그를 밟고 결국 사용을 포기하고 LoadBalancer Service (L4) -> nginx (L7, 여기서 web/streaming 분리) 방식으로 일단 땜빵을 했는데 솔직히 클라우드 갈아타고 싶은데 비용땜에 어떻게든 부여잡고있음
그래서 AWS 갈까요 GCP 갈까요 Azure 갈까요 어디가 더 쌀까요...
근데 해커스퍼블릭 송년회 장소는 온라인인가요 추후 공지인가요??
Hackers Public @ Seoul 송년회 ---- 2025년의 마지막을 해커들과 함께해요.
Hackers' Public @ Seoul 송년 네트워킹 밋업은 발표보다 대화, 형식보다 연결을 중심으로 진행됩니다. 라이트닝 토크도 지원받습니다. 만들었던 것·배운 것·고민했던 이야기를 자유롭게 얘기해보도록 해요.
많은 관심 부탁드립니다~
- 🗓 12/21(일) 14:30~18:30
- 🎤 라이트닝 토크 5분 자유 참여
- 📌 1차 모집: 11.26~12.5 (회원 대상)
- 신청하기 👉 https://event-us.kr/hackerspubseoul/event/117468
근데 해커스퍼블릭 송년회 장소는 온라인인가요 추후 공지인가요??
오라클 쿠버네티스에 OCI native ingress controller 설치하는거 계속 고급 클러스터를 쓰라면서 안 되는데 문서에서는 일반 클러스터도 할 수 있다고 해서 황당했는데 알고보니 일반 클러스터는 생성 시에만 애드온을 설정할 수 있고 고급 클러스터는 생성 후에 별도로 추가할수 있는 그런거인거 같다... 문서화너무구려궁시렁궁시렁
오라클 클라우드의 가장 좋은 점은 NAT 게이트웨이에 돈을 받지 않는다는 점이다... 어떻게 이걸 그렇게 비싼 가격을 받을까 다른 클라우드들은...
SvelteKit의 +page.svelte가 +page.ts를 기다리는 구조가 SSR 시에는 복잡도를 엄청 줄여주는데 (데이터가 다 로딩되어 있어서 <Suspense> 등이 필요 없으니까...) CSR 때는 페이지 렌더링을 늦추는 주범이 되는 것 같아서 고민
지금 아이디어는 load에서 SSR인지 여부에 따라서 T | Promise<T>를 던져서 SSR에서는 바로 데이터 / CSR 에서는 Promise 결과가 스트리밍되게 하고 +page.svelte에서는 항상 #await :then을 씌워주면 SSR때도 Promise 아닌게 들어오면 :then을 렌더링하니까 어떻게 될 거 같긴 한데 어쨌든 SvelteKit의 간단한 구조는 포기해야 하니까... (어쩔 수 없는거지 싶기도 하고)
SvelteKit의 +page.svelte가 +page.ts를 기다리는 구조가 SSR 시에는 복잡도를 엄청 줄여주는데 (데이터가 다 로딩되어 있어서 <Suspense> 등이 필요 없으니까...) CSR 때는 페이지 렌더링을 늦추는 주범이 되는 것 같아서 고민
사실 아직 이전한건 많이 없지만... 일단은 기존 DB랑 Redis를 tailnet으로 연결하고 클러스터에 사이드킥을 띄웠다 그리고 사이드킥 오토스케일링 기준을 CPU로 잡는게 조금 부적절하다고 생각했었는데 Prometheus로 사이드킥 큐 크기를 측정해서 그거 기반으로 스케일링하는게 좋을것같다 (내일)
데이터베이스 이전이 정말 끔찍하게 느리구나...
오늘 디비 레디스 등등을 Tailnet에 연결하고 쿠버네티스 클러스터에 마스토돈을 띄워서 tailnet으로 연결시킨다
내일 서버를 내리고 디비를 백업 후 디비도 쿠버네티스로 올린다
컨퍼런스는 동인행사 같은 거구나...(무료배포 동인지 받음)
FOSS for All 부스 도는거 재밌다... 다양한 부스가 많아요 레드햇도 써봤어요(??
오늘
@fossforall 컨퍼런스 2025에서 發表한 〈야크 셰이빙: 새로운 오픈 소스의 原動力〉의 슬라이드를 共有합니다! 들어주신 분들 모두 感謝합니다!
🚀 FOSS for All Conference 2025
The conference has started!
A joyful start for open source.
오픈소스를 위한 즐거운 시작,
포스포올 컨퍼런스 2025가 드디어 막을 올렸습니다.
안녕하세요?? 연합우주를 많이 사랑해주세요
이미지와의 결투에서 승리했다
튜사가 서울 바깥에 지점을 만들어주지 않는다면 돈을 많이 벌어서 짭튜사를 차리겠다
이름 뭐로하지?
그레이스의 나방??
하 걍 내가 사는 동네에다 짭튜사 만들어버리고 싶음
PC방 매입해서 모니터만 남겨두고 본체 갖다 판 돈으로 키보드랑 개발 서적 사두면 튜사 아님?(이딴 발언
개발자들이 연합우주에 잘 오지 않는 이유는 연합우주로 취업하기 어렵기 때문이다 연합우주 카르텔을 만들어서 서로 밀고 끌고 해줘야 한다!! (절대 제가 일자리를 알아보고 있어서 하는 말입니다)
과연 오늘은 지각하지 않을 수 있을 것인가????!?!??!?!??
간단히 Tiptap 에디터랑 SSR 되는 렌더러 만들어서 뿌듯하게 올리려 했는데 문단 이슈를 맞닥뜨리다...
@robin 줄바꿈 하나는
<br>, 둘 以上은 <p> 아니던가요…?!
@hongminhee洪 民憙 (Hong Minhee)
그런 거 같네요... Tiptap이랑 기본동작이 다르네요............
액펍아카데미가 죽었으니 정말 어쩔 수 없이 오늘은 여기까지 하고 게임을 하겠다...
으윽 마스토돈... 왜째서 어떤 줄바꿈은 p고 어떤 줄바꿈은 br인거야... 저주하겠다...
위지윅 에디터 고수가 될거야!
멘션이라던가 커모지라던가 하는걸 어떻게 구현하지 하고 좀 고민을 했었는데 역시 Tiptap을 쓰는게 나은거 같다... 아무래도 배운게 그거니까...
위지윅 에디터 고수가 될거야!
@robin 제가 알기로는 그냥 다들 Mastodon을 따르는 거예요. 안 따르는 구현들도 좀 있더라고요.
@hongminhee洪 民憙 (Hong Minhee) @robin microformats2 모양이긴 합니다





