본문 바로가기

what is

(15)
[ArgoCD]ArgoCD Architecture API server API 서버는 웹 UI, CLI 및 CI/CD 시스템에서 사용하는 API를 노출하는 gRPC/REST 서버입니다. 다음과 같은 책임이 있습니다. 애플리케이션 관리 및 상태 보고 애플리케이션 작업 호출(예: 동기화, 롤백, 사용자 정의 작업) 리포지토리 및 클러스터 자격 증명 관리(K8s에 secret으로 저장됨) 외부 ID 공급자에 대한 인증 및 인증 위임 RBAC 시행 Git 웹훅 이벤트에 대한 리스너/포워더 Repository Server 리포지토리 서버는 애플리케이션 매니페스트를 보유하는 Git 리포지토리의 로컬 캐시를 유지 관리하는 내부 서비스입니다. 다음 입력이 제공될 때 Kubernetes 매니페스트 생성 및 반환을 담당합니다. 저장소 URL revision (commit,..
[Kubernetes]What is Pause Container(Infra Container) Concept 쿠버네티스에는 모든 파드에서 항상 실행되는 pause라는 컨테이너가 있다. 이 pause를 파드 인프라 컨테이너라고 한다. 프로세스 식별자가 1(PID 1)로 설정되므로 다른 컨테이너의 부모 컨테이너 역할을 한다. 파드 안 다른 컨테이너는 pause 컨테이너가 제공하는 네트워크를 공유해서 사용한다. 따라서, 파드 안 다른 컨테이너가 재시작했을 때는 파드의 IP를 유지하지만, pause 컨테이너가 재시작되면 파드 안 모든 컨테이너도 재시작한다. 2022.05.01 - [리뷰/도서] - [도서]쿠버네티스 입문
[Kubernetes]What is RBAC in Kubernetes? (Role based access control) Purpose When lots of users use a cluster, we can seperate access rights with namespace or API. 클러스터 하나를 여러 명이 사용할 때는 API나 네임스페이스별로 권한을 구분해서 권한이 있는곳에만 접근하도록 만들 수 있다. Kubernetes API Access Control type ABAC(Attribute-based access control) access control paradigm whereby access rights are granted to users through the use of policies which combine attributes together. RBAC(Role-based access control)..
[Kubernetes]What are PV and PVC in Kubernetes? Concept PersistentVolume A piece of storage in the cluster that has been provisioned by an administrator or dynamically provisioned using Storage Classes. 퍼시스턴트볼륨 (PV)은 관리자가 프로비저닝 하거나 스토리지 클래스를 사용하여 동적으로 프로비저닝 한 클러스터의 스토리지이다. 노드가 클러스터 리소스인 것처럼 PV는 클러스터 리소스이다. PV는 Volumes와 같은 볼륨 플러그인이지만, PV를 사용하는 개별 파드와는 별개의 라이프사이클을 가진다. 이 API 오브젝트는 NFS, iSCSI 또는 클라우드 공급자별 스토리지 시스템 등 스토리지 구현에 대한 세부 정보를 담아낸다. Pers..
[Kubernetes]What is Kubernetes Horizontal Pod Autoscaler (HPA) 쿠버네티스에서, HorizontalPodAutoscaler는 워크로드 리소스(예: 디플로이먼트 또는 스테이트풀셋)를 자동으로 업데이트하며, 워크로드의 크기를 수요에 맞게 자동으로 스케일링하는 것을 목표로 한다. → 부하 증가에 대해 파드를 더 배치하는 것을 뜻한다. 부하량이 줄어들고, 파드의 수가 최소 설정값 이상인 경우 HPA는 스케일 다운을 지시한다. 알고리즘 원하는 레플리카 수 = ceil[현재 레플리카 수 * ( 현재 메트릭 값 / 원하는 메트릭 값 )] 예시 - 1 현재 메트릭 값 200m, 원하는 값 100m인 경우 200/100 = 2 레플리카 수는 2배가 된다. 예시 - 2 현재 메트릭 값 50m, 원하는 값 100m인 경우 50/100 = 0.5 레플리카 수는 1/2배가 된다. yaml ..
[Kubernetes]What is Kubernetes Service 파드 집합에서 실행중인 애플리케이션을 네트워크 서비스로 노출하는 추상화 방법 여러개 파드에 접근할 수 있는 고유한 IP를 제공한다. 파드 집합에 대한 단일 DNS명을 부여한다. 다양한 기능을 제공하지만 본질적으로 로드밸런서 역할을 한다. 개념 동적으로 변하는 파드들에 고정적으로 접근할 때 사용하는 방법이 쿠버네티스 서비스 이다. 서비스를 사용하면 파드가 클러스터 안 어디에 있든 고정 주소를 이용해 접근할 수 있다. 인그레스로도 접근 할 수 있고 아래와 같은 차이가 있다. 서비스 → L4 영역 통신에서 사용 인그레스 → L7 영역 통신에서 사용 서비스 타입 ClusterIP 기본 서비스 타입. 쿠버네티스 클러스터 안에서만 사용할 수 있다. 클러스터 안 노드나 파드에서는 클러스터 IP를 이용해서 서비스에 연..
[Kubernetes]What is a Kubernetes CronJob(크론잡) 크론잡은 백업, 리포트 생성 등의 정기적 작업을 수행하기 위해 사용된다. 각 작업은 무기한 반복되도록 구성해야 한다(예: 1일/1주/1달마다 1회). 작업을 시작해야 하는 해당 간격 내 특정 시점을 정의할 수 있다. 크론잡은 반복 일정에 따라 잡을 만든다. 하나의 크론잡 오브젝트는 크론탭 (크론 테이블) 파일의 한 줄과 같다. 크론잡은 잡을 크론 형식으로 쓰여진 주어진 일정에 따라 주기적으로 동작시킨다. 모든 크론잡의 시간은 kube-controller-manager(컨트롤러 프로세스를 실행하는 컨트롤 플레인 컴포넌트) 의 시간대를 기준으로 한다. Example - CronJob apiVersion: batch/v1 kind: CronJob metadata: name: hello spec: schedul..
[Kubernetes]What is a Kubernetes Job(잡) 하나 이상의 파드를 생성하고 지정된 수의 파드가 성공적으로 종료될 때까지 계속해서 파드의 실행을 재시도한다. → 특정 개수만큼의 파드를 정상적으로 실행 종료함을 보장한다. → Pod 실행 실패, 하드웨어 장애 발생, 노드 재시작 등 문제가 발생하면 다시 Pod를 실행한다. 실행된 후 종료해야 하는 성격의 작업을 실행시킬때 사용하는 컨트롤러이다. Job 은 apply로 update 할 수 없고 삭제 후 다시 apply해야 한다. Job 하나가 Pod를 여러개 실행할 수도 있다. Example - Job job.yaml apiVersion: batch/v1 kind: Job metadata: name: pi spec: template: spec: containers: - name: pi image: perl..