Section 4. Logging & Monitoring - (2) Application LogsKubernetes를 운영하는 과정에서 애플리케이션의 성능과 상태를 모니터링하는 중요한 방법 중 하나는 로그를 분석하는 것입니다. 이 글에서는 Docker와 Kubernetes에서 로그를 확인하는 방법을 단계별로 설명하겠습니다. Docker 컨테이너에서 로그 확인docker logs 명령어를 사용해 로그를 확인할 수 있습니다. 실시간으로 로그를 스트리밍 하려면 -f 옵션을 사용하면 됩니다.docker logs -f Kubernetes에서 Pod 로그 확인kubectl logs -f # Pod에 컨테이너가 여러 개 떠있을 경우 컨테이너 이름을 명시해야 한다kubectl logs -f -c
cka
이 글은 섹션 4. Logging & Monitoring 을 참고하여 작성하였습니다. Section 4. Logging & Monitoring - (1) Monitor Cluster ComponentKubernetes 클러스터를 운영하면서 중요한 것은 자원의 소비와 성능을 모니터링하는 것입니다. 그렇다면 Kubernetes에서 자원 소비를 어떻게 모니터링할 수 있을까요? 이 글에서는 노드 및 포드 레벨에서 주요 성능 지표를 확인하고, 이러한 데이터를 제공하는 여러 솔루션에 대해 살펴보겠습니다.모니터링할 주요 지표모니터링을 위해 가장 먼저 알아야 할 것은 무엇을 관찰할지 결정하는 것입니다. 주요 지표는 크게 노드 레벨과 포드 레벨로 나눌 수 있습니다.노드 레벨 지표: 클러스터 내 노드의 개수, 정상적으로..
이 글은 섹션 3. Scheduling을 참고하여 작성하였습니다. Section 3. Scheduling - (10) Configuring Scheduler Profiles이번 글에서는 쿠버네티스 스케줄러를 어떻게 설정하는 지에 대해서 알아보겠습니다. 스케줄링 기본 개념쿠버네티스에서 스케줄링은 포드를 클러스터 내의 적절한 노드에 배치하는 과정입니다. 이 때, 스케줄러는 주어진 조건에 따라 각 노드의 자원을 평가하고 포드를 배치할 노드를 선택합니다. 스케줄링 프로세스스케줄러는 우선순위 부여, 필터링, 점수 매기기, 바인딩의 4단계로 구성된 스케줄링 프로세스를 거칩니다.우선순위 부여: 포드를 우선순위 큐에 넣어줍니다. 우선순위 큐에서 Pod를 하나씩 추출해 스케줄링을 해나갈 예정입니다.필터링: 1.에서 뽑..
이 글은 섹션 3. Scheduling 을 참고하여 작성하였습니다. Section 3. Scheduling - (9) Multiple Scheduler이번 블로그 포스트에서는 쿠버네티스 클러스터에 Multiple Scheduler를 배포하는 방법을 알아보겠습니다. 기본 스케줄러는 다양한 알고리즘을 이용해 노드에 포드를 고르게 분배합니다. 이 과정에서 테인트(Taint), 톨러레이션(Toleration), 노드 친화성(Node Affinity) 등의 조건을 고려하죠. 하지만 특정 애플리케이션에는 이 기본 스케줄러가 적합하지 않을 수 있습니다. 이런 경우에는 고유한 스케줄링 알고리즘을 적용해 포드를 배치하고, 사용자 지정 조건을 추가할 수 있습니다. Multiple Scheduler기본 스케줄러 외에도..
이 글은 섹션 3. Scheduling 을 참고하여 작성하였습니다. Section 3. Scheduling - (8) Static Pods이번 글에서는 쿠버네티스의 Static Pods에 대해 알아보겠습니다. kubelet과 포드 생성일반적으로 kubelet은 kube-apiserver로부터 포드에 대한 지시를 받아 작업하지만, Static Pods의 경우 kubelet이 외부 서버 없이도 직접 포드를 관리합니다. 정적 포드의 작동 방식정적 포드를 만들려면 포드 정의 파일을 특정 디렉터리에 배치해야 합니다. kubelet은 주기적으로 이 디렉터리(위 그림에서는 /etc/kubernetes/manifests)를 확인하여 포드 정의 파일을 읽고 포드를 생성합니다. 만약 포드 정의 파일을 수정하면, 쿠벨..
이 글은 섹션 3. Scheduling을 참고하여 작성하였습니다. Section 3. Scheduling - (7) DaemonSet쿠버네티스에서 데몬셋(DaemonSet)은 클러스터 내 각 노드에 하나의 포드(Pod) 인스턴스를 배포하는 데 사용됩니다. 이 글에서는 데몬 셋이 무엇인지, 어떻게 동작하는지, 그리고 데몬 셋을 사용하는 유스케이스를 설명합니다.데몬 셋이란?데몬 셋은 쿠버네티스에서 복제 집합(ReplicaSet)과 유사하게 여러 개의 포드 인스턴스를 배포하는 역할을 합니다. 그러나 차이점은 데몬셋은 각 노드마다 단 하나의 포드만 실행된다는 점입니다. 데몬 셋을 통해 클러스터의 모든 노드에 포드가 항상 존재하도록 보장할 수 있습니다. 데몬 셋의 스케줄링 동작쿠버네티스에서 데몬 셋은스케줄러..
이 글은 섹션 3. Scheduling을 참고하여 작성하였습니다. Section 3. Scheduling - (6) Resource Requirements and Limits쿠버네티스에서는 모든 Pod가 정상적으로 동작하려면 CPU와 메모리와 같은 리소스가 필요합니다. 각 노드는 사용 가능한 리소스를 가지고 있으며, 쿠버네티스 스케줄러는 Pod가 요구하는 리소스를 고려해 적절한 노드에 배치합니다. Resource Requirements and Limits쿠버네티스에서는 각 포드에서 사용할 리소스(CPU나 memory)에 대한 최솟값과 최댓값을 설정할 수 있습니다.Request: Pod가 정상적으로 동작하는 데 필요한 최소 리소스. 이 값을 기준으로 스케줄러가 Pod를 적절한 노드에 배치합니다.Limit..
이 글은 섹션 3. Scheduling 을 참고하여 작성하였습니다.Section 3. Scheduling - (5) Node Affinity이번 포스트에서는 쿠버네티스 노드 친화성(Node Affinity)에 대해 자세히 알아보겠습니다. 이전 포스트에서 노드 선택기(Node Selector)를 다루며 간단한 노드 배치를 설정하는 방법을 배웠는데, 이번에는 좀 더 복잡한 요구 사항을 해결하기 위해 고급 기능인 노드 친화성을 소개합니다. 노드 친화성의 목적노드 친화성의 주요 목적은 특정 조건에 맞는 노드에만 파드를 배치하는 것입니다. 예를 들어, 대규모 데이터 처리 파드를 클러스터의 "큰 노드"에만 배치하고자 할 때 유용합니다. 이전 강의에서는 노드 선택기를 사용하여 파드를 특정 노드에 배치하는 방법을 배..