모험가

Service (기초) 본문

쿠버네티스/기초

Service (기초)

라리음 2022. 7. 28. 17:17

 

 

 

이 글은 인프런의 대세는 쿠버네티스 강의를 보며 정리한 글입니다

 

 

 

 

 

Service

 

1. Cluster IP 

2. Node Port

3. Load Balancer 

 

 

 

 

 

Cluster IP : ClusterIP는 서비스를 클러스터 IP로 할당함.

클러스터 내부에서만 접근할 수 있으며, 외부에서는 접근할 수 없으므로 port forwarding 또는 proxy를 통해 접근을

해야함. 또한 서비스 타입을 별도 type을 설정하지 않으면 ClusterIP가 default로 설정됨.

 

-> 인가된 사용자(운영자) , 내부 대쉬보드, Pod의 서비스 상태 디버깅

 

 

Node Port : 노드포트는 모든 워커 노드들의 특정 포트(port)를 이용하여 접근을 하도록 설정하는 타입임

 

-> 내부망 연결, 데모나 임시 연결용

 

 

Load Balancer : Nodeport 타입의 확장판이라고 할 수 있으며 서비스를 외부에 노출 할 수 있음.

NodePort타입 앞단에 Loadbalancer가 붙어서 살아있는 노드를 체크하여 트래픽을 전달 할 수 있는 장점이 있음.

 

-> 외부 시스템 노출용

 

 

 

 

 

 

 

 

 

 

 

 

실습

 

 

 

 

 

 

 

 

Cluster IP

 

 

 

 

1. 파드 생성

 

 

apiVersion: v1
kind: Pod
metadata:
  name: pod-1
  labels:
     app: pod
spec:
  nodeSelector:
    kubernetes.io/hostname: k8s-node1
  containers:
  - name: container
    image: kubetm/app
    ports:
    - containerPort: 8080

 

 

 

 

2. 서비스 생성

 

apiVersion: v1
kind: Service
metadata:
  name: svc-1
spec:
  selector:
    app: pod
  ports:
  - port: 9000
    targetPort: 8080

 

 

 

기본 서비스는 cluster ip임

 

 

 

 

 

 

 

 

 

--> 파드를 새로 만들더라도 selector이 알아서 다시 연결 시킴!!!

 

 

 

 

 

 

 

 

 

 

 

 

Node Port

 

 

 

 

apiVersion: v1
kind: Service
metadata:
  name: svc-2
spec:
  selector:
    app: pod
  ports:
  - port: 9000
    targetPort: 8080
    nodePort: 30000
  type: NodePort
  externalTrafficPolicy: Local

 

 

externalPolicy는 각 노드에 접근하면 각 파드에만 접근할 수 있게끔 만듬

 

 

 

 

 

 

 

 

 

접근 성공

 

 

정책 사용

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Load Balancer 

 

 

 

 

apiVersion: v1
kind: Service
metadata:
  name: svc-3
spec:
  selector:
    app: pod
  ports:
  - port: 9000
    targetPort: 8080
  type: LoadBalancer

 

 

 

 

서비스를 만들더라도  계속 진행되지 않음

 

 

 

 

 

 

 

이유는 기본적으로 k8s에는 external IP가 자동 할당되지 않아서 그럼.

 

 

'쿠버네티스 > 기초' 카테고리의 다른 글

ConfigMap, Secret (기초)  (0) 2022.08.05
Volume (기초)  (0) 2022.07.28
POD (기초)  (0) 2022.07.28
kubernetes 설치  (0) 2022.07.27
쿠버네티스란  (0) 2022.05.17