728x90

DevOps 47

[K8S] Metric Server

Metrics Server는 Kubernetes 클러스터 내에서 자원 사용량을 집계하는 경량화된 서비스이다.  CPU나 메모리 사용량에 기반하여 파드의 수를 자동으로 조절하고 노드와 파드의 자원 사용량을 확인할 수 있다. Prometheus와 같은 복잡한 모니터링 솔루션과 달리, Metrics Server는 오토스케일링에 필요한 단기적인 메트릭 수집에 특화되어 있다.Metric Server 설치Metrics Server는 여러 가지 방법으로 설치할 수 있다. 가장 일반적인 설치 방법은 kubectl을 사용한 매니페스트 적용과 Helm 차트를 사용하는 방법이다.kubectl 사용kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/relea..

DevOps/K8S 2024.10.10

[K8S] MetalLB

MetalLB는 Kubernetes 클러스터에서 외부 트래픽을 서비스로 라우팅 하기 위한 로드 밸런서를 제공한다. 클라우드 환경에서는 클라우드 제공업체의 로드 밸런서 서비스를 활용할 수 있지만, 온프레미스나 베어메탈 환경에서는 이러한 서비스가 제공되지 않는다. 이때 MetalLB가 중요한 역할을 한다.MetalLB가 하는 일외부 IP 할당:MetalLB는 Kubernetes 서비스에 LoadBalancer 타입의 외부 IP를 할당한다. 이를 통해 외부 사용자가 클러스터 내의 서비스를 접근할 수 있도록 한다.트래픽 라우팅: 할당된 외부 IP로 들어오는 트래픽을 적절한 Kubernetes 노드 및 파드로 라우팅 한다. 이는 ARP(Address Resolution Protocol) 또는 NDP(Neighbo..

DevOps/K8S 2024.10.10

[Container] 호스트 디렉토리 마운트 시 Linux과 Mac 환경의 차이점

Docker는 다양한 운영체제에서 애플리케이션의 개발 및 배포를 용이하게 하는 강력한 도구다. 그러나 Linux과 Mac 환경에서 Docker가 호스트 디렉토리를 컨테이너에 마운트 할 때의 동작 방식에는 중요한 차이점이 존재한다. Linux에서는 호스트의 파일 시스템과 직접적으로 통합되어 높은 성능과 일관된 권한 관리가 가능하다. 반면, Mac에서는 가상 머신과 파일 시스템 매핑을 통해 이러한 권한 문제를 완화하지만, 파일 접근 속도에서 약간의 성능 저하가 있을 수 있다.Linux 환경에서의 DockerLinux는 Docker가 처음 개발된 플랫폼으로, Docker의 핵심 기능들이 가장 잘 지원된다. Linux에서 Docker는 호스트의 커널을 직접 사용하여 컨테이너를 실행한다. 이는 Docker가 매우..

DevOps/Container 2024.10.08

[K8S] 인그레스와 관련 리소스

정리인그레스 컨트롤러의 서비스를 붙여 노드포트로 오픈인그레스는 인그레스 컨트롤러의 설정 정보인그레스 컨트롤러가 라우팅 규칙을 따라 서비스들로 라우팅1. 인그레스인그레스(Ingress)는 Kubernetes에서 클러스터 외부와 내부 서비스를 연결하는 설정이다. 이는 사용자가 클러스터 내부의 서비스에 접근할 수 있도록 HTTP 요청의 라우팅 규칙을 정의한다. 인그레스는 단순한 설정일 뿐 실제로 요청을 처리하는 것은 인그레스 컨트롤러이다.1.1 인그레스의 주요 기능HTTP 경로 기반 라우팅: 특정 URL 경로에 대한 요청을 내부 서비스로 라우팅 할 수 있다.도메인 기반 라우팅: 여러 도메인에 대해 각각의 요청을 다른 서비스로 분산할 수 있다.TLS 종료: HTTPS 요청을 처리하고, TLS 인증서를 관리할 수..

DevOps/K8S 2024.10.08

[Container] 폐쇄망 환경에서 Docker 설치하는 방법

인터넷에 연결되지 않은 폐쇄망 환경에서 Docker를 설치하려면 필요한 패키지와 의존성 파일들을 미리 준비하고 로컬 레포지토리를 구성해야 한다. 1. 폐쇄망 OS 정보 확인폐쇄망 서버의 운영체제(OS) 정보와 플랫폼 정보를 확인한다.cat /etc/os-release # 배포판의 이름과 버전 정보 출력uname -r # 커널 버전 확인uname -m # 시스템 아키텍처 확인 (예: x86_64, aarch64)# 한번에 보기hostnamectl2. 동일한 환경의 컨테이너 실행폐쇄망 서버와 동일한 OS 환경과 플랫폼을 가진 컨테이너를 실행하여 필요한 패키지를 다운로드한다.arm을 사용하는 맥북일 경우 rosetta, qemu 등을 설치해야한다.docker run..

DevOps/Container 2024.09.29

[VM] VMware의 VMnet

VMnet은 VMware에서 가상 네트워크를 구성하기 위한 인터페이스이다. VMware는 가상 머신(VM)이 호스트 시스템과 통신하거나 다른 VM들과 네트워크를 형성할 수 있도록 다양한 VMnet을 제공한다.기본적으로 제공되는 VMnetVMnet0 (Bridged 네트워크)가상 머신이 호스트의 실제 네트워크 어댑터를 통해 네트워크에 직접 연결된다.가상 머신은 호스트와 동일한 네트워크에 속하며, 외부 네트워크에서도 독립적인 장치로 인식된다.VMnet1 (Host-Only 네트워크)가상 머신과 호스트 간의 통신만 가능하며, 외부 네트워크(인터넷)에는 접근할 수 없다.외부와 격리된 안전한 테스트 환경을 구축할 때 유용하다.VMnet8 (NAT 네트워크)가상 머신이 호스트의 네트워크 연결을 공유하여 인터넷에 접..

DevOps/VM 2024.09.15

[VM] 스토리지 인터페이스

가상 머신(VM)을 생성할 때 스토리지 인터페이스의 선택은 시스템의 성능과 안정성에 직접적인 영향을 미치는 중요한 요소이다. 올바른 스토리지 인터페이스를 선택하면 VM의 운영 효율성을 높일 수 있지만, 잘못된 선택은 성능 저하나 호환성 문제를 야기할 수 있다. 스토리지 인터페이스란?스토리지 인터페이스는 컴퓨터 시스템에서 저장 장치와 메인보드 간의 데이터 전송을 담당하는 물리적 또는 논리적 연결 방식을 의미한다. 하드 디스크 드라이브(HDD), 솔리드 스테이트 드라이브(SSD) 등과 같은 저장 매체가 CPU와 데이터를 주고받는 통로 역할을 한다.주요 스토리지 인터페이스 종류IDE(Integrated Drive Electronics)초기의 병렬 ATA(PATA) 인터페이스로, 오래된 시스템에서 주로 사용된다..

DevOps/VM 2024.09.15

[Container] 컨테이너 사용자 설정 및 권한

도커 컨테이너는 기본적으로 루트 사용자(UID 0)로 실행된다. 그러나 루트 사용자로 실행되는 것은 보안상 위험할 수 있다. 컨테이너가 보안 침해를 당할 경우, 루트 권한을 가진 컨테이너는 호스트 시스템에 영향을 미칠 수 있기 때문이다. 따라서 비루트 사용자를 사용하여 컨테이너를 실행하는 것이 일반적으로 권장된다. 도커 이미지는 설계 목적에 따라 다르게 구성되어 있으며, 이미지마다 기본적으로 설정된 사용자가 다를 수 있다. 컨테이너 사용자 설정과 호스트 사용자 간의 관계도커 컨테이너는 호스트 시스템과 격리되어 동작하지만, UID(사용자 ID)와 GID(그룹 ID) 개념은 유지된다. 이는 파일과 디렉토리의 소유권과 권한 관리에 영향을 미친다. 컨테이너가 호스트의 디렉토리를 마운트 할 때, 컨테이너 내부에서..

DevOps/Container 2024.09.14

[k8s] DNS

쿠버네티스에서 DNS(Domain Name System)는 클러스터 내 서비스와 파드 간의 통신을 간소화하는 중요한 구성 요소이다. 클러스터를 생성하면 기본적으로 DNS 서비스가 자동으로 설정되며, 최근의 쿠버네티스 클러스터에서는 CoreDNS가 기본 DNS 서비스로 사용된다. CoreDNS는 유연한 플러그인 아키텍처를 제공하여 클러스터 DNS뿐만 아니라 다른 네임서버와의 통합도 가능하게 한다. DNS 이름 형식쿠버네티스는 각 서비스에 대해 자동으로 DNS 이름을 생성하며, 그 형식은 다음과 같다:..svc.cluster.local예를 들어, default 네임스페이스에 있는 my-service라는 서비스의 DNS 이름은 my-service.default.svc.cluster.local이 된다. 이를 사..

DevOps/K8S 2024.09.02

[k8s] Volume

쿠버네티스(Kubernetes)는 애플리케이션이 실행되는 동안 데이터를 저장하고 관리할 수 있는 다양한 스토리지 옵션을 제공한다. Persistent Volume (PV)와 Persistent Volume Claim (PVC)은 상태 저장 애플리케이션을 위한 스토리지를 제공하는 개념으로, 이 두 가지를 통해 쿠버네티스는 다양한 스토리지 백엔드와 독립적으로 상태 저장 애플리케이션을 지원할 수 있다.Persistent Volume (PV)Persistent Volume(PV)은 쿠버네티스 클러스터 내에서 스토리지 리소스를 추상화한 객체이다. PV는 클러스터 관리자가 직접 프로비저닝 하거나 쿠버네티스가 동적으로 생성할 수 있으며, 클러스터의 다른 리소스와 독립적으로 존재한다. PV는 특정 사용자를 위한 것이 ..

DevOps/K8S 2024.09.02
728x90