네트워킹, 로드 밸런싱, 보안

Kubernetes 소개

Frank Heilmann

Platform Architect and Freelance Instructor

레이블과 셀렉터 더 알아보기

레이블(Labels):

  • Pod, Node 등 Kubernetes 객체에 부착되는 키/값 쌍
  • 객체 하위 집합을 구성하는 데 사용
  • 언제든 수정 가능
  • 예:
    • environment: prod
    • app: my_cool_app
    • has_GPU: true

셀렉터(Selectors):

  • 레이블로 객체를 식별하는 데 사용
  • 예:

    • ...    
      selector:
          environment: prod
          app: my_cool_app
      ...
      
    • ...
      nodeSelector:
        has_GPU: true
      ...
      
Kubernetes 소개

네트워킹과 서비스

Kubernetes 서비스

  • 각 Pod는 클러스터 전체에서 고유한 IP(인터넷 주소)를 가집니다
  • Pod 간 통신에 사용 가능
  • 단, Pod는 언제든 재시작되어 IP가 바뀌므로 실용적이지 않습니다
  • 서비스(Services)로 Pod를 연결해 안정적인 접속을 제공합니다
Kubernetes 소개

서비스 매니페스트

Kubernetes 서비스

apiVersion: v1
kind: Service
metadata:
  name: Kubernetes_Service_2
spec:
  type: ...
  selector:
    app: app2 
  ...
Kubernetes 소개

로드 밸런싱

로드 밸런싱

  • Kubernetes의 로드 밸런서는 부하를 여러 Pod에 분산합니다
  • 자원 쏠림을 방지해 효율을 높이고 응답 시간을 단축합니다
  • 예:

    • 여러 Pod에서 하나의 서비스를 제공
    • 로드 밸런서가 요청을 균등 분산
Kubernetes 소개

Kubernetes에서의 로드 밸런싱

apiVersion: v1
kind: Service
metadata:
  name: <service name>
spec:
  type: LoadBalancer
  selector:
    <key1>: <value1>
    <key2>: <value2>
  ...
  • 로드 밸런서는 보통 Kubernetes 제공자(클라우드 제공자)가 사전 구성합니다
  • 별도 매니페스트 없이 서비스에 자동으로 생성·연결됩니다
Kubernetes 소개

Ingress

Kubernetes Ingress

  • Ingress는 클러스터 외부의 HTTP/HTTPS 트래픽을 클러스터 내 서비스로 라우팅합니다
  • Ingress 규칙은 어떤 요청을 어떤 서비스가 처리할지 정의합니다
  • 보통 로드 밸런싱과 함께 사용됩니다
Kubernetes 소개

Kubernetes 보안

  • 현대 IT 아키텍처에서 보안은 매우 중요하지만, 복잡하고 다면적입니다
  • Kubernetes에는 애플리케이션 보안을 위한 구성요소가 갖춰져 있습니다. 예:

    • 비밀(Secret) API: 비밀번호, 토큰, 키 등 기밀 객체

    • 암호화된 네트워크 통신을 위한 도구와 API

    • 사용자 인증 방법
    • 역할 기반 및 속성 기반 접근 제어(RBAC, ABAC)
Kubernetes 소개

연습해 봅시다!

Kubernetes 소개

Preparing Video For Download...