공부
-
[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..
-
[Kubernetes] 서비스, 로드 밸런스, 네트워킹 - Service공부/데이터 2025. 1. 29. 23:14
배포한 어플리케이션을 노출하는 방법쿠버네티스에서 애플리케이션을 외부에 노출하는 일반적인 방법은 Service 리소스를 사용하는 것입니다. 하지만 몇 가지 특정한 경우에는 서비스를 사용하지 않고도 애플리케이션을 노출할 수 있습니다. 여기서 소개하는 방식은 전부 단점이 존재하기 때문에 Service를 사용해 애플리케이션을 노출해야 합니다.Port-forwardingkubectl port-forward 명령어를 사용하여 로컬 머신의 특정 포트를 파드 내부의 컨테이너 포트에 연결합니다. 이렇게 하면 로컬 머신의 포트를 통해 파드 내부에서 실행되는 애플리케이션에 접근할 수 있습니다.포트 포워딩은 개발 및 디버깅 과정에서 주로 사용되며 로컬 머신에만 유효하여 영구적인 애플리케이션 노출 방법으로는 적합하지 않습니다...
-
[Kubernetes] 워크로드 리소스 - StatefulSets, DaemonSet공부/데이터 2025. 1. 29. 17:01
StatefulSetsStatefulSet은 Kubernetes에서 상태를 유지해야 하는 애플리케이션을 관리하기 위한 워크로드 API 객체입니다. 일반적인 Deployment와 달리 StatefulSet은 각 파드에 고유한 식별자를 부여하고 이를 유지하여 상태를 보장합니다. 즉, StatefulSet은 각 파드에 이름표를 달아주고, 그 이름표를 잃어버리지 않도록 관리하는 역할을 하여 상태를 유지해야 하는 애플리케이션을 안정적으로 운영할 수 있습니다.특징고유한 식별자: 각 파드에 고유한 ID를 부여하여 파드의 순서와 고유성을 보장합니다.영구 저장소: 영구 저장소를 사용하여 데이터를 지속적으로 유지할 수 있습니다.안정적인 네트워크 ID: 안정적인 네트워크 ID를 통해 다른 서비스에서 StatefulSet의 ..
-
[Kubernetes] 워크로드 리소스 - ReplicationController, ReplicaSet, Deployment공부/데이터 2025. 1. 28. 19:58
쿠버네티스는 ReplicationController와 ReplicaSet과 같은 컨트롤러를 통해 서비스의 안정성과 확장성을 보장합니다. 이 컨트롤러들은 클러스터 내에서 필요한 파드의 수를 자동으로 조절하여 항상 원하는 상태를 유지하도록 합니다.선언적 구성은 쿠버네티스의 핵심 개념 중 하나입니다. 이는 시스템에게 "어떤 동작을 해라"라고 지시하는 명령형 방식과 달리, "시스템을 어떤 상태로 만들어라"라고 선언하는 방식입니다. 즉, "파드를 3개 만들어라"라고 명령하는 대신 "항상 3개의 파드가 유지되도록 해라"라고 선언하는 것입니다.ReplicationController💡수평적으로 확장 가능한 워크로드를 관리하기 위한 레거시 API이고 Deployment나 ReplicaSet API를 사용하는 것을 권장..
-
[Kubernetes] Pod공부/데이터 2025. 1. 28. 19:58
워크로드, 워크로드 리소스, 파드의 관계워크로드는 쿠버네티스 클러스터에서 실행되는 애플리케이션을 의미합니다. 즉, 우리가 배포하고 관리하려는 서비스나 프로그램 자체를 가리킵니다.워크로드 리소스는 워크로드를 관리하는 객체입니다. 즉, 워크로드를 구성하고 파드를 생성하며 파드의 상태를 유지하는 역할을 합니다. ReplicaSet, Deployment, StatefulSet, DaemonSet, Job 등이 대표적인 워크로드 리소스입니다.파드는 워크로드를 실행하는 최소 단위입니다. 하나의 파드에는 하나 이상의 컨테이너가 포함될 수 있으며, 이들은 공유 네트워크와 볼륨을 가지고 함께 실행됩니다.파드란파드는 쿠버네티스에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위입니다.파드는 하나 이상의 컨테이..
-
[Kubernetes] 클러스터, 노드, 네임스페이스, 파드공부/데이터 2025. 1. 24. 23:49
클러스터쿠버네티스 내 가장 큰 단위로 컨테이너를 실행하는 노드의 집합입니다.노드쿠버네티스의 노드는 컨테이너를 실행하는 물리 서버 또는 가상 머신입니다. 노드는 컨테이너가 실행되는 컴퓨터라고 생각하면 됩니다.클러스터 구성요소사용자는 kubectl ****명령어를 통해 쿠버네티스 클러스터와 통신하고 클러스터 내의 마스터 노드(컨트롤 플레인)는 API를 통해 클러스터 전체를 컨트롤하며 워커 노드(데이터 플레인)는 마스터 노드의 명령에 의해 워크로드를 생성하고 서비스합니다. 즉, 마스터 노드는 클러스터를 관리하는 역할이며 워커 노드는 실제 실행을 담당하는 역할입니다.💡워크로드는 쿠버네티스에서 구동되는 애플리케이션입니다. 클러스터에서 실행하려는 작업이나 서비스 등을 가리키는 말로 사용됩니다.네임스페이스클러스터 ..