Hyper Cloud 간략 정리
- 쿠버네티스의 기본 구성 요소, 쿠버네티스 객체 모델 중 만들고 배포할 수 있는 가장 작고 간단한 단위로 클러스터에서의 Running 프로세스를 나타낸다
- 파드는 애플리케이션 컨테이너, 저장소 리소스, 특정 네트워크 IP, 컨테이너가 동작하기 위해 만들어진 옵션들을 캡슐화 함
- 파드는 배포의 단위를 말함
- 파드의 일부분, 파드와 동일한 라이프 사이클을 갖는 디스크 스토리지
- 볼륨은 독립적인 쿠버네티스 리소스가 아니므로 자체적으로 생성, 삭제될 수 없음
- 볼륨은 파드의 모든 컨테이너에서 사용 가능하며 이 경우 접근하려는 각 컨테이너에서 마운트
*사용가능한 볼륨 목록
- 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: 사전에 혹은 동적으로 프로비저닝된 퍼시스턴트 스토리지를 사용하는 방법
- 파드와 레플리카셋에 대한 선언적 업데이트를 제공
- 디플로이먼트에서 의도하는 상태를 설명하고, 디플로이먼트 컨트롤러는 현재 상태에서 의도하는 상태로 비율을 조정하며 변경함
- 새 레플리카셋을 생성하는 디플로이먼트를 정의하거나 기존 디플로이먼트를 제고하고 모든 리소스를 새 디플로이먼트에 적용할 수 있음
- 레플리카 파드 집합의 실행을 항상 안정적으로 유지하는 것
- 보통 명시된 동일 파드 개수에 대한 가용성을 보증하는데 사용함
- CPU 또는 메모리 사용률에 따라 파드 수를 조정해 클러스터 가동률을 관리함
-> 오토스케일링이란 ? : 사용자가 정의한 주기나 이벤트에 따라 서버를 자동으로 생성하거나 삭제하는 것
- 클러스터 전체 노드에 특정 파드를 실행할 때 사용하는 컨트롤러
- 클러스터 안에 새롭게 노드가 추가되었을 때 데몬셋이 자동으로 해당 노드에 파드를 실행시킴
- 반대로 노드가 클러스터에서 빠졌을 때는 해당 노드에 있던 파드는 그대로 사라질 뿐 다른 곳으로 옮겨가서 실행되지는 않음
**보통 로그 수집기를 실행하거나 노드를 모니터링하는 데몬 등 클러스터 전체에 항상 실행해두어야 하는 파드에 사용
- 애플리케이션의 스테이트풀을 관리하는데 사용하는 워크로드 API오브젝트임
- 파드 집합의 디플로이먼트와 스케일링을 관리하며, 파드들의 순서 및 고유성 보장
- 디플로이먼트와 유사하게 스테이트풀셋은 동일한 컨테이너 스펙을 기반으로 둔 파드들을 관리
- 디플로이먼트와 다르게 각 파드의 독자성을 유지함
- 이 파드들은 동일한 스펙으로 생성되었지만 서로 교체는 불가 -> 각각은 재스케쥴링 간에도 지속적으로 유지되는 식별자 가짐
- 안정된, 고유한 네트워크 식별자
- 안정된, 지속성을 갖는 스토리지
- 순차적인, 정상배포와 스케일링
- 순차적인 자동 롤링 업데이트
중 하나 또는 이상이 필요한 애플리케이션에 유용
- 키-값 쌍으로 기밀이 아닌 데이터를 저장하는데 사용하는 API 오브젝트
- 파드는 볼륨에서 환경 변수, 커맨드-라인 인수 또는 구성 파일로 컨피그맵 사용 가능
- 컨피그맵 이용 시 컨테이너 이미지에서 환경별 구성을 분리하여 애플리케이션을 쉽게 이식할 수 있음
- 설정 정보를 정의하고 파드에 전달
- Base64로 인코딩한 기본 인증(사용자 이름, 패스워드) 및 SSH 키 데이터를 인증에 사용하는 소스 시크릿 생성
- Base64 ?
-> 8비트 이진 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식
- 웹후크 : 애플리케이션 작업이 수행되었음을 HTTP POST 방식으로 전송
-> 엔트포인트에서 발생한 이벤트가 우리의 앱에 수신되는 형태
*엔드포인트? 발생한 이벤트가 어디로 전달되어야 하는가에 대한 것/이벤트의 목적지
-> 일방적으로 APi는 클라이언트가 서버를 호출하지만, 웹훅의 경우 웹훅을 서버 측에 등록하면 서버에서 특정 이벤트가 발생했을 때 클라이언트를 호출하게 됨
- API? 정의 및 프로토콜 집하을 사용하여 두 소프트웨어 구성요소가 서로 통신할 수 있게 하는 매커니즘
(예를 들어 기상청의 소프트웨어 시스템에는 일일 기상 데이터가 들어있는데, 휴대폰의 날씨 앱은 API를 통해 이 시스템과 대화하고 휴대폰에 매일 최신 날씨 정보를 표시함)
- 하나 이상의 파드를 생성하고 지정된 수의 파드가 성공적으로 종료될 때까지 계속해서 파드의 실행을 재시도함
- 파드가 성공적으로 완료되면, 성공적으로 완료된 잡을 추적함
- 지정된 수의 성공 완료에 도달하면 작업, 즉 잡이 완료됨
- 잡을 삭제하면 잡이 생성한 파드가 정리되며 작업을 일시 중지하면 작업이 다시 재개될 때까지 활성 파드가 삭제됨
*크론잡 : 일정한 기간마다 잡을 생성하여 수행하는 것으로 정기적이고 반복적인 작업을 만드는데 사용됨
- 관리자가 제공하는 스토리지의 "classes"를 설명할 수 있는 방법을 제공
- 다른 클래스는 서비스의 품질 수준 또는 백업 정책, 클러스터 관리자가 정한 임의의 정책에 매핑될 수 있음
- rook-ceph? : rook을 도구로 사용하여 설치한 ceph라는 가상 스토리지
*rook : 오픈소스 클라우드 네이티브 스토리지 오케스트레이터로 클라우드 네이티브 환경과 기본적으로 통합할 수 있는 다양한 스토리지 솔루션 세트에 대한 플랫폼, 프레임워크 및 지원
-> 파드에서 실행되며 ceph등 가상솔루션을 파드로 배포하여 관리하는 도구
-> ceph는 공유확장에 특화되어 있는 스토리지가 필요할 때 사용됨
- 도커 컨테이너가 실행 중에 작성 혹은 수정된 파일은 호스트 쪽 파일 시스템에 마운트 되지 않는 한 컨테이너가 파기될 때 호스에서 함께 삭제됨
- 컨테이너를 사용해서 애플리케이션을 운영하다 보면 새로운 버전의 컨테이너가 배포된다 하더라도 이전 버전의 컨테이너에서 사용하던 파일들을 그대로 사용할 수 ㅣ있어야 함 -> 이런 경우 사용되는 것이 데이터 볼륨