Quiz: Sockets and Ports
한국어 원문으로 표시합니다.
파드 안에서 curl localhost:8080 은 성공하는데 파드 IP 로는 refused 입니다. 원인은?
- NetworkPolicy 가 막고 있다
- 프로세스가 127.0.0.1 에만 바인딩돼 있다
- Service 의 targetPort 가 틀렸다
- CNI 플러그인 장애
LISTEN 소켓의 Recv-Q 가 계속 Send-Q 근처를 맴돌고 ListenOverflows 가 증가합니다. 진단은?
- 애플리케이션이 accept 를 충분히 빨리 하지 못해 완료 큐가 넘치고 있다
- 구간 대역폭이 모자라 패킷이 지연되고 있다
- 경로 MTU 불일치로 큰 패킷이 버려지고 있다
- 이름 해석 지연으로 연결 수립이 늦어지고 있다
CLOSE_WAIT 소켓이 계속 쌓입니다. 책임 소재는?
- 상대가 FIN 을 보내지 않았다
- 내 애플리케이션이 close() 를 호출하지 않고 있다
- 커널 타이머 설정이 잘못됐다
- TIME_WAIT 재사용이 꺼져 있다
/proc/net/tcp 에서 상태 컬럼 값 0A 는?
- LISTEN
- ESTABLISHED
- TIME_WAIT
- CLOSE_WAIT
nc -zv host 8080 이 4밀리초 만에 refused 를 돌려줬습니다. 이 시간이 알려 주는 것은?
- DNS 가 캐시에서 응답했다
- 로컬에서 즉시 실패해 패킷이 나가지 않았다
- TCP fast open 이 동작했다
- 왕복이 실제로 일어났다 — 경로상의 관문을 이미 통과했다는 증거
쿠버네티스에서 Service IP 로 붙자마자 refused 가 납니다. 가장 먼저 볼 것은?
- 노드의 kube-proxy 로그에 오류가 있는지 본다
- 노드에 만들어진 iptables 규칙을 덤프해 본다
- CoreDNS 파드 상태와 질의 응답을 먼저 확인한다
- 해당 Service 의 Endpoints — 비어 있으면 셀렉터 불일치나 readiness 실패다