오토스케일링 기본 개념 및 유형쿠버네티스에서 오토스케일링은 리소스 수요 변화에 탄력적이고 효율적으로 대응할 수 있도록 워크로드를 자동으로 업데이트하는 능력을 의미한다. 쿠버네티스는 세 가지 주요 오토스케일링 방식을 제공한다. 오토스케일링 유형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가 존재한다..
시크릿 기본 개념 및 YAML 구조시크릿(Secret)은 암호, API 키, 인증 토큰과 같이 민감한 데이터를 저장하고 관리하기 위한 쿠버네티스 오브젝트다. 시크릿을 사용하면 이러한 민감한 정보를 파드 정의(YAML) 파일에 직접 하드코딩하는 것을 피할 수 있어 보안을 강화하고 설정 관리를 유연하게 할 수 있다. 기본 시크릿 YAML 예시가장 일반적인 Opaque 타입의 시크릿 예시다. stringData 필드를 사용하면 값을 Base64로 인코딩하지 않고 평문으로 편리하게 작성할 수 있다.apiVersion: v1kind: Secretmetadata: name: my-secrettype: OpaquestringData: username: "admin" password: "my-secure-pass..
컨피그맵 기본 개념 및 YAML 구조컨피그맵(ConfigMap)은 애플리케이션 코드와 설정을 분리하기 위해 사용하는 API 오브젝트다. Key-Value 쌍 형태로 비-기밀(non-confidential) 설정 데이터를 저장한다.주요 목적: 컨테이너 이미지에 하드코딩된 설정 값을 외부로 분리하여, 배포 환경에 따라 유연하게 설정을 변경할 수 있도록 한다.저장 데이터: 환경 변수, 커맨드 라인 인수, 설정 파일 등 기본 컨피그맵 YAML 예시app-color와 app-mode라는 두 개의 설정 값을 갖는 컨피그맵 예시다.apiVersion: v1kind: ConfigMapmetadata: name: my-configdata: app-color: blue app-mode: "production" YAM..