DevOps 11

Immutable Infra Structure 쉽게 이해하기

변경불가능한 인프라(Immutable Infrastructure)란전통적인 서버 운영 방식(Mutable Infrastructure)은 종종 애완동물(Pets)에 비유됩니다. 반면, Immutable Infrastructure는 가축(Cattle)에 비유되며, 이 비유는 클라우드 네이티브 환경에서 서버를 어떻게 관리하는지에 대한 철학적 차이를 잘 보여줍니다. 변경가능한 인프라(Mutable Infrastructure) = 애완동물전통적인 인프라 운영 방식, 즉 서버에 접속해서 직접 패치를 하고 설정을 수정하는 Mutable Infrastructure는 애완동물에 비유할 수 있습니다. 애완동물은 하나하나가 고유한 존재이며, 이름도 있고 문제가 생기면 정성을 다해 돌보게 됩니다. 서버도 마찬가지로, 문제가 ..

DevOps 2025.04.14

Pod간 접근제어, NetworkPolicy 이해하기

NetworkPolicy란NetworkPolicy는 Kubernetes에서 Pod 간 네트워크 트래픽을 제어하는 리소스입니다.이는 마치 AWS의 보안 그룹(Security Group)과 비슷한 개념으로, Ingress(수신) 및 Egress(송신) 트래픽을 제한할 수 있습니다. NetworkPolicy 기본규칙1. NetworkPolicy가 없을 경우 ➝ 모든 트래픽 허용2. 하나 이상의 NetworkPolicy가 적용되면 ➝ 명시된 Pod, 네임스페이스, IP 블록에서의 트래픽만 허용 (화이트리스트 방식) NetworkPolicy의 구조NetworkPolicy는 Label Selector를 통해 적용 대상 Pod를 지정하고,spec 하위에 Ingress 또는 Egress 정책을 정의하여 허용할 트래픽 ..

쿠버네티스 시작하기

쿠버네티스를 처음 공부할 때 가장 어려웠던 점은 바로 익숙하지 않은 '새로운 용어'들이었습니다.그래서 쿠버네티스란 무엇인지, 그리고 자주 등장하는 핵심 용어들을 정리해보았습니다. 컨테이너 오케스트레이션의 세계로 첫걸음을 내딛는 분들께 도움이 되길 바랍니다.  쿠버네티스란쿠버네티스는 컨테이너 오케스트레이션 플랫폼입니다. 컨테이너는 가상머신과 달리 호스트 OS를 공유하는 구조로 인해, 가상머신보다 가볍고 빠르며, 동시에 가상머신처럼 실행 환경의 독립성도 제공합니다. 이러한 특성 덕분에 가벼움과 이식성을 갖춘 컨테이너는 점점 더 많이 사용되고 있습니다.하지만 수백에서 수천 개에 이르는 컨테이너를 운영자가 수동으로 관리하는 데에는 한계가 있습니다. 이에 따라, 컨테이너의 배포, 확장, 스케줄링, 네트워크설정 등..

쿠버네티스 네트워킹: 서비스, 서비스디스커버리, CoreDNS

왜 서비스를 만들어서 통신할까?쿠버네티스의 파드에는 이미 IP가 부여돼서, 통신이 가능합니다. 그러면 파드에 직접 통신하지 왜 굳이 서비스라는 것을 하나 더 만들어서 이걸로 통신하는 걸까요? 그 이유는 파드의 특징 때문입니다.파드는 일회용품처럼 쓰다 버리는 리소스입니다. 따라서 해당 IP를 등록했더라도 언제 파드가 삭제후 다시 생성될지 모르기 때문에 파드의 IP는 수시로 바뀔수있어 안정적인 통신이 어렵습니다. 그와 반대로 서비스는 안정적인 통신이 가능합니다.파드가 죽더라도 새로운 파드가 기존에 있던 서비스에 붙어있으니 동일한 서비스 IP로 접근이 가능합니다. 이외에도 서비스는 아래와 같은 기능도 제공해 줍니다. 1. 로드밸런서처럼 서버의 부하분산2. DNS처럼 서비스이름을 통해서 통신(서비스 디스커버리)..

쿠버네티스 스토리지: Persistent Volume(PV)

