오토스케일링 기본 개념 및 유형쿠버네티스에서 오토스케일링은 리소스 수요 변화에 탄력적이고 효율적으로 대응할 수 있도록 워크로드를 자동으로 업데이트하는 능력을 의미한다. 쿠버네티스는 세 가지 주요 오토스케일링 방식을 제공한다. 오토스케일링 유형HPA (Horizontal Pod Autoscaler): 파드의 복제본 수를 조정하는 수평적 스케일링VPA (Vertical Pod Autoscaler): 개별 파드의 CPU와 메모리 요청값을 조정하는 수직적 스케일링Cluster Autoscaler: 클러스터의 노드 수를 조정하는 클러스터 레벨 스케일링 HPA 심화 이해HPA 기본 개념 및 작동 원리HPA는 워크로드 리소스(디플로이먼트, 스테이트풀셋 등)를 자동으로 업데이트하여 수요에 맞게 워크로드 크기를 자동으로..
CKA
로깅과 모니터링 기본 개념쿠버네티스 환경에서는 로그를 로컬 디스크에 저장하지 않고, 중앙집중형 스토리지(클러스터 레벨 로깅)를 사용하는 것이 권장된다.파드의 로그는 kubectl logs 명령으로 직접 확인할 수 있다.컨테이너 로그는 컨테이너 런타임(예: Docker, containerd)이 관리한다.시스템 컴포넌트 로그(kubelet, 컨테이너 런타임 등)는 별도의 방식으로 수집된다. 클러스터 레벨 로깅컨테이너, 파드, 노드의 생명주기와 분리된 외부 스토리지에 로그를 저장해야 장애 상황에서도 로그를 확인할 수 있다.쿠버네티스는 자체적으로 클러스터 레벨 로깅 도구를 제공하지 않으며, 외부 도구(예: ELK, Fluentd, Loki 등)와 연동해 구축한다. 모니터링 아키텍처코어 메트릭 파이프라인: 쿠버..
쿠버네티스 DNS 기본 개념쿠버네티스는 클러스터 내부에서만 사용하는 DNS 시스템을 제공한다.파드, 서비스 등 리소스 간 통신 시 IP 대신 도메인 이름을 사용할 수 있다.서비스 디스커버리(내부 서비스 탐색) 용도로 활용된다. DNS 네이밍 규칙 및 구조서비스 도메인: 서비스이름.네임스페이스.svc.cluster.local파드 도메인: 파드IP.네임스페이스.pod.cluster.local파드 템플릿에서 .spec.template.spec.hostname과 .spec.template.spec.subdomain을 설정해 도메인 이름을 커스터마이즈할 수 있다. DNS 정책 및 설정.spec.dnsPolicy 필드로 파드의 DNS 정책을 지정한다.Default: 노드의 DNS 설정 사용ClusterFirst: ..
클러스터 네트워킹 기본 개념쿠버네티스는 파드마다 고유한 IP를 할당하여, 파드 간 직접 통신이 가능하도록 설계되었다.파드는 하나 이상의 컨테이너로 구성되며, 같은 파드 내 컨테이너들은 동일한 네트워크 네임스페이스(IP, 포트)를 공유한다.파드의 네트워크 인프라는 pause 컨테이너(파드 내 네트워크 네임스페이스를 유지하는 인프라 컨테이너)가 담당하며, 사용자 컨테이너는 pause 컨테이너의 네트워크 네임스페이스를 공유한다.여러 노드로 구성된 클러스터에서 각 노드에 배포된 파드들은 IP를 통해 서로 통신한다.파드는 하나 이상의 컨테이너로 구성되며, 같은 파드 내 컨테이너들은 동일한 네트워크 네임스페이스(IP, 포트)를 공유한다. 클러스터 네트워킹 구조 각 노드에는 여러 파드와 kube-proxy가 존재한다..
데이터 저장 기본 개념컨테이너는 기본적으로 상태가 없는(stateless) 앱을 실행하며, 컨테이너 내부에 저장한 데이터는 컨테이너가 삭제되면 모두 사라진다.데이터를 영구적으로 보존하려면 볼륨(Volume) 을 사용해야 하며, 볼륨을 사용하면 컨테이너 재시작 시에도 데이터가 유지된다.퍼시스턴트 볼륨(Persistent Volume, PV) 을 사용하면, 파드가 다른 노드에서 재시작되어도 데이터를 유지할 수 있다. 볼륨(Volume) 종류 및 주요 필드emptyDir파드가 실행되는 노드의 디스크를 임시로 컨테이너에 할당.파드가 삭제되면 데이터도 함께 삭제됨(단, 컨테이너 재시작 시에는 데이터 유지).대용량 데이터 계산, 중간 데이터 저장 등에 활용. hostPath파드가 실행된 노드의 실제 파일/디렉터리를..
인증과 권한 관리 기본 개념쿠버네티스에서 API에 접근하려면 반드시 인증(Authentication)과 권한 관리(Authorization)를 거쳐야 한다.API 서버 기본 포트: 6443 (TLS 적용)인증: 클라이언트와 kube-apiserver 간의 인증서 기반 통신계정 종류: 사용자 계정(외부 시스템 연동)과 서비스 계정(쿠버네티스가 직접 관리) 인증 정보 관리사용자 홈 디렉터리의 .kube/config 파일에 인증 정보 저장kubectl config 명령으로 인증 정보 설정/조회주요 필드: users, clusters, contexts, current-context 인증서 검증 옵션insecure-skip-tls-verify: 인증서 검증 생략 여부server: API 서버 주소client-ce..