Kubernetes/KoudKloud - CKAD with Tests

Services 관련 명령어

비번변경 2021. 12. 9. 22:46

Services란 포드에서 실행 중인 애플리케이션을 네트워크 서비스로 노출하는 방법이다. 즉, 서비스를 통해 포드에 접근할 수 있다.

이 글에서는 Services 목록 및 정보를 확인하고, 생성하는 방법에 대해 정리한다.

 

Services 목록 확인

get 명령어로 Services 목록을 확인한다. 서비스의 이름, 유형 등을 확인할 수 있다.

kubectl get service

kubectl get service

사진에서 확인할 수 있는 kubernetes 서비스는 kubernetes 시작 시 생성된 기본 서비스이다.

 

Services 상세 정보 확인

describe 명령어로 Services의 상세 정보를 확인한다. Port, TargetPort, Label, Endpoints 등의 정보를 확인할 수 있다.

kubectl describe service <NAME>

# 예시
kubectl describe service kubernetes

kubectl describe service &lt;NAME&gt;

Port는 서비스가 클러스터 내에 노출한 포트이다. 즉, 서비스는 이 포트에 대해서 보이며, 이 포트로 보내진 요청은 서비스에 의해 선택된 포드로 전달된다.

TargetPort는 포드로 전달되는 요청이 도달하는 포트이다. 서비스가 동작하기 위해서는 애플리케이션이 TargetPort에 대한 네트워크 요청을 listening 해야 한다.

 

포드 연결 서비스 생성

expose 명령으로 특정 pod에 요청을 전달하는 서비스를 생성한다.

kubectl expose pod <POD_NAME> --port=<PORT> --name=<SERVICE_NAME>

# 예시
kubectl expose pod redis --port=6379 --name=redis-service

# 포트 및 타입 지정
kubectl expose pod httpd --name=httpd --port=80 --type=ClusterIP

 

또는 Service 정의 yaml 파일을 사용하여 생성한다.

apiVersion: v1
kind: Service
metadata:
  name: webapp-service # Service 이름
spec:
  type: NodePort # Service 유형
  ports: # Port 정의
    - targetPort: 8080
      port: 8080
      nodePort: 30080
  selector: # 연결 Pods
    name: simple-webapp

 

 


참고 문서

https://kubernetes.io/ko/docs/concepts/services-networking/service/

https://kimmj.github.io/kubernetes/port-targetport-nodeport-in-kubernetes/

 

[번역] 쿠버네티스에서의 Port, TargetPort, NodePort :: Ibiza

[번역] 쿠버네티스에서의 Port, TargetPort, NodePort 원문: https://matthewpalmer.net/kubernetes-app-developer/articles/kubernetes-ports-targetport-nodeport-service.html 쿠버네티스의 port declaration 필드에는 여러가지가 있다. 각

kimmj.github.io

https://arisu1000.tistory.com/27838