ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Kubernetes (쿠버네티스) 이론
    CS 공부/DevOps 2024. 10. 22. 14:31

    쿠버네티스란?

    컨테이너화된 workload와 서비스를 관리하기 위한 확장 가능한 오픈소스 플랫폼

     

    • 도커 이미지가 많아지면서 관리해야할 컨테이너와 서버들이 많아짐
    • 컨테이너의 관리를 자동화할 도구(오케스트레이션 툴)의 필요성
    • 컨테이너를 쉽고 빠르게 배포 및 확장하고, 관리를 자동화해주는 오픈소스 플랫폼

     

     

    쿠버네티스의 특징

    1. 거대한 커뮤니티와 생태계 (대기업들의 지원)
    2. 다양한 배포 방식
      • 여러대의 애플리케이션 띄우고 싶을 때: Deployment
      • 로그, 모니터링 등 모든 서버에 설치 필요한 경우: Daemon Set
      • 배치성 작업: Job, Cronjob

    Deployment, StatefulSets, Job, Cronjob 등

     

     

    3. Namespace & Label

    • Namespace 기능으로 하나의 클러스터를 논리적으로 구분하여 사용 가능
    • Label 기능으로 유연, 확장성 있게 리소스 관리

     

    4. RBAC (role-based access control)

    • 누가, 무엇을, 어디에(Namespace) 실행할 수 있는지 결정하는 권한 및 액세스 관리 형식
    • 각 리소스에 대해 CRUD 권한을 손쉽게 지정
    • 클러스터 전체에 적용하거나 특정 Namespace에 적용 가능
    • AWS IAM 연동해서 사용 가능

     

     

    5. Auto Scaling으로 손쉽게 리소스 확장 가능

    6. Federation, Multi Cluster로 클라우드의 쿠버네티스와 서버의 쿠버네티스 묶어서 하나로 사용 가능

     

     

    쿠버네티스 기본 개념

    Master-node 구조

     

    • 중앙(Master)에 API 서버와 상태 저장소를 두고 각 서버(Node)의 에이전트(kubelet)과 통신하는 구조
    • 모든 명령은 master의 API 서버를 호출하고, node는 master와 통신하면서 필요한 작업 수행
    • Kubectl이라는 클라이언트 도구로 API 서버 접근 가능

     

     

    쿠버네티스 Object

    Pod

    • 쿠버네티스에서 배포할 수 있는 가장 작은 단위
    • 여러개의 컨테이너, 스토리지, 네트워크 합쳐진 구조
    • 컨테이너를 한개 사용해도 Pod로 감싸서 관리

     

    Replicaset & Deployment

    • Pod를 여러개 복제하여 관리하는 Object
    • 복제할 개수, Label 선택자, 생성할 Pod의 설정값 등 설정
    • 자동으로 롤링 업데이트 가능

     

    Service

    • Pod를 여러개 복제하여 관리하는 Object

     

Designed by Tistory.