Hyper Cloud

_wiwater·2022년 9월 25일
0

클라우드

목록 보기
2/4
post-custom-banner

Hyper Cloud 간략 정리

1. 파드란 ?

  • 쿠버네티스의 기본 구성 요소, 쿠버네티스 객체 모델 중 만들고 배포할 수 있는 가장 작고 간단한 단위로 클러스터에서의 Running 프로세스를 나타낸다
    • 파드는 애플리케이션 컨테이너, 저장소 리소스, 특정 네트워크 IP, 컨테이너가 동작하기 위해 만들어진 옵션들을 캡슐화 함
    • 파드는 배포의 단위를 말함

1-1. 볼륨

  • 파드의 일부분, 파드와 동일한 라이프 사이클을 갖는 디스크 스토리지
    • 볼륨은 독립적인 쿠버네티스 리소스가 아니므로 자체적으로 생성, 삭제될 수 없음
    • 볼륨은 파드의 모든 컨테이너에서 사용 가능하며 이 경우 접근하려는 각 컨테이너에서 마운트

*사용가능한 볼륨 목록
- emptyDir: 일시적인 데이터를 저장하는 데 사용되는 간단한 빈 디렉터리
- hostPath: 워커 노드의 파일 시스템을 파드의 디렉터리로 마운트하는데 사용
- nfs: NFS 공유 파드에 마운트
- gcePersistentDisk(GCE Persistent Disk), awsElasticBlockStore(AWS EBS Volume), azureDist(MS Azure Disk Volume): 클라우드 제공자의 전용 스토리지를 마운트
- cinder, cephfs, iscsi, glusterfs, quobyte, rbd, flexVolume, vsphereVolume, photonPersistentDisk: 다른 유형의 네트워크 스토리지를 마운트
- configMap, secret, downwardAPI: 쿠버네티스 리소스나 클러스터 정보를 파드에 노출하는 데 사용되는 특별한 유형의 볼륨
- persistentVolumeClaim: 사전에 혹은 동적으로 프로비저닝된 퍼시스턴트 스토리지를 사용하는 방법

2. 디플로이먼트란? : 클러스터에서 복제된 애플리케이션 관리

  • 파드와 레플리카셋에 대한 선언적 업데이트를 제공
  • 디플로이먼트에서 의도하는 상태를 설명하고, 디플로이먼트 컨트롤러는 현재 상태에서 의도하는 상태로 비율을 조정하며 변경함
  • 새 레플리카셋을 생성하는 디플로이먼트를 정의하거나 기존 디플로이먼트를 제고하고 모든 리소스를 새 디플로이먼트에 적용할 수 있음

3. 레플리카셋

  • 레플리카 파드 집합의 실행을 항상 안정적으로 유지하는 것
  • 보통 명시된 동일 파드 개수에 대한 가용성을 보증하는데 사용함

4. HPA (Horizontal Pod Autoscaler)

  • CPU 또는 메모리 사용률에 따라 파드 수를 조정해 클러스터 가동률을 관리함
    -> 오토스케일링이란 ? : 사용자가 정의한 주기나 이벤트에 따라 서버를 자동으로 생성하거나 삭제하는 것

5. 데몬셋 (Daemonset)

  • 클러스터 전체 노드에 특정 파드를 실행할 때 사용하는 컨트롤러
  • 클러스터 안에 새롭게 노드가 추가되었을 때 데몬셋이 자동으로 해당 노드에 파드를 실행시킴
  • 반대로 노드가 클러스터에서 빠졌을 때는 해당 노드에 있던 파드는 그대로 사라질 뿐 다른 곳으로 옮겨가서 실행되지는 않음

**보통 로그 수집기를 실행하거나 노드를 모니터링하는 데몬 등 클러스터 전체에 항상 실행해두어야 하는 파드에 사용

  1. 스테이트풀셋
  • 애플리케이션의 스테이트풀을 관리하는데 사용하는 워크로드 API오브젝트임
  • 파드 집합의 디플로이먼트와 스케일링을 관리하며, 파드들의 순서 및 고유성 보장
  • 디플로이먼트와 유사하게 스테이트풀셋은 동일한 컨테이너 스펙을 기반으로 둔 파드들을 관리
  • 디플로이먼트와 다르게 각 파드의 독자성을 유지함
  • 이 파드들은 동일한 스펙으로 생성되었지만 서로 교체는 불가 -> 각각은 재스케쥴링 간에도 지속적으로 유지되는 식별자 가짐

