본문 바로가기

전체 글118

[Linux] 네트워크 사용량 모니터링 리눅스에서는 실시간으로 네트워크의 송수신량을 확인할 수 있는 많은 툴들이 존재한다. 이번 글에서는 그 툴들과 용도에 대하여 알아볼 것이다.1. nethogs  설치# Ubuntu 기준의 apt 설치sudo apt install nethogs   실행sudo nethogs  설치를 하고 실행을 한다면 아래와 같이 프로세스 및 네트워크 인터페이스 별로 해당 네트워크에 오가는 데이터 양을 확인할 수 있다.   2. iftop 설치 # Ubuntu 기준의 apt 설치sudo apt install iftop   실행sudo iftop  iftop은 nethogs와 다르게 네트워크의 출발지와 목적지의 구분과 해당 데이터의 크기에 좀 더 직관적인 UI를 가지고 있다. 아래 사진을 참고하자면, 데이터의 크기를 가로 막.. 2024. 11. 17.
[Linux] Tcpdump로 네트워크 인터페이스 패킷 확인 리눅스 환경에서 특정 네트워크 인터페이스에 송수신되는 패킷을 확인하고자 할 때 아주 편리한 툴이 있다. 바로 Tcpdump이다. 이를 활용하여 특정 서버에 네트워크 관련 문제가 발생했을 때, 패킷이 정확하게 서버로 전송이 오는지를 확인할 수 있다.  ※ Tcpdump는 기본적으로 Root 권한이 필요로 한다.   다음은 쿠버네티스 클러스터에서 생성된 파드의 네트워크 인터페이스를 tcpdump로 확인하여 해당 파드에 패킷이 전송되는 것을 확인해 볼 것이다.파드 생성 # nginx 수신 파드 생성kubectl run receive-nginx --image=nginx:latest  파드를 생성해 주고, 배정된 IP를 확인한다.  파드가 생성된 노드에 접속하여, 해당 IP로 라우팅 되어 있는 네트워크 인터페이스.. 2024. 11. 16.
[Harbor] Harbor에 Helm Chart 올리기 사내 개발 시 많은 회사들이 Image Registry로 ECR이나 Harbor 또는 Nexus를 많이 사용한다. Harbor는 컨테이너 이미지뿐만 아니라 Helm Repository로도 사용할 수 있다. 이번 글에는 해당 과정을 알아볼 것이다. Helm Chart 제작 간단하게 프로젝트를 만들고, 이를 tgz파일로 패키징 하는 작업을 할 것이다. # helm 차트의 새 프로젝트 생성helm create test   위 명령어를 실행하면 test라는 디렉터리가 생기고, 내부에는 아래 사진과 같은 구조로 생성된다.    test라는 디렉토리로 이동해서 아래의 명령어를 실행하면 존재하는 파일을 압축하여 tgz파일로 패키징 해준다.# test 디렉토리로 이동cd test# helm 차트 패키징helm pack.. 2024. 11. 15.
[ArgoCD] ArgoCD란 ArgoCD ArgoCD는 쿠버네티스 환경에 사용되는 선언적 GitOps 지속적인 배포 툴이다. ※ GitOps : Git 저장소를 진실의 근원으로 사용하여 인프라와 애플리케이션의 상태를 선언적으로 관리하는 방식    ArgoCD의 저장소(Repository)는 기본적으로 Git, Github 및 Gitlab을 활용할 수 있고, 추가로 Helm 기반의 Repository도 활용이 가능하다.   위 저장소에 저장된 템플릿으로는, 아래 항목들을 이용할 수 있고, 이를 토대로 배포가 된다.kustomize applicationshelm chartsjsonnet filesPlain directory of YAML/json manifestsAny custom config management tool configu.. 2024. 11. 14.
[Network] ICMP / IGMP ICMP (Internet Control Message Protocol) ICMP는 IP 네트워크의 진단과 제어를 담당하는 프로토콜이다.  OSI 모델의 네트워크 계층(Layer 3)에서 작동하며, IP 패킷의 전송 과정에서 아래와 같은 역할을 수행한다. 오류 메시지 전달: IP 패킷 전송 중 발생하는 다양한 오류 상황을 보고네트워크 상태 진단: 호스트 간의 연결성과 라우팅 경로 확인네트워크 디버깅: 네트워크 문제 해결을 위한 진단 정보 제공라우팅 최적화: 더 효율적인 경로 정보를 호스트에게 제공  특징오류 보고: 패킷 전송 실패, 경로 문제 등을 알림네트워크 진단: ping, traceroute 등의 도구를 통한 연결성 테스트흐름 제어: 패킷의 속도 조절 및 혼잡 제어에 관여  IGMP (Interne.. 2024. 11. 13.
[Network] MTU(Maximum Transmission Unit) MTU  MTU는 어떤 데이터링크에서 하나의 프레임 또는 패킷에 담아 운반 가능한 최대 크기를 의미한다.  해당 예시로 지하도로나 터널의 높이 제한처럼 생각할 수 있으며, 높이 제한보다 높은 차량은 못지나가는 것처럼 네트워크의 MTU보다 큰 패킷은 일반적으로 해당 네트워크를 통과하지 못한다.  하지만 MTU보다 큰 데이터 패킷은 작은 조각으로 잘라 MTU에 맞출 수 있고, 이 과정을 분할(Segmentation)이라고 칭한다. 그리고 분할된 패킷은 목적지에서 조립된다.   MTU의 단위는 Byte이며, 보통 MTU 사이즈는 매체마다 차이가 존재하며 Ethernet 구간의 경우, 최대 MTU 크기는 1,500bytes이다. 여기서 IP header로 20bytes, TCP header로 20bytes를 사.. 2024. 11. 12.