분류 전체보기
-
[Kubernetes] Pod - 라이프사이클과 컨테이너 프로브공부/데이터 2025. 2. 9. 20:08
파드는 정의된 생명주기를 따르며 Pending 단계에서 시작하여 하나 이상의 기본 컨테이너가 정상적으로 시작되면 Running 단계를 거쳐 파드 내의 컨테이너 중 하나라도 실패로 종료되면 Succeeded 또는 Failed 단계 중 하나를 거칩니다.개별 애플리케이션 컨테이너와 마찬가지로 파드는 비교적 일시적인(내구성이 없는) 엔터티로 간주됩니다. 파드는 생성되고 고유 ID(UID)가 할당되며 종료(재시작 정책에 따름) 또는 삭제될 때까지 노드에서 실행되도록 예약됩니다. 만약 노드가 죽으면 해당 노드에서 실행 중이거나 실행 예정인 파드는 삭제 대상으로 표시됩니다. 컨트롤 플레인은 시간 초과 후 파드를 제거 대상으로 표시합니다.파드 수명파드는 수명 주기 동안 단 한 번만 스케줄링됩니다. 특정 노드에 파드를 ..
-
[Kubernetes] 구성 - 노드 구성 및 리소스 관리공부/데이터 2025. 2. 6. 00:20
Cordon쿠버네티스에서 Cordon은 특정 노드에 새로운 파드가 스케줄되지 않도록 하는 기능입니다. 노드를 유지보수하거나 문제를 해결하기 전에 해당 노드에서 실행 중인 파드들을 다른 노드로 안전하게 이동시키기 위해 사용됩니다.작동 방식Cordon 명령을 실행하면 해당 노드의 스케줄링 기능이 비활성화됩니다. 즉, 쿠버네티스 스케줄러는 Cordon된 노드에 새로운 파드를 할당하지 않습니다. 또한 Cordon은 이미 실행 중인 파드에는 영향을 주지 않습니다. 파드들은 계속해서 실행되지만 새로운 파드는 해당 노드에 생성되지 않습니다.사용 시나리오노드 유지보수: 하드웨어 업그레이드, OS 패치, 커널 업데이트 등 노드 유지보수를 수행하기 전에 Cordon을 사용하여 새로운 파드가 해당 노드에 배포되는 것을 방지..
-
[Kubernetes] 구성 - 파드, 컨테이너 구성 및 리소스 관리공부/데이터 2025. 2. 3. 23:52
파드 label파드 label은 쿠버네티스에서 파드 및 다른 리소스를 조직하고 관리하는 데 사용되는 핵심 개념입니다. label은 키-값 쌍으로 리소스에 연결되며, label selector를 사용하여 다른 워크로드 리소스에서 분류하고 선택하는 데 활용됩니다. apiVersion: v1kind: Podmetadata: name: my-app-pod labels: app: my-app env: production version: 1.0 tier: frontendspec: containers: - name: my-app-container image: nginx:latest ports: - containerPort: 80metadata.labels 섹션에 키-값 쌍..
-
[Kubernetes] Pod - PodDisruptionBudget (PDB)공부/데이터 2025. 2. 2. 00:37
PodDisruptionBudget(PDB)은 Kubernetes에서 고가용성 애플리케이션을 구축하기 위한 핵심 요소 중 하나입니다. PDB는 애플리케이션의 파드가 중단되는 상황을 관리하고 최소한의 가용성을 보장하는 역할을 합니다.자발적 중단 (Voluntary Disruption), 비자발적 중단 (Involuntary Disruption)자발적 중단 (Voluntary Disruption)자발적 중단은 클러스터 관리자 또는 애플리케이션 소유자가 계획적으로 수행하는 파드 중단을 의미합니다.특징으론 사전에 계획된 작업으로 인해 발생합니다. 또한 클러스터 관리자가 중단 시점을 제어할 수 있고 파드가 정상적으로 종료될 수 있도록 유예 기간(grace period)을 설정할 수 있습니다.다음은 자발적 중단의 ..
-
[Kubernetes] 구성 - ConfigMaps, secrets공부/데이터 2025. 2. 1. 23:42
ConfigMapsConfigMap은 key-value 쌍으로 데이터를 저장하는 데 사용되는 API 객체입니다. 파드는 ConfigMap을 환경 변수, 명령줄 인자 또는 볼륨의 구성 파일 형태로 사용할 수 있습니다.ConfigMap을 사용하면 컨테이너 이미지에서 환경별 설정을 분리할 수 있으므로 애플리케이션을 쉽게 이식할 수 있습니다.💡ConfigMap은 암호화를 제공하지 않습니다. 저장하려는 데이터에 암호화가 필요한 경우 ConfigMap 대신 Secret을 사용하거나 데이터를 비공개로 유지하기 위해 추가적인 도구를 사용해야 합니다.예를 들어, 개인 컴퓨터(개발용)와 클라우드(실제 트래픽 처리용)에서 실행할 수 있는 애플리케이션을 개발한다고 합니다. DATABASE_HOST라는 환경 변수를 찾도록 코..
-
[Kubernetes] 워크로드 리소스 - HPA, VPA공부/데이터 2025. 1. 31. 22:36
Kubernetes에서 자동 크기 조정은 워크로드의 크기를 자동으로 조절하여 클러스터가 리소스 수요 변화에 탄력적이고 효율적으로 대응하도록 하는 기능입니다. 자동 크기 조정은 크게 두 가지 방식으로 나눌 수 있습니다.HorizontalPodAutoscaler (HPA) - 스케일아웃⚠️HPA가 작동하려면 클러스터에 Metrics Server를 설치 해야 합니다.워크로드에서 관리하는 복제본의 수를 늘리거나 줄이는 방식입니다. 리소스 수요가 증가하면 replicas 수를 늘려 처리량을 늘리고 수요가 감소하면 replicas 수를 줄여 리소스 낭비를 방지합니다. 예를 들어, 웹 애플리케이션의 트래픽이 증가하면 웹 서버 복제본 수를 늘려 트래픽을 분산 처리하고, 트래픽이 감소하면 복제본 수를 줄여 불필요한 서버..
-
[Kubernetes] 스토리지 - PersistentVolume(PV), PersistentVolumeClaim(PVC), StorageClass(SC)공부/데이터 2025. 1. 31. 22:03
PersistentVolume 하위 시스템은 사용자와 관리자에게 스토리지가 어떻게 제공되는지에 대한 세부 사항을 스토리지가 어떻게 사용되는지로부터 추상화하는 API를 제공합니다. 이를 위해 두 가지 새로운 API 리소스인 PersistentVolume과 PersistentVolumeClaim을 도입합니다.PersistentVolume(PV)은 관리자가 프로비저닝했거나 Storage Class를 사용하여 동적으로 프로비저닝한 클러스터의 스토리지 조각입니다. 노드가 클러스터 리소스인 것처럼 클러스터의 리소스입니다. PV는 Volumes와 같은 볼륨 플러그인이지만 PV를 사용하는 개별 Pod의 수명 주기와 독립적인 수명 주기를 갖습니다. 이 API 객체는 NFS, iSCSI 또는 클라우드 공급자별 스토리지 시..
-
[Kubernetes] 스토리지 - 볼륨공부/데이터 2025. 1. 30. 21:46
쿠버네티스 볼륨은 파드 내의 컨테이너가 파일 시스템을 통해 데이터에 접근하고 공유할 수 있는 방법을 제공합니다. 다양한 목적에 따라 사용할 수 있는 여러 종류의 볼륨이 있습니다. 예를 들어 다음과 같은 용도로 사용할 수 있습니다.ConfigMap 또는 Secret을 기반으로 설정 파일을 채우기파드를 위한 임시 스크래치 공간 제공동일한 파드 내의 두 컨테이너 간에 파일 시스템 공유서로 다른 노드에서 실행되더라도 두 개의 다른 파드 간에 파일 시스템 공유파드가 다시 시작되거나 교체되더라도 계속 사용할 수 있도록 데이터 영구 저장컨테이너가 속한 파드의 세부 정보(예: 파드가 실행 중인 네임스페이스)를 기반으로 컨테이너에서 실행되는 앱에 구성 정보 전달 (예: 사이드카 컨테이너에 파드가 실행 중인 네임스페이스 ..
-
[Kubernetes] 서비스, 로드 밸런스, 네트워킹 - Ingress, 게이트웨이 API공부/데이터 2025. 1. 30. 17:38
IngressIngress는 클러스터 외부에서 클러스터 내부의 서비스로 HTTP 및 HTTPS 라우트를 노출합니다. 트래픽 라우팅은 Ingress 리소스에 정의된 규칙에 따라 제어됩니다.다음은 모든 트래픽을 하나의 서비스로 전달하는 간단한 Ingress 예시입니다.Ingress는 서비스에 외부에서 접근 가능한 URL을 제공하고 트래픽을 로드 밸런싱하며 SSL/TLS를 종료하고 이름 기반 가상 호스팅을 제공할 수 있습니다. Ingress 컨트롤러는 일반적으로 로드 밸런서를 사용하여 Ingress를 처리하지만 엣지 라우터나 추가적인 프런트엔드를 구성하여 트래픽 처리를 지원할 수도 있습니다.Ingress 컨트롤러 목록: https://kubernetes.io/docs/concepts/services-netwo..