728x90 kubernetes33 [Loki 기반 Logging Monitoring System 구축] Chunks 생성과 Flush 동작 구조 기존에 구성되어있던 시스템의 불편함기존에는 사용하고 있던 Logging System은 Elastic Stack을 통해 구성되어있었습니다. 각 node에 daemonset으로 배포되어 있는 filebeat를 통해 STDOUT으로 출력되는 로그를 수집하고, 버퍼 역할을 하는 Kafka에게 로그를 전달하며 ElasticSearch를 통해 집계하여 Kibana로 대시보드를 구성하여 로그를 확인하는 시스템이었습니다. 하지만 elasticsearch에는 큰 단점으로 느꼈던 점은 사전에 index를 꼭 설정해줘야 한다는 점과, timestamp로 매핑되지 않는다는 것이었습니다. 특히, 개발팀에서 수집이 되어야 하는 로그가 다양하고, key를 추가할수도, 삭제할 수도 있는데 이를 애플리케이션마다 index를 다르게 .. 2025. 1. 28. [KANS] Gateway API 더보기이 스터디는 CloudNet@에서 진행하는 KANS 스터디를 참여하면서 공부하는 내용을 기록하는 블로그 포스팅입니다.CloudNet@에서 제공해주는 자료들을 바탕으로 작성되었습니다. Gateway API Gateway API는 Kubernetes의 네트워크 라우팅을 확장(L4 및 L7 라우팅)하고 개선하기 위해 설계된 API입니다. 기존의 Ingress API를 대체하거나 보완할 수 있는 방식으로, 더 복잡한 네트워크 트래픽 관리 시나리오를 지원합니다. 즉, 기존의 Ingress에 다양한 기능(헤더 기반 라우팅, 헤더 변조, 트래픽 미러링(쉽게 트래픽 복제), 역할 분리 등)이 추가된 차세대 Kubernetes Ingress, LoadBalancing, service mesh API를 대표 하는.. 2024. 10. 12. [KANS] Ingress 더보기이 스터디는 CloudNet@에서 진행하는 KANS 스터디를 참여하면서 공부하는 내용을 기록하는 블로그 포스팅입니다.CloudNet@에서 제공해주는 자료들을 바탕으로 작성되었습니다. Ingress Ingress란?Ingress는 Kubernetes에서 외부 트래픽을 클러스터 내의 서비스로 라우팅하는 역할을 하는 리소스입니다. Service는 Layer4 계층에서 동작하지만 Ingress는 Layer 7계층에서 동작하기에 HTTP/HTTPS 통신에 다양한 기능들이 제공합니다. 즉, 클러스터 내부의 서비스(ClusterIP, NodePort, Loadbalancer)를 외부로 노출(HTTP/HTTPS)합니다. (Web Proxy 역할)Ingress ControllerIngress의 실제 동작 구현은 .. 2024. 10. 9. [KANS] Service - LoadBalancer (MetalLB) 더보기이 스터디는 CloudNet@에서 진행하는 KANS 스터디를 참여하면서 공부하는 내용을 기록하는 블로그 포스팅입니다.CloudNet@에서 제공해주는 자료들을 바탕으로 작성되었습니다.Service Service에 관한 전반적인 내용은 앞 내용에서 다뤘으니 참고바랍니다.LoadBalancerLoadBalancer(줄여서 LB)는 Public Cloud 환경에서 동작하는 LB Service와 On-premise 환경에서의 LB Service가 있습니다. 동일한 LB이지만 동작 방식에 차이가 있습니다. Public Cloud 사업자마다 LB의 동작에도 차이가 있으며, On-Premise 환경에서 동작하는 LB도 하드웨어 장비와 소프트웨어 기반으로 구분되고, LB 개발사에 따라 차이도 있습니다. Cloud .. 2024. 10. 4. [KANS] Service - ClusterIP, NodePort 더보기이 스터디는 CloudNet@에서 진행하는 KANS 스터디를 참여하면서 공부하는 내용을 기록하는 블로그 포스팅입니다.CloudNet@에서 제공해주는 자료들을 바탕으로 작성되었습니다.Kubernetes Serivce service란?Service란 Pod 집합에서 실행중인 애플리케이션을 네트워크 서비스로 노출하는 추상화 방법입니다.서비스는 Pod에 대하여 고정 IP와 Domain Name을 제공하는데, Pod1 애플리케이션은 서비스의 10.200.1.1 IP로 통신 시에 서비스는 Pod2의 172.16.1.2로 트래픽을 전달하게 됩니다. 만약, Pod2가 restart하게 되면 서비스는 변경된 Pod2의 IP를 자동으로 알게 되어, Pod1의 통신 요청을 변경된 Pod2의 IP인 172.16.1.3으.. 2024. 9. 28. [KANS] Calico CNI 더보기이 스터디는 CloudNet@에서 진행하는 KANS 스터디를 참여하면서 공부하는 내용을 기록하는 블로그 포스팅입니다.CloudNet@에서 제공해주는 자료들을 바탕으로 작성되었습니다. Calico CNICalico는 Kubernetes를 포함하여 다양한 플랫폼에서 워크로드의 네트워크 통신과 네트워크 보안 기능을 제공합니다. 특히 Kubernetes CNI 를 준수하여, Pod를 위한 네트워크 통신 환경을 구성할 수 있습니다. 이때 Caclio CNI는 Kubernetes에서 Calico는 Pod에 IP를 할당하고, 각 Pod의 네트워크 트래픽을 관리합니다. 또한 네트워크 정책을 통해 Pod 간의 통신을 제어하고, 외부 트래픽과의 연결을 설정합니다. Component Architecture (공식 문서.. 2024. 9. 19. K8s의 Memory? (RAM, Storage) Memory?많은 사람들이 메모리와 스토리지를 동일한 것으로 생각하기도 합니다. 아마 지칭하는 단위를 GB를 사용하기 때문이 아닐까 싶은데요.둘 다 용량을 나타내는 GB단위를 사용하는 이유는 기본적으로 용량을 측정하는 표준 단위이기 때문입니다. 엄연히 다른 Memory우리가 흔히 말하는 메모리에는 크게 RAM이라고 하는 휘발성 메모리, Storage라고 불리는 영구적 메모리 2가지가 존재합니다. K8s의 Memory이 두 가지의 차이를 살펴보기 전에 먼저 Pod를 정의하는 manifest file에 선언하는 resource.limit.memory와 resource.request.memory는 무엇을 의미할까요?apiVersion: v1kind: Podmetadata: name: example-pods.. 2024. 8. 2. Kubernetes common errors CrashLoopBackOff설명: 파드가 반복적으로 충돌하고 재시작합니다.문제 해결 방법 : 애플리케이션의 시작 및 초기화 코드를 조사합니다.명령어 # 파드 로그 확인kubectl logs # Pod 명세 확인kubectl describe pod ImagePullBackOff설명: Kubernetes가 레지스트리에서 컨테이너 이미지를 가져올 수 없습니다.문제 해결 방법:이미지 이름과 태그를 확인합니다.이미지 레지스트리 자격 증명을 확인합니다.지정된 레지스트리에 이미지가 존재하는지 확인합니다. Pending Pods설명: 파드가 "Pending" 상태에 머물며 스케줄링되지 않습니다.문제 해결 방법:노드 자원 (CPU, 메모리)을 확인하여 충분한 용량이 있는지 확인합니다.노드 셀렉터 또는 어피니티를 사용.. 2024. 7. 29. Kubernetes에서 DNS 다루는 방법 - 도메인을 찾아서 https://tv.naver.com/v/56456809 NAVER D2Kubernetes에서 DNS 다루는 방법 - 도메인을 찾아서tv.naver.com naver D2에서 소개된 Kubernetes에서 DNS 다루는 방법에 대한 영상 내용이 너무 좋아 블로그에 따로 정리하려고 합니다.Kubernetes DNS를 알아보게 된 계기K8s를 운영하던 중 클러스터 일부 노드들에서 특정 도메인에 대해 도메인 lookup이 되지 않는 현상이 발생했습니다. 원인을 살펴보니 해당 노드들의 네트워크 망 구성이 달라 서로 다른 nameserver를 이용하고 있었고 그로인해 특정 도메인을 찾지 못했습니다. 노드들의 nameserver는 변경할 수 없는 상황이에서 어떻게 특정 도메인에 대한 namespace만 다르게 설.. 2024. 7. 26. 이전 1 2 3 4 다음 728x90