6-1. 스테이트풀셋 사용

  • 안정된, 고유한 네트워크 식별자
  • 안정된, 지속성을 갖는 스토리지
  • 순차적인, 정상배포와 스케일링
  • 순차적인 자동 롤링 업데이트
    중 하나 또는 이상이 필요한 애플리케이션에 유용

7. 컨피그맵

  • 키-값 쌍으로 기밀이 아닌 데이터를 저장하는데 사용하는 API 오브젝트
  • 파드는 볼륨에서 환경 변수, 커맨드-라인 인수 또는 구성 파일로 컨피그맵 사용 가능
  • 컨피그맵 이용 시 컨테이너 이미지에서 환경별 구성을 분리하여 애플리케이션을 쉽게 이식할 수 있음
  • 설정 정보를 정의하고 파드에 전달

8. 시크릿 생성

8-1. 소스 시크릿 생성

  • Base64로 인코딩한 기본 인증(사용자 이름, 패스워드) 및 SSH 키 데이터를 인증에 사용하는 소스 시크릿 생성
    - Base64 ?
    -> 8비트 이진 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식

8-2. 웹후크 시크릿 생성

  • 웹후크 : 애플리케이션 작업이 수행되었음을 HTTP POST 방식으로 전송
    -> 엔트포인트에서 발생한 이벤트가 우리의 앱에 수신되는 형태
    *엔드포인트? 발생한 이벤트가 어디로 전달되어야 하는가에 대한 것/이벤트의 목적지
    -> 일방적으로 APi는 클라이언트가 서버를 호출하지만, 웹훅의 경우 웹훅을 서버 측에 등록하면 서버에서 특정 이벤트가 발생했을 때 클라이언트를 호출하게 됨
    • API? 정의 및 프로토콜 집하을 사용하여 두 소프트웨어 구성요소가 서로 통신할 수 있게 하는 매커니즘
      (예를 들어 기상청의 소프트웨어 시스템에는 일일 기상 데이터가 들어있는데, 휴대폰의 날씨 앱은 API를 통해 이 시스템과 대화하고 휴대폰에 매일 최신 날씨 정보를 표시함)

9. 잡

  • 하나 이상의 파드를 생성하고 지정된 수의 파드가 성공적으로 종료될 때까지 계속해서 파드의 실행을 재시도함
  • 파드가 성공적으로 완료되면, 성공적으로 완료된 잡을 추적함
  • 지정된 수의 성공 완료에 도달하면 작업, 즉 잡이 완료됨
  • 잡을 삭제하면 잡이 생성한 파드가 정리되며 작업을 일시 중지하면 작업이 다시 재개될 때까지 활성 파드가 삭제됨
    *크론잡 : 일정한 기간마다 잡을 생성하여 수행하는 것으로 정기적이고 반복적인 작업을 만드는데 사용됨

10. 스토리지클래스

  • 관리자가 제공하는 스토리지의 "classes"를 설명할 수 있는 방법을 제공
    • 다른 클래스는 서비스의 품질 수준 또는 백업 정책, 클러스터 관리자가 정한 임의의 정책에 매핑될 수 있음
    • rook-ceph? : rook을 도구로 사용하여 설치한 ceph라는 가상 스토리지
      *rook : 오픈소스 클라우드 네이티브 스토리지 오케스트레이터로 클라우드 네이티브 환경과 기본적으로 통합할 수 있는 다양한 스토리지 솔루션 세트에 대한 플랫폼, 프레임워크 및 지원
      -> 파드에서 실행되며 ceph등 가상솔루션을 파드로 배포하여 관리하는 도구
      -> ceph는 공유확장에 특화되어 있는 스토리지가 필요할 때 사용됨

11. 데이터 볼륨(데이터를 다른 컨테이너와 공유하거나 호스트에서 접근)

  • 도커 컨테이너가 실행 중에 작성 혹은 수정된 파일은 호스트 쪽 파일 시스템에 마운트 되지 않는 한 컨테이너가 파기될 때 호스에서 함께 삭제됨
  • 컨테이너를 사용해서 애플리케이션을 운영하다 보면 새로운 버전의 컨테이너가 배포된다 하더라도 이전 버전의 컨테이너에서 사용하던 파일들을 그대로 사용할 수 ㅣ있어야 함 -> 이런 경우 사용되는 것이 데이터 볼륨
post-custom-banner

0개의 댓글