본문 바로가기
IT Tech/Cloud

[YAML] Service 만들기

by _><- 2021. 8. 22.
반응형

servie 타입 : 프록시처럼 네트워크 트래픽을 pod로 포워딩행 주는 역할을 하는 k8s의 API 오브젝트

여러 pod가 같은 서비스를 제공할 때 대표되는 역할을 수행한다. 

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

- ClusterIP (default) : 서비스를 클러스터-내부 IP에 노출시킨다. 

- NodePort : 고정 포트 (NodePort)로 각 노드의 IP에 서비스를 노출시킨다.

- LoadBalancer : 클라우드 공급자의 로드 밸런서를 사용하여 서비스를 외부에 노출시킨다.

- ExternalName: 값과 함께 CNAME 레코드를 리턴하여, 서비스를 externalName 필드의 콘텐츠 (예:foo.bar.example.com)에 매핑한다.

 

my-service라는 오브젝트를 생성하고 app 이름이 MyApp인 파드세트를 대상으로 서비스 제공

80포트를 pod릐 9376포트로 매핑

targetPort를 지정하지 않으면 port와 같은 값으로 설정되고

Service spec에서 type을 지정하지 않으면 ClusterIP로 기본 설정된다.

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376

멀티포트인 경우 

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 9376
    - name: https
      protocol: TCP
      port: 443
      targetPort: 9377

NodePort 타입인 경우

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  type: NodePort
  selector:
    app: MyApp
  ports:
      # 기본적으로 그리고 편의상 `targetPort` 는 `port` 필드와 동일한 값으로 설정된다.
    - port: 80
      targetPort: 80
      # 선택적 필드
      # 기본적으로 그리고 편의상 쿠버네티스 컨트롤 플레인은 포트 범위에서 할당한다(기본값: 30000-32767)
      nodePort: 30007

LoadBalancer 타입인 경우

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376
  clusterIP: 10.0.171.239
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: 192.0.2.127

 

 

참고 : https://kubernetes.io/ko/docs/concepts/services-networking/connect-applications-service/

 

서비스와 애플리케이션 연결하기

컨테이너 연결을 위한 쿠버네티스 모델 지속적으로 실행중이고, 복제된 애플리케이션을 가지고 있다면 네트워크에 노출할 수 있다. 쿠버네티스의 네트워킹 접근 방식을 논의하기 전에, 도커와

kubernetes.io

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

 

서비스, 로드밸런싱, 네트워킹

쿠버네티스의 네트워킹에 대한 개념과 리소스에 대해 설명한다.

kubernetes.io

 

반응형

'IT Tech > Cloud' 카테고리의 다른 글

Pets vs Cattle  (0) 2021.08.23
[YAML] PV, PVC 만들기  (0) 2021.08.22
[YAML] POD생성  (0) 2021.08.22
[k8s] Helm  (0) 2021.08.20
[k8s] 튜토리얼, 학습사이트  (0) 2021.08.18