본문 바로가기

Infra

(15)
PV/ PVC/ StorageClass 정리표 1. 기본 개념1) Volume컨테이너 종료 시에도 유지할 수 있는 데이터 저장 공간2) emptyDirPod 생성 시 생성, Pod 삭제시 삭제 (임시 저장용)3) hostPath노드 로컬 디렉토리 사용 (비권장, 실습용/ 로그용)4) PersistentVolume (PV)클러스터에서 미리 만들어진 실제 스토리지 자원5) PersistentVolumeClaim (PVC)사용자가 요청하는 스토리지 요구사항 (PV 요청서)6) StorageClass (SC)PV 자동 생성 규칙 정의 (Dynamic Provisioning)2. PV (PersistentVolume)- 역할: 실제 스토리지 공간을 클러스터에 등록- 생성 주체: 클러스터 관리자- 바인딩: PVC와 조건이 맞으면 자동 바인딩- 상태: Avail..
[cka] Kubernetes - Volume 1. Volume 이란?- 컨테이너가 종료되어도 데이터를 보존하기 위한 공간- Pod는 일시적인 존재 -> 삭제되면 그 안의 Container의 데이터도 사라짐- 데이터를 영속적으로 보관하려면 -> Volumne이 필요 2. Volume의 종류 (기본형)1) emptyDir- Pod가 노드에 스케쥴링될 때 생성되고, Pod 삭제 시 함께 삭제됨- 사용예시) 캐시, 임시 데이터 저장용2) hostPath- 노드의 로컬 디렉토리를 마운트- 사용 예시) 로그 수집, 노드 리소스 접근용3) configMap / secret- 설정파일, 인증정보 주입- 사용예시) 환경 변수나 설정 파일 전달4) PersistentVolumneClaim(PVC)- 외부 스토리지와 연결된 영속적 볼륨- 사용 예시) DB, 파일 저장..
[cka] Kubernetes - Imperative 1. Imperative 예제 문제 1) 생성 객체: pod이름: nginx-pod이미지: nginx:alpine-> 정답: kubectl run nginx-pod --image=nginx:alpine 문제 2)생성 객체: pod이름: redis이미지: redis:alpinelabels: tier=db-> 정답:kubectl run redis --image=redis:alpine --labels="tier=db" 문제 3) 생성 객체: service이름: redis-serviceexpose "redis" podcluster port: 6379type: ClusterIP-> 정답:kubectl expose pod redis redis-service --type=ClusterIP --port=6379or k..
[cka] Kubernetes - Imperative vs Declarative 1. Imperative (명령형)- 어떻게- 절차적으로- 수행 절차 중심- cliex) 컨테이너를 실행해라 2. Declarative (선언형)- 무엇이 되어야 하는지?- 최종상태 중심- yamlex) 컨테이너가 싱행된 상태가 되어야 함 3. 명령형과 선언형의 비교 4. 시험 팁
[cka] Kubernetes - Namespace 1. Namespace 란?- Kubernetes 내의 클러스터 내의 논리적인 구획- 하나의 클러스터 내의 여러개의 작은 클러스터처럼 나눔- 서로 격리된 공간에서 리소스를 사용하는 구조 2. Namespace 쓰는 이유?1) 리소스 구분 : 팀/프로젝트 별로 리소스 분리 가능2) 이름 충돌 방지 : 같은 이름의 리소스라도 namespace가 다르면 공존 가능3) 권한 제어 (RBAC) : namespace별로 권한 제어 가능4) 리소스 할당 제한: CPU/memory 쿼터를 namespace 별로 설정 가능 3. 기본생성된 Namespace1) default : 사용자가 별도 지정 X 하면 리소스가 여기에 생성됨2) kube-system: kuberneetes 자체 시스템 컴포넌트ex) kube-dns,..
[cka] Kubernetes - Service 명령어 모음 kubectl get services ( = kubectl get svc)kubectl describe services ( = kubectl describe svc)kubectl create -f service-definition.yaml 1. default service- 아래의 kubernetes 라는 서비스는 클러스터가 처음 생성될때 자동으로 만들어지는 기본 service 임
[cka] Kubernetes - ClusterIP (service type 중) 1. Cluster IP 란?- Service의 4가지 type중 하나- 내부 서비스끼리 소통- 내부 IP도 유동적임- Service를 통해 고정된 IP를 통해 접근가능하도록 함- service를 통해, BE, FE, DB group을 만들고 로드밸런싱하도록 할 수있다.- 각각의 group은 seletor를 통해 나뉘어져 있다 - Cluster IP 쓰기 전 - Cluster IP 쓴 후 2. ClusterIP yaml 파일 예시
[cka] Kubernetes - Service 1. Service가 필요한 이유?(문제점)- pod는 언제든 재시작되거나 다른 노드로 이동 가능-> 이럴때마다 IP가 바뀜-> 다른 pod나 외부 클라이언트가 해당 pod에 직접 접근이 어려워짐(해결책)- service를 사용-> pod 집합에 대한 고정된 endpoint를 제공-> service는 label.selector를 이용해 특정 Pod들을 자동으로 찾아 연결함2. Service의 주요역할1) 고정된 IP 제공: pod의 IP가 변해도 service의 고정된 IP로 접근가능 2) 로드밸런싱: 여러 pod에 트래픽 분산3) 서비스 디스커버리(DNS): service-name.namespace.svc.cluster.local 형태로 다른 Pod에서 접근가능4) 외부노출: 클러스터 밖에서도 접근할 ..