본문 바로가기

K8S/주요 개념4

Imperatvie vs Declarative 쿠버네티스에서 리소스를 관리하는 두 가지 주요 방법은 명령형(Imperative) 방식과 선언형(Declarative) 방식입니다. 1. Imperative - 명령형 방식 명령형 방식은, 말 그대로 리소스를 단계별로 명령어로 직접 지정하고 생성하는 방식입니다. kubectl run, create, expose 명령어가 명령형에 해당합니다. 단일 명령으로 리소스를 빠르게 생성하고 변경할 수 있지만, 변경 내용을 추적하기 어렵다는 단점이 있습니다. 2. Declarative - 선언형 방식 리소스의 상태를 Yaml 파일 같은 선언적인 형식으로 정의하고, 이를 쿠버네티스에 제출하여 원하는 상태로 유지하도록 하는 방식을 선언형 이라고 합니다. 달성해야 할 최종 상태만 쿠버네티스에 전달합니다. kubectl -.. 2024. 1. 18.
Service 쿠버네티스에서 서비스(Service)는 일련의 파드(Pod)에 대한 네트워크 엔드포인트를 제공하고, 이를 통해 파드의 안정적인 네트워크 통신을 지원하는 추상적인 개념입니다. 파드는 생성될 때마다 내부 IP 주소가 변화하기 때문에 애플리케이션이 안정적으로 외부와 상호 통신이 가능하기 위해서는 고정된 IP 주소가 필요합니다. 서비스가 이런 역할을 해줍니다. 정리하자면, 서비스는 파드들을 통해 실행되고 있는 애플리케이션을 네트워크에 노출시키는 가상의 컴포넌트입니다. 여러 파드들에게 단일한 네트워크 진입점을 부여합니다. 쿠버네티스에서는 주로 다음 네 가지 종류의 서비스를 사용합니다 1. ClusterIP ClusterIP 서비스는 클러스터 내에서 파드에 접근하기 위한 가상 IP를 제공합니다. 클러스터 내부에서만.. 2024. 1. 18.
Pod, ReplicaSet, Deployment 1. Pods 파드는 쿠버네티스에서 가장 기본적인 배포 단위입니다. 보통 한 pod 안에 한 컨테이너가 존재합니다. 여러 개의 컨테이너 가능하지만 보통 스케일 업 다운은 파드의 개수를 의미하는 것입니다. 파드의 컨테이너들은 동일한 네트워크 네임스페이스와 스토리지를 공유합니다. 주로 하나의 애플리케이션을 실행하는데 사용되며, 동일한 노드에서 실행됩니다. 쿠버네티스에서의 파드는 무언가가 구동 중인 상태를 유지하기 위해 동원되는 일회성 자원으로, 언제든 다른 노드로 옮겨지거나 삭제될 수 있습니다. 파드는 생성될 때마다 새로운 내부 IP를 할당 받음. yaml 파일로 리소스 deploy 쿠버네티스는 yaml을 input으로 다양한 리소스(pods, replicas, deployents,,)를 만듭니다. apiV.. 2024. 1. 18.
K8S의 6가지 Core Concept 쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션 플랫폼으로, 분산 시스템에서 컨테이너화된 애플리케이션을 관리하고 배포하기 위한 도구입니다. 쿠버네티스는 여러 핵심 컴포넌트로 구성되어 있는데, 각 컴포넌트는 특정한 기능을 담당하며, 함께 작동하여 애플리케이션을 효과적으로 관리합니다. 이번 포스팅에서는 쿠버네티스의 6가지 대표 핵심 개념에 대해서 설명하겠습니다. 1. ETCD ETCD는 분산 데이터베이스로, 클러스터의 모든 설정 데이터와 현재 상태 정보를 안정적으로 보관합니다. 쿠버네티스는 기반 스토리지(backing storage)로 etcd를 사용하고 있습니다. 만약 동작 중인 클러스터의 ETCD 데이터베이스가 유실된다면 컨테이너뿐 아니라 클러스터가 사용하는 모든 리소스가 사용이 불가하게 됩니다.. 2024. 1. 18.