Sevice

서비스는 사용자(포드 그룹, db 등)와 통신하는 데에 도움을 줌.

 

 service를 통해서 node 내부의 pod와 사용자를 연결시켜 줄 수 있음.(docker의 port forwarding 느낌?)

 

 

이런 식으로 통신 가능(udemy의 이미지 저작권 때문에 직접 그려서 넣었습니다.)

 

 

즉 node의 포트 - service의 port - pod 포트(targt port)로 통신이 가능함.

 

apiVersion: v1
kind: Service
metadata:
	name : myapp-service
    
spec:
  type: NodePort
  ports:
    - targetPort: 80
      port : 80
      nodePort : 30008
  selector: //다른 pod와 연결이 됨.
    app: myapp
    type: front-end

 

selector를 이용하여 다른 pod와 연결이 될 수 있음.(로드 밸런서 처럼 동작하게 됨)

 

노드가 여러 개라도 상관 없음. 

 

 

apiVersion: v1
kind: Service
metadata:
  name : myapp-service
    
spec:
  type: ClusterIP
  ports:
    - targetPort: 80
      port : 80
  selector: //다른 pod와 연결이 됨.
    app: myapp
    type: front-end

이를 이용하여 여러 node들에 접근 가능.

 

 

Ingress

 

아예 완전 다른 서비스를 만들면?

-> 이를 어떻게 접근을 해야할 지?

 

ingerss를 이용하여 다양한 서비스에 접근하게 만들어줌.

 

즉, 서비스들 - ingress - 외부 이런 식으로 연결이 됨.

출처 : https://kubernetes.io/ko/docs/concepts/services-networking/ingress/

 

apiVersion: networking.k8s.io/v1
kind: ingress
metadata:
  name: ingress-wear
spec:
  rules:

  - http:
    paths:
    - path: /wear
      pathType: Prefix
      backend: // 어디로 전송되는 지
        service:
          name: wear-service
          port:
            number: 80
    - path: /watch
      pathType: Prefix
      backend: // 어디로 전송되는 지
        service:
          name: watch-service
          port:
            number: 80

 

 

 

 

 

 

반응형

+ Recent posts