쿠버네티스의 스토리지와 관련된 리소스는 3가지가 있습니다. 1. Persistent Volume(PV)2. Persistent Volume Claim(PVC)3. StorageClass 그중에서 2가지 리소스인 Persistent Volume(PV)와 Persistent Volume Claim(PVC)에 대해서 알아보겠습니다. 먼저, 쿠버네티스의 데이터 영속성(persistent)이라는 용어부터 정리해보겠습니다. 데이터 영속성(persistent)쿠버네티스의 데이터 영속성(Persistence이란, 컨테이너가 종료되거나 다시 실행되더라도 데이터가 지속적으로 보존되는 것을 의미합니다. 즉, 임시 데이터가 아니라 영구적으로 유지되는 데이터를 의미하는 개념입니다. 예를 들어 파드의 EmptyDir라는 비영..

컨트롤러란 무엇인가

컨트롤러란?컨트롤러는 쿠버네티스 마스터노드(컨트롤플레이)의 구성요소인 kube-controller-manager 컴포넌트 안에서 동작하는 녀석들을 말합니다. 컨트롤러의 역할컨트롤러의 역할은 Pod의 개수를 보장하는데, 이는 마치 에어컨 시스템과 비슷합니다. 예를 들어, 에어컨을 18도로 설정하면 설정 온도를 유지하기 위해 지속적으로 동작하는 것처럼, 컨트롤러도 원하는 상태(Desired State) 가 파드 4개라면, 이를 유지하기 위해 지속적으로 모니터링하고 개수를 조정합니다. 어렵게 말하면, 이 과정은 컨트롤 루프(Control Loop) 를 통해 주기적으로 상태를 점검한다고 이야기합니다. 컨트롤러 종류쿠버네티스에서 사용되는 주요 컨트롤러는 다음과 같이 5가지로 분류할 수 있습니다. 1. 레플리카셋(..

컨테이너 쉽게 알아보기

컨테이너란 무엇인가?컨테이너는 쉽게 말해 '데이터 또는 프로그램을 격리'시키는 기능을 한다. 왜 격리시켜야 할까? 컨테이너 격리의 중요성은 일반적인 컴퓨팅 환경과 비교하면 쉽게 이해할 수 있다. 현대의 소프트웨어 환경에서는 대부분의 프로그램이 독립적으로 동작하지 않는다. 여러 프로그램들이 시스템의 라이브러리, 데이터, 파일 등의 자원을 공유하며 작동하는데, 이는 때때로 버전에 따른 호환성 문제를 일으킨다. 예를 들어, A 프로그램은 R 버전 5.0에서만 동작하고 B 프로그램은 R 버전 8.0에서만 동작한다고 가정해 보자. 이런 경우 일반적인 환경에서는 R버전 5.0과 R버전 8.0이 동시에 설치될 수 없다. 이로 인해 둘 중 하나의 프로그램은 버전문제가 발생한다. 이때 컨테이너 기술이 해결책이 된다.A ..

쿠버네티스 시작하기

쿠버네티스란쿠버네티스는 컨테이너 오케스트레이션의 대표적인 도구이다.  그렇다면, 컨테이너는 뭐고, 오케스트레이션이란 뭘까...? 컨테이너에 대한 개념은 가상화와 컨테이너라는 글에서 정리하였기 때문에, 오케스트레이션이라는 개념에 초점을 맞춰서 정리할 것이다.  가상화와 컨테이너컨테이너 인프라 환경을 이해하기 위해서는 가상화와 컨테이너의 개념에 대해서 이해해야한다. 두 개념은 모두 서버 자원을 효율적으로 사용하기 위한 기술이다.  가상화(VM, Virutal Machine)하나rybbit-life-debugging.tistory.com 여기서 오케스트레이션이란 오케스트라에 비유하면, 쉽게 이해 할수 있다. 오케스트라에서는 다양한 악기들이 함께 연주를 하지만, 각 악기가 제멋대로 연주하면 혼란스러운 소리가 난..

IaC(Vagrant)로 가상 머신(CentOS) 생성하기

이전 포스팅에는 Vagrant 환경을 구축하고 가상머신(CenOS)을 생성해, SSH로 가상머신에 접속하는 실습을 진행하였습니다. 이번시간에는 Vagrant을 통해 가상머신 구성(Config)이 자동으로 설정되어 생성되는 실습을 진행하겠습니다. IaC(Vagrant) 실습 환경 구축및 테스트 for WindowsVagrant란?가상 머신(VM)이나 컨테이너 환경을 쉽게 설정하고 관리할 수 있도록 도와주는 IaC도구이다. 대표적인 IaC도구는 Terraform, Vagrant, Ansible등이 존재하는데, Vagrant는 로컬환경에서 가상머신(VM)rybbit-life-debugging.tistory.com  1. 가상머신(CentOS)에 호스트네임, IP등을 자동으로 설정아래 링크를 통해 실습파일을 다..

DevOps 2024.09.26

Vagrant 실습 환경 구축 (Windows)

Vagrant란?가상 머신(VM), 컨테이너 환경을 쉽게 설정하고 관리할 수 있도록 도와주는 IaC도구입니다. 대표적인 IaC도구는 Terraform, Vagrant, Ansible등이 존재하는데, Vagrant는 로컬환경에서 가상머신(VM)을 관리할때 주로 사용합니다.*IaC란 Infra as Code의 약자로 인프라를 코드로 관리하는 것을 의미합니다. 코드기반으로 관리하면 일관된 인프라를 구성할수 있다는 장점이 존재합니다.  Virtualbox 설치(6.1.50 버전)가상머신(VM)은 Virtualbox를 설치합니다. 설치를 하기 전에 Vagrant와 호환이 되는 Virtualbox 버전을 확인해야 합니다. 호환이 되는 버전은 아래와 같으며, 추후에 변경될 수도 있으므로 공식사이트를 통해 확인하는 것..

DevOps 2024.09.24