728x90

목차

     

    포트 번호 범위 : 0 ~ 65535

    잘 알려진 포트 (Well-Known Ports): 0부터 1023까지의 범위이다. 이 포트들은 특정 서비스에 할당되어 있으며, 예를 들어 HTTP (포트 80), HTTPS (포트 443), SSH (포트 22) 등이 있다.

    등록된 포트 (Registered Ports): 1024부터 49151까지의 범위이다. 이 포트들은 사용자 및 프로그램에 의해 사용될 수 있지만, IANA (Internet Assigned Numbers Authority)에 의해 등록되어 있다.

    동적 및 개인 포트 (Dynamic and/or Private Ports): 49152부터 65535까지의 범위이다. 이 포트들은 일반적으로 프로그램이 동적으로 할당하거나 개인 네트워크 통신에 사용된다.

     

    서비스 타입 종류

    서비스 타입은 ClusterIP, NodePort, LoadBlaancer 이 세 가지만 비교해보았다.

    ClusterIP

    1) proxy(포트포워딩)
     - 이슈
       ① master node에서 밖에 사용할 수 없음
       ② 변경된 내용의 pod를 apply한 경우 지속적으로 포트포워딩 명령어를 실행해야함.

     - 사용법 : nohup kubectl port-forward --address=0.0.0.0 -n woodpercker-ns service/postgresql-service 5432:5432>> /opt/apps/test.out 2>&1 &

    nohup 포트포워딩의 가장 큰 단점은 containerd를 restart하거나 실행중인 노드 서버의 네트워크가 불안정해졌을 때 연결이 끊어질 수 있다. 이 경우 nohup 명령어를 지속적으로 입력해주어야하는 번거로움이 있다.

    2) pods의 nodeselector로 실행 node서버 고정 후 pod와 svc에 동일한 labels로 externalIPs를 이용한 node:port로 외부접속
     - 이슈: 우리가 제공할 모든 helm chart service의 externalIPs를 고객사별 노드IP로 수정해야함.

     

    NodePort

     - 이슈: 30000~32767까지만 사용 가능(모든 구축된 k8s 클러스터 IP에서 접속 가능)

     

    LoadBalancer

     - 로드밸런서(metalLB)로 externalIP 자동할당하여 외부접속
    * 단점
     ① 중복IP 사용불가 : 이 때문에 오히려 프로그램 설치 후 제공할 수 있는 개수의 한계가 발생(수동으로 ip를 ssh 접속 가능한 IP로 사용한 경우 사용 불가였음.)
     ② 초기의 loadbalancer ip 사용자지정 가능 그러나 한 번 할당된 IP는 변경할 수 없음. 변경하려면 로드밸런서를 완전 삭제하고 재설치해야 가능
    (단, 종료된 서비스의 IP를 다른 서비스가 동일하게 할당 받을 수 있고 이후 종료된 서비스를 재시작하면 할당받지 않은 다음 번호 +1로 할당됌)
     ③ 클라우드 환경에 적합(온프레미스에 비해 자유롭기 때문)

    * 주의 사항

      spec:
        type: LoadBalancer
        allocateLoadBalancerNodePorts: false  # 이 옵션을 넣지 않으면 nodePort도 같이 할당되어 포트 중복 이슈가 발생할 수 있음

     

    728x90
    TOP