[DevOps] 오픈시프트(OpenShift)와 쿠버네티스(Kubernetes)

2025. 6. 4. 00:51·DevOps
728x90

 

 

1. Kubernetes (k8s)

1.1. 쿠버네티스란?

❓ 컨테이너를 쉽고 빠르게 배포 및 확장하고, 관리를 자동화해주는 오픈소스 플랫폼
  • 컨테이너 오케스트레이션 툴
    • 오케스트레이션 : 배포, 관리, 확장, 네트워킹을 자동화
  • 컨테이너 수가 많아지면 관리 / 운영이 어려움 → 다수의 컨테이너를 관리 / 조율하는 시스템 필요
    • 컨테이너의 생성, 소멸, 시작 및 중단 시점 제어, 스케줄링, 로드 밸런싱, 클러스터링 등 모든 과정 관리
  • 특징
    • 컨테이너화된 애플리케이션 배포
      • 컨테이너로 패키징된 애플리케이션을 여러 대의 컴퓨터 / 클라우드 인프라에 쉽게 배포 가능
    • 자동 스케일링 (Auto Scaling)
      • 애플리케이션 부하에 따라 자동으로 서버를 늘리거나 줄이기 가능
      • 트래픽 증가에 대처 용이
    • 고가용성 (High Availability)
      • 애플리케이션을 여러 서버에 복제하여, 하나의 서버에 장애 발생해도 시스템 계속 동작 가능
    • 자동 복구 (Self-Healing)
      • 애플리케이션의 문제나 장애가 발생하면, 자동으로 복구하거나 롤백 가능
      • 시스템 신뢰성을 높인다
    • 선언적 구성 (Declarative Model)
      • YAML, JSON 파일을 사용하여 애플리케이션이 원하는 상태를 정의하고 그 상태를 유지 가능

 

1.2. 쿠버네티스의 구성 요소

  • Cluster (클러스터)
    • 제어판(Control Plane) 및 하나 이상의 컴퓨팅 머신 또는 노드로 구성
      • 최소 하나 이상의 컨트롤 플레인
      • 몇 개의 워커노드
    • 쿠버네티스 내 가장 큰 단위로, 가상 서버들이 속한 클라우드
  • Control Plane (제어판) : 쿠버네티스 노드를 제어하는 프로세스들이 모여있는 곳
    • 마스터노드가 관장한다
    • 모든 태스크 할당 시작되고 클러스터가 잘 작동하도록 돕는다
  • Node (워커노드) : 큐베렛이라는 프로세스가 돌아간다
    • 한 개 이상의 컨테이너가 자리 잡고 있으며, 실제로 애플리케이션이 실행되고 있는 곳
    • 큐베렛 (kubelet) : 각 노드에서 실행되는 기본 노드 에이전트
      • 마스터노드(의 컨트롤 플레인)과 노드 간 통신 책임지는 프로세스
      • 하나의 머신에서 동작하는 파드와 컨테이너 관리
    • 파드 (Pod) : 쿠버네티스에서 생성 및 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위
      • 하나 이상의 컨테이너 그룹
        • 여러 컨테이너가 모여 하나의 완전한 애플리케이션을 구성하는 경우, 여러 개의 컨테이너가 모여 하나의 Pod가 된다
        • 하나의 컨테이너로도 하나의 Pod 구성 가능

 

1.3. 도커 - 쿠버네티스 - 오픈시프트 관계

  • 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼
    • 컨테이너를 띄우고 실행하는 기술적인 개념 / 도구
  • 쿠버네티스는 도커를 관리하는 오케스트레이션 툴
    • 도커를 관리하는 툴
    • 하나의 컨테이너만 사용한다면 쿠버네티스 필요 X
  • 오픈시프트는 컨테이너 기반의 쿠버네티스 기업용 배포판
💬 도커 컨테이너들이 있고
     이 컨테이너들을 관리하기 위한 기술인 쿠버네티스의 배포판인 오픈 시프트로 컨테이너 관리

 

 

 

2. OpenShift

