기술 · 실용 가이드
kubectl port-forward “connection refused”? 재시도 전 네 구간을 감사하세요
로컬 listener, API tunnel, 선택된 Pod, Pod 내부 process를 분리해 첫 실패 구간만 수정합니다.

연결 거부는 하나의 장애가 아닙니다. 로컬 socket bind, API stream, 재시작 중인 Pod 또는 Pod 안 remote port listener가 각각 실패할 수 있습니다.
전체 command와 첫 error를 보존하고 네 구간을 순서대로 확인하세요. --address 0.0.0.0은 로컬 노출 범위만 바꾸며 Pod 안 listener를 만들지 않습니다.
command와 첫 실패 보존
context, namespace, target, mapping, version과 첫 refusal 전 출력을 기록합니다.
local bind 문제는 빈 port로 확인하고 forbidden이나 stream 문제는 RBAC부터 조사합니다.
선택된 Pod 증명
name, UID, node, start time, readiness, restart, deletion timestamp를 저장합니다.
rollout은 Forwarding 뒤 Pod를 종료할 수 있으므로 진단할 때 Running, Ready Pod를 직접 지정합니다.
remote port 해석
Service port, targetPort와 Pod runtime config를 대조합니다. Service 80이 Pod 8080일 수 있습니다.
selector와 EndpointSlice는 선택 근거일 뿐 listener 존재 증거가 아닙니다.
Pod 내부 listener 검증
승인된 read-only 방식으로 공유 namespace의 TCP listener, process와 protocol을 확인합니다.
listener가 없으면 app config나 startup dependency를 고치세요. local --address는 remote refusal을 고치지 못합니다.
한 번만 재시도
명시한 Pod에 새 forward를 만들고 protocol이 맞는 request와 같은 UID를 확인합니다.
local listener, API stream, Pod identity와 remote process가 모두 맞아야 완료입니다.
