• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

서비스 생성 후에, 다른 파드 내에서 해당 서비스에 접근할 때

22.11.08 14:21 작성 조회수 112

1

중급편 > 기본 오브젝트 > 서비스 편을 듣다가 궁금해져서 질문을 남깁니다.

 

apiVersion: v1
kind: Service
metadata:
  name: clusterip1
spec:
  selector:
    svc: clusterip
  ports:
  - port: 80
    targetPort: 8080

이렇게 서비스(1)을 만들고

apiVersion: v1
kind: Service
metadata:
  name: endpoint1
spec:
  selector:
    svc: endpoint
  ports:
  - port: 8080

이렇게 서비스(2)를 만들었을 때

 

두 개의 서비스 모두에 붙지 않은 request-pod에서 각각의 서비스에 curl을 날릴 때

서비스(1)은

curl clusterip/hostname

은 되는 반면

curl clusterip:8080/hostname

은 되지 않고

 

서비스(2)는

curl endpoint1/hostname

은 되지 않는데

curl endpoint1:8080/hostname

은 되는 건가요?

 

차이점만 봐서는 서비스 생성시의 서비스 targetport를 지정해주냐 안해주냐의 차이같고

targetport는 파드를 연결하는 포트로 알고 있는데

저 차이로 curl 날리는 게 달라지는 게 어떤 동작(?)으로 되는 건지 궁금합니다.

답변 1

답변을 작성해보세요.

1

안녕하세요.

Service를 만들었다면 서비스로 호출할 포트는 port입니다.

그래서 clusterip1:80 으로 호출하는게 맞는 사용이고요

targetPort는 Service의 port를 호출했을때 자체적으로 Service가 Pod한테는 targetPort로 요청하기 위해 사용되는거라 Service의 targetPort로 직접 호출하면 안됩니다.

sunn님의 프로필

sunn

질문자

2022.11.09

답변 감사합니다. 포트에 대한 부분은 이해했습니다.

curl clusterip/hostname

은 되고

curl endpoint1/hostname

은 안 되는 이유는 무엇인가요?

위에 Service 생성시 endpoint1은 port를 8080으로 만들었기 때문에

curl 호출시 endpoint1:8080/hostname으로 포토를 명시적으로 넣어줘야 합니다.