2.1. 오픈시프트란?

  • 컨테이너 기반 소프트웨어의 배포 및 관리를 위한 플랫폼
    • RedHat에서 개발한 PaaS 솔루션
    • 도커 컨테이너와 데브옵스 도구를 사용하여 쿠버네티스를 지원하는 운영환경을 제공
  • 기능
    • 개발자를 위한 소스 관리, 빌드, 배포를 위한 기능 제공
      • Git과 Jenkins를 통한 CI/CD 구성 지원
    • UI, CLI, API 등 다양한 인터페이스 제공
      • 클러스터, 컨테이너 조절이 비교적 쉬움
    • 운영을 위한 조직 관리 기능
    • Auto-Scaling
      • 서비스 수행 Pod에 부하가 발생해 CPU 사용률이 증가하면 자동으로 Pod 추가 생성하여 확장

 

2.2. 오픈시프트의 구조

  • 오픈시프트에 구축되는 시스템 환경은 여러 Node로 구성
  • 각 Node에는 Pod을 배치
  • 파드 (Pod)
    • 쿠버네티스가 컨테이너들을 관리하기 위한 논리 단위
    • 오픈시프트에서 관리하는 가장 작은 단위
    • 하나의 Pod에 N개의 컨테이너 배포 가능
    • Master에 의해 설치, 부하 모니터링, 오류 감지, 모니터 등을 자동 관리
      • Master : 쿠버네티스 구현을 확장한 OpenShift Enterprise 관리 서버
  • 버전 관리 시스템의 커밋 이벤트를 통해 애플리케이션을 자동으로 Docker 이미지에 빌드 및 배포 가능
  • 라우팅 레이어를 통해 애플리케이션에 접속 가능

 

 

 

 

 

 


📌  References

https://velog.io/@holicme7/K8s-%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80#%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4%EB%9E%80

https://blog.goorm.io/kdt_kubernetes/

https://www.codestates.com/blog/content/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4

https://eng-sohee.tistory.com/129

https://tosiri.tistory.com/8

https://nice-engineer.tistory.com/entry/Red-Hat-Openshift-%EB%9E%80

https://jhleed.tistory.com/161

 

 

 

 

 

 

 

 

 

 

 

 

728x90
저작자표시 비영리 (새창열림)

'DevOps' 카테고리의 다른 글

[DevOps] 컨테이너(Container)와 도커(Docker)  (0) 2025.06.04
[DevOps] Jenkins란?  (1) 2025.06.04
[DevOps] CI/CD란?  (0) 2025.06.04
'DevOps' 카테고리의 다른 글
  • [DevOps] 컨테이너(Container)와 도커(Docker)
  • [DevOps] Jenkins란?
  • [DevOps] CI/CD란?
s_ih_yun
s_ih_yun
  • s_ih_yun
    CODESYUN
    s_ih_yun
  • 전체
    오늘
    어제
    • 분류 전체보기 (339)
      • Web (8)
      • Java (7)
      • Spring (19)
      • Git (16)
      • MyBatis (1)
      • HTML & CSS (14)
      • JavaScript (11)
      • DevOps (4)
      • Cloud (8)
      • Lanuage (13)
        • C++ (3)
        • Python (10)
      • DB (1)
        • MySQL (1)
        • Oracle (2)
      • Computer Science (26)
        • Concept (3)
        • Algorithm (23)
      • Baekjoon (104)
        • 단계별로 풀어보기 (78)
      • CodeUp (98)
        • Python 기초 100제 (98)
      • Programmers (2)
      • Books (3)
      • etc (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • Syun's Pages
  • 인기 글

  • 태그

    HTML
    Cloud
    SourceTree
    codeup
    CSS
    Python
    spring
    알고리즘
    clean code
    myBatis
    CodeUp 기초 100제
    단계별로 풀어보기
    java
    JavaScript
    자료구조
    웹
    MySQL
    aws
    oracle
    Tistory
    VS Code
    c++
    web
    BOJ
    C
    github
    db
    git
    Programmers
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s_ih_yun
[DevOps] 오픈시프트(OpenShift)와 쿠버네티스(Kubernetes)
상단으로

티스토리툴바