k3s 환경에서 PostgreSQL을 배포할 때 nodePort를 설정해서 배포를 시도했는데 에러가 발생했다.
Error Logs
Error from server (Invalid): error when craeting "postgres.yaml": Service "postgres-svc"is invalid: spec.ports[0].nodePort: Invalid value: 13000: provided port is not in thevalid range. The range of valid ports is 30000-32767
Docker는 기본적으로 단일 호스트의 포트 바인딩이기 때문에 ports: 13000:5432 과 같은 설정이 가능했지만 k8s는 클러스터 단위이기 때문에 매우 안전한 30000-32767을 제외한 나머지 포트는 nodePort로 지정할 수 없습니다.
해결 방법
nodePort를 지정하는 대신 Traefik을 이용한 Reverse Proxy를 사용하거나 DB와 같이 내부에서만 사용되는 경우 ClusterIP로 지정합니다.