전체 글 682

DMZ망에 APT Mirror 서버 구축하기

GNS3로 간단한 네트워크망 구성 실습하기사내 인프라가 마땅치 않아인프라 구성에 고민하던 중 GNS3라는 시뮬레이션 환경을 알게 되었다. 네트워크 엔지니어가 아니라 전문적으로 네트워크 구성을 하지 못하지만구성하고 싶은 인프라lordofkangs.tistory.com 이전 포스팅에서 GNS3로 간단한 네트워크 망을 구축해보았다. 구축한 망에 Apt Mirror 서버를 구축해보자. 구성도는 위와 같다. *DMZ망 - APT Mirror 서버*내부망 - 운영망 - 우분투 서버 ( VLAN10, 노란색원 ) - 관리망 - DNS 서버 ( MGMT ) 외부와 접근 가능한 DMZ망에 Apt Mirror 서버를 구축하고 내부망에 위치한 우분투 서버는 DNS 서버로부터 IP를 받아 ..

Ops/Linux 2025.07.23

파일시스템에 볼륨 추가하기

apt-mirror 서버 구성에 용량이 800GB 정도 필요한데 멋도 모르고 진행하다가 루트 디렉토리 파일시스템 사용률이 100%가 되었다. 일단은 1TB 외장디스크 장치를 apt mirror 서버에 추가해주었다. 파일시스템을 정리하고 볼륨을 생성해서 용량을 확보해보자. 1. 공간확보하기 루트 디렉토리가 100%이므로 우선 이 문제부터 해결해주어야 한다. apt-mirror의 패키지를 설치하는 과정에서 /var/spool/apt-mirror 디렉토리에 데이터가 쌓여 파일시스템 사용률 100%가 되었으므로 정리해준다. 어차피 apt-mirror를 다시 설치해야해서 나는 그냥 삭제를 해서 공간을 확보하였다. 민감한 환경이면 또 다른 공간에 백업을 추천한다. 2. 볼륨 그룹 확장하기 볼륨그..

Ops/Linux 2025.07.18

GNS3로 간단한 네트워크망 구성 실습하기

사내 인프라가 마땅치 않아인프라 구성에 고민하던 중 GNS3라는 시뮬레이션 환경을 알게 되었다. 네트워크 엔지니어가 아니라 전문적으로 네트워크 구성을 하지 못하지만구성하고 싶은 인프라를 테스트하기 위한 기초적인 네트워크 환경이 필요하여 실습하게 되었다. 그러므로아래 내용은 부정확한 정보를 포함하고 있으니 참고용으로만 추천한다. 요구사항 1. VLAN 구성이 가능해야 한다. 2. 방화벽으로 물리적 망분리가 가능해야 한다. 3. DMZ 망이 존재해야 한다. 4. 인터넷 접속이 가능해야 한다. 5. 가능한 이중화 구성이 되어야 한다. 방화벽 방화벽은 망 밖에서 들어오는 트래픽의 접근을 제어하거나 특정한 IP로 라우팅 시키는 기초적인 기능만 제공하면 되므로, 방화벽 장비가 아닌 라우터(c3725..

CS/NETWORK 2025.07.16

Kubernetes 네트워크 동작원리

쿠버네티스 네트워크의 핵심 개념은 2가지이다. 1) kube-proxy2) CNI ( Container Network Interface ) kube-proxy는 서비스에서 파드로 트래픽을 이동시키는 역할을 하고 CNI는 서로 다른 노드 간의 트래픽 이동을 담당한다. 만약 A 노드에 배포된 kube-proxy가 B 노드에 있는 파드로 트래픽을 이동시킨다고 하면 서로 다른 노드이므로 CNI를 타고 트래픽을 이동하는 것이다. 정리하면트래픽 이동을 위한 룰은 kube-proxy가 담당하고 실제 노드 간 트래픽 이동은 CNI가 담당하는 것이다. kube-proxy kube-proxy는 iptables라는 tool을 이용하여 netfilter가 바라보는 룰을 조작하는 프로그램이다. 리눅스 서버는 netfil..

Ops/Kubernetes 2025.06.18

Linux 환경에서 간단한 컨테이너 직접 만들어 보기

Linux에서 컨테이너를 만들어 보자. 컨테이너의 핵심은 '격리(isolation)'이다. 여기서 2가지 격리를 구현해야 한다. 1) 파일시스템 격리 -> chroot2) 프로세스 격리 -> unshare ( namespace ) 파일시스템 격리 파일시스템 격리는 chroot로 구현된다. chroot는 root의 경로가 변경된 또 다른 쉘(shell)을 띄우는 것이다. 터미널로 접속하면 우리는 정해진 위치를 root로 하여 쉘(shell) 프로그램을 구동하여 터미널에 접속한다. chroot는 또 다른 경로를 root로 하여 쉘을 구동한다. 쉘이 바라보는 루트는 달라지지만 쉘이 커널로 전송하는 경로는 동일하다. 그러므로 달라진 루트 위치에 bin폴더, proc 폴더, lib 폴더를 복사 및 생성하면..

Ops/Linux 2025.06.12

[K8S] Containerd에 Registry 설정하기 ( with Harbor )

Containerd로 생성된 컨테이너가 특정 Registry에서 이미지를 가져오도록 설정해보자. https://github.com/containerd/containerd/blob/main/docs/cri/registry.md#using-self-signed-certificates containerd/docs/cri/registry.md at main · containerd/containerdAn open and reliable container runtime. Contribute to containerd/containerd development by creating an account on GitHub.github.com 공식문서에는 deprecated된 방법이 메인으로 작성되어 있어서 혼란이 있을..

Ops/Kubernetes 2025.06.04

kubectl alias 및 자동완성 설정하기

1. 설정할 리눅스 계정에 접속하기 ( root, mingu … )su - mingu 2. home 디렉토리의 .bashrc 파일 가장 밑에 아래 설정 추가하기 # kubectl 자동완성 기능 추가하기 source k로 aliasalias k=kubectl# k 명령어에 kubectl 같은 자동완성 기능 부여하기complete -F __start_kubectl k##### kubeadm에 자동완성 기능 부여하기 ( Optional )source 3. 설정 적용하기 source ~/.bashrc

Ops/Kubernetes 2025.05.20

[이슈] Nebuly MPS Nvidia Device Plugin의 GPU 메모리 파티셔닝

이슈Nebuly 사에서 제공하는 오픈소스 Nvidia Device Plugin을 테스트 해본 결과, GPU가 1개일 때는 동적 파티셔닝을 제대로 이루어진다. GPU가 2개일 때는 GPU 0번의 파티셔닝은 제대로 이루어지지만 GPU 1번의 파티셔닝이 제대로 되지 않음을 OOM 테스트를 통해 알게 되었다. 예를들어, 4GB로 메모리를 파티셔닝하면 GPU 0번에서 가상화된 GPU는 4GB만 쓰고 OOM이 발생하지만 GPU 1번에서 가상화된 GPU는 4GB를 넘어서 물리 GPU 전체 메모리를 사용한 후 OOM이 발생한다. 내용https://github.com/nebuly-ai/k8s-device-plugin/tree/v0.13.0?tab=readme-ov-file GitHub - nebuly-ai/k8s-d..

Ops/Kubernetes 2025.05.07