분산 처리 환경

스프링 분산 처리 환경 12: Kubernetes

ohji52 2025. 12. 18. 14:25

 

쿠버네티스(Kubernetes)

컨테니어 오케스트레이션 시스템, 컨테이너가 여러개로 늘어날수록 관리의 한계가 와 쿠버네티스를 사용하여 원하는 상태를 선언하면 끊임없이 감시하면 현재 상태를 유지.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: gateway-deployment
  labels:
    app: gateway
spec:
  replicas: 1
  selector:
    matchLabels:
      app: gateway
  template:
    metadata:
      labels:
        app: gateway
    spec:
      containers:
        - name: gateway-container
          image: gateway-service:1.0
          imagePullPolicy: Never
          ports:
            - containerPort: 8000

 

Deployment: 쿠버네티스의 컨트롤러, 내부에 replicaset을 생성해 pod의 개수 유지, 배포시 업데이트 전략을 관리

replica: 파드의 개수

selector: 관리할 파드를 찾는 규칙

template: 생성될 파드의 설계도 

 

apiVersion: v1
kind: Service
metadata:
  name: gateway-service
spec:
  type: LoadBalancer
  selector:
    app: gateway
  ports:
    - protocol: TCP
      port: 8000
      targetPort: 8000

Service: pod가 죽었다 살아날 때마다 ip주소가 바뀌는데 이를 매번 추적할 수 없어, 고정된 ip와 dns이름을 제공하는 계층

type: LoadBalancer : 외부에서 접속하기 위한 방식

selector: 서비스가 트래픽을 전달할 목적지

 

feat: Kubernetes 로컬 배포를 위한 Deployment 및 Service 구성 by 0hj1hyeon · Pull Request #11 · 0hj1hyeon/distributed

Docker 컨테이너를 Kubernetes 환경에서 실행하기 위한 매니페스트(YAML)를 작성

github.com