Kubernetes의 리소스 관리와 설정(namespace, Configmap, Secret)
·
개발 환경 및 운영/Kubernetes
네임스페이스(Namespace)컨테이너와 그와 관련된 리소스를 구분지어 관리할 수 있는 일종의 논리적 그룹기본 개념쿠버네티스 설치시 기본적으로 3개의 네임스페이스 존재 default : 별도로 지정하지 않았을때 기본적으로 사용됨 (--namespace 옵션 명시 하지 않으면)kube-system: 쿠버네티스 클러스터 구성하는 필수 컴포넌트와 설정값 존재 (kube-dns, kube-proxy 등 )kube-public: 모든 사용자에게 읽기 가능한 네임스페이스. 보통 클러스터 내부 공용 정보 공유용 네임스페이스는 서로 다른 프로젝트, 팀, 환경(개발, 스테이징, 운영 등) 간 리소스를 논리적으로 격리할 수 있어 대규모 클러스터 운영에 유용하다.사용 # 네임스페이스 생성kubectl create names..
Kubernetes의 Persistent Volume과 Persistent Volume Claim
·
개발 환경 및 운영/Kubernetes
2025.01.07 - [개발 환경 및 운영/Kubernetes] - Kubernetes의 네트워크 리소스: Ingress (with ALB)이번 시간에는 쿠버네티스에서 제공하는 스토리지 리소스에 대해 알아보려고 한다. 특정 데이터를 보유해야 하는 stateful한 애플리케이션의 경우 데이터를 영구적으로 보관하고 관리할 수 있어야 한다. 이는 단순 로컬 볼륨만으로는 어렵기 때문에 볼륨을 네크워트로 연결해 계속 사용할 수 있도록 도와주는 Persistent Volume과 Persistent Volume Claim이라는 오브젝트에 대해 공부해보자.로컬 볼륨로컬 디스크를 볼륨으로 활용하는 방법으로, 개발환경이나 간단히 테스트할 때 유용하다. 노드나 pod이 삭제되면 데이터가 손실되므로 데이터의 영속성이 필요..
Kubernetes의 네트워크 리소스: Ingress (with ALB)
·
개발 환경 및 운영/Kubernetes
2025.01.01 - [개발 환경 및 운영/Kubernetes] - Kubernetes의 서비스(Service)지난 시간에는 Kubernetes의 네트워크 리소스 중 Service의 역할과 종류에 대해 알아보았다. 이번 시간에는 Service와 함께 Kubernetes 네트워크에서 중요한 역할을 하는 Ingress에 대해 알아보자.Ingress란?Ingress는 외부 트래픽을 클러스터 내부로 라우팅하는 Kubernetes 리소스이다. 도메인 기반의 HTTP(S) 요청이나 경로 기반 라우팅을 지원하여, 외부 클라이언트가 Kubernetes 내부의 다양한 서비스를 쉽게 이용할 수 있도록 돕는다.Ingress의 주요 역할HTTP(S) 트래픽 라우팅: 외부에서 들어오는 HTTP 또는 HTTPS 트래픽을 Kub..
Kubernetes의 서비스(Service)
·
개발 환경 및 운영/Kubernetes
2024.12.23 - [개발 환경 및 운영/Kubernetes] - Kubernetes의 구성요소 알아보기 (Pod, ReplicaSet, Deployment)지난 시간에는 Kubernetes의 workload인 Pod, ReplicaSet, Deployment에 대해 알아보았다. 이번 시간에는 Kubernetes에서 네트워크를 관리하는 핵심 리소스인 Service에 대해 알아보자.ServicePod와 네트워크를 연결하는 Kubernetes 리소스Pod은 쿠버네티스 클러스터 내부에서만 접근이 가능하며, 동적으로 생성되고 삭제되기 때문에 Pod의 IP 주소는 자주 바뀔 수 있다. 또한 deployment 내의 여러 Pod을 하나의 애플리케이션처럼 접근하고 구동하려면 다른 방법이 필요하다. 이때 Servi..
Kubernetes의 구성요소 알아보기 (Pod, ReplicaSet, Deployment)
·
개발 환경 및 운영/Kubernetes
2024.12.19 - [개발 환경 및 운영] - Docker에서 Kubernetes로지난 시간에는 Docker에서 Kubernetes로 가는 흐름에 대해 알아보았다. 이번 시간에는 Kubernetes의 주요 구성요소에 대해 알아보자Pod: 컨테이너를 다루는 기본 단위Kubernetes에서 컨테이너를 관리하는 가장 작은 단위Kubernetes가 Pod를 생성하면 해당 Pod는 클러스터 내부에서 고유한 IP를 가짐하나의 Pod에는 하나 이상의 컨테이너가 포함될 수 있음 (pod ≠ container)보통 하나의 애플리케이션 컨테이너를 하나의 Pod로 실행하지만, 필요에 따라 여러 컨테이너를 함께 실행할 수도 있다.코드 예제kubernetes는 yaml 파일로 상태를 선언해 리소스들을 관리한다. 세부적인 것..
Docker에서 Kubernetes로
·
개발 환경 및 운영/Kubernetes
2024.12.15 - [개발 환경 및 운영] - 가상화의 이해: 하이퍼바이저에서 Docker까지지난 시간의 가상화의 이해에 이어서 이번에는 Docker 컨테이너에서 컨테이너 오케스트레이션을 위해 탄생한 kubernetes에 대해 간략하게 알아보자Docker란?Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어 실행에 필요한 모든 것이 포함되어 있다. 이를 통해 환경에 상관없이 애플리케이션이 일관되게 동작하도록 보장한다.Docker 등장 이전과거에는 애플리케이션을 공유할 때 소스 코드뿐만 아니라 OS, 라이브러리 버전, CPU 아..
가상화의 이해: 하이퍼바이저에서 Docker까지
·
개발 환경 및 운영/Kubernetes
가상화란?가상화(Virtualization)는 물리적인 컴퓨팅 리소스를 논리적으로 분리하여 하나의 물리적 장비에서 여러 환경을 실행할 수 있게 하는 기술이다. 가상화를 통해 서버, 스토리지 장치, 데스크탑 시스템과 같이 물리적 형태로만 이용 가능했던 리소스를 디지털 형식으로 추상화할 수 있다. 이를 통해 대규모 시스템의 리소스를 효율성이 향상되고 공유가 간편한 더 작은 크기의 부분으로 세분화함으로써 하드웨어 리소스를 더 효율적으로 사용할 수 있다.가상화의 일반적인 용도 중 하나는 다른 운영체제로 설계된 애플리케이션을 특정 하드웨어 없이 실행할 수 있게 해주는 것이다. 이를 가능하게 하는 핵심요소는 하이퍼바이저(Hypervisor)와 가상 머신(Virtual Machine)이다하이퍼바이저(Hyperviso..
환경변수 주입하는 두 가지 방법
·
개발 환경 및 운영
환경변수 관리의 중요성애플리케이션 배포 및 운영 과정에서 환경변수 관리는 중요한 역할을 한다. 환경변수는 민감한 정보(ex. 데이터베이스 비밀번호, API 키)를 관리하거나 환경별 설정(develop, stage, production)을 간편하게 적용하는 데 사용된다. 최근 인프라를 새로 구축하면서 환경변수 주입 방식을 변경했는데, 기존에는 Docker 이미지 빌드 시점에 환경변수를 주입했다면, 변경된 방식은 Pod 생성 시점에 환경변수를 주입하는 것으로 바꼈다. 이번 글에서는 두 가지 방식을 살펴보고 차이점을 비교해 보자. 먼저 현회사의 CI/CD 파이프라인 흐름에 대해 간단히 알아보면 다음과 같다.코드 변경 ➔ 브랜치 머지 ➔ GitHub Actions 빌드/푸시 ➔ 이미지 태그 업데이트(Kustom..
Amazon Aurora DB
·
개발 환경 및 운영
Amazon RDS를 통해 클라우드에서 관계형 데이터베이스를 쉽게 설정하고 운영할 수 있다. 작년 카프카의 데이터베이스를 Aurora postgreSQL로 선택하면서 사용해왔는데 기존과 어떤점이 다른지 알아보고자 한다. Amazon Aurora Amazon Aurora 는 MySQL 및 PostgreSQL과 호환되는 완전 관리형 관계형 데이터베이스 엔진이다. Aurora에는 고성능 스토리지 하위시스템이 포함되며, MySQL 및 PostgreSQL과 호환되는 데이터베이스 엔진은 빠른 분산형 스토리지를 활용하도록 사용자 지정된다. 기본 스토리지는 필요에 따라 자동으로 커지며, Aurora 클러스터 볼륨 크기는 최대 128 tebibytes (TiB)까지 증가할 수 있다. Aurora는 또한데이터베이스 클러스..