전체 글 169

Docker Swarm!

Docker의 Swarm이란최근 쿠버네티스에 대해 다루었는데 이번에는 도커 자체적으로 제공하는 오케스트레이션 툴인 "docker swarm"에 대해 다루겠다! 쿠버네티스와 무엇이 다른지도 짚어볼 생각이다.도커에서도 쿠버네티스와 같이 여러 대의 서버 자원을 합쳐 하나의 클러스터로 만들어서 자원을 병렬로 확장할 수 있다. 도커 스웜은 도커 엔진 자체적으로 내장된 기능이다. 클러스터 관리, 자동화, 고가용성 및 확장성을 제공한다.아래와 같이 스웜 모드 클러스터 정보를 출력해보면 기본적으로 비활성 상태인 것을 알 수 있다.docker info | grep SwarmSwarm : inactive # 출력구조도커 스웜 모드는 기본적으로 "매니저 노드"와 "워커 노드"로 구성돼 있다. 워커 노드는 실제 컨테이너가 생..

기록/Cloud 2025.04.25

Shell

Shell이란?리눅스나 유닉스 시스템에서 자동화된 작업을 수행하기 위한 프로그램이다. 사용자와 운영체제 커널 사이의 인터페이스 역할을 하며, 사용자의 명령을 해석하고 실행한다.shell의 종류는 다음과 같다.bash : Bourne-Again Shell(프롬프트 : #, 경로 : /bin/bash)sh : Bourne Shell(프롬프트 : $, 경로 : /bin/sh)csh : C Shell(프롬프트 : %, 경로 : /bin/csh)ksh : Kron Shell(프롬프트 : $, 경로 : /bin/ksh)tcsh : TENEX C Shell(프롬프트 : >, 경로 : /bin/tcsh)Shell 명령어 기호shell 명령어를 다음과 같은 기호와 함께 사용하면 다양한 작업이 효율적으로 가능해진다.| :..

기록/Linux 2025.04.23

Kubernetes (9)

스토리지와 로깅/모니터링 시스템쿠버네티스 스토리지 시스템쿠버네티스에서 영구적인 데이터 저장을 위해 PV(Persistent Volume)와 PVC(Persistent Volume Claim)를 사용한다. 이러한 시스템은 컨테이너가 재시작되거나 파드가 이동되어도 데이터가 유지될 수 있도록 해준다.PV와 PVC 생성 방법PV를 생성하는 방법에는 여러 가지가 있으며, 각 방법은 다양한 사용 사례에 맞게 설계되어 있다.정적 프로비저닝(Static Provisioning)클러스터 관리자가 직접 PV를 생성하고 PVC와 연결하는 방식이다.PV는 쿠버네티스 API에 저장되며, 클러스터 사용자가 사용할 수 있는 스토리지 리소스 정보를 포함한다.관리자는 미리 특정 용량의 PV를 생성해두고, 사용자의 PVC 요청이 있을 ..

기록/Kubenetes 2025.04.21

Kubernetes (8)

Component And Network쿠버네티스 컴포넌트kube-apiserverkube-apiserver는 쿠버네티스 클러스터의 제어 평면(Control Plane)의 핵심 구성 요소로, 클러스터의 상태를 관리하고 제어하는 역할을 한다. 모든 REST API 요청을 처리하며, 클러스터 내의 모든 컴포넌트와 통신한다. API 서버는 클러스터의 상태 정보를 etcd에 저장하고, 이를 기반으로 클러스터를 관리한다.주요 역할클러스터의 중앙 관리 지점: 모든 API 요청을 처리하고, 클러스터의 상태를 관리한다.인증 및 인가: 클러스터에 대한 접근을 제어하기 위한 메커니즘을 제공한다.데이터 저장 및 조회: 클러스터의 상태 정보를 etcd에 저장하고, 필요한 데이터를 조회한다.요청 인증 및 유효성 검증: 모든 요청..

기록/Kubenetes 2025.04.21

Kubernetes (7)

쿠버네티스 컨트롤러 - StatefulSet, Ingress, AutoscalerStatefulSet의 특징과 ReplicaSet과의 차이점쿠버네티스에서 StatefulSet은 상태를 유지해야 하는 애플리케이션을 위한 워크로드 API 오브젝트다. ReplicaSet이 상태가 없는(Stateless) 애플리케이션을 위한 것이라면, StatefulSet은 상태가 있는(Stateful) 애플리케이션을 위해 설계되었다. 대표적인 Stateful 애플리케이션으로는 MongoDB, MariaDB, Redis와 같은 데이터베이스가 있다.ReplicaSet과 StatefulSet의 주요 차이점Pod 이름 생성 방식ReplicaSet: Pod 이름이 랜덤하게 생성됨 (예: my-app-jk291, my-app-f3g21..

기록/Kubenetes 2025.04.17

Kubernetes (6)

쿠버네티스 주요 구성요소 - Service, Volume, API 접근 관리Service쿠버네티스에서는 다양한 상황에서 활용하기 위해 클러스터 내 DNS 서버를 제공한다. 이 DNS 서버는 Service의 도메인 이름과 IP를 저장하고 있어 Pod가 Service의 도메인을 질의하면 해당 IP를 알려준다. 이를 통해 동적으로 변하는 Pod의 IP에 대응할 수 있다.HeadlessHeadless Service는 Pod 간 직접 통신이 필요할 때 사용하는 방식이다. 일반적인 Service는 ClusterIP를 통해 여러 Pod에 로드밸런싱을 제공하지만, Headless Service는 각 Pod에 직접 접근해야 할 때 유용하다.ClusterIP 속성에 None 지정: Service의 IP를 생성하지 않는다...

기록/Kubenetes 2025.04.16

Kubernetes (5)

Pod파드 라이프사이클쿠버네티스에서 파드(Pod)는 애플리케이션의 기본 실행 단위로, 생성부터 종료까지 정의된 라이프사이클을 따른다. 파드는 컨테이너 그룹을 표현하는 추상적인 개념이며, 쿠버네티스 클러스터에서 실행되는 프로세스를 나타낸다.파드의 상태와 단계+----------+| Pending |+----------+ | v+----------+| Running |+----------+ / \ v v+----------+ +----------+|Succeeded| | Failed |+----------+ +----------+ | v+----------+| Unknown |+----------+파드는 생명주기 동안 다양한 단계(Ph..

기록/Kubenetes 2025.04.15

Kubernetes (4)

Kubernetes의 배포 전략과 컨트롤러 이해하기DeploymentDeployment는 쿠버네티스에서 애플리케이션의 배포와 업데이트를 관리하는 핵심 컨트롤러다. 이를 통해 ReplicaSet의 생성 및 관리부터 애플리케이션 업데이트와 롤백까지 선언적으로 수행할 수 있다. Deployment를 사용하면 Pod 및 ReplicaSet을 명시적으로 생성할 수 있으며, 쿠버네티스 컨트롤 플레인은 현재 상태를 지속적으로 모니터링하여 원하는 상태로 유지한다.Deployment의 주요 기능은 다음과 같다.Pod와 ReplicaSet의 생명주기를 자동으로 관리한다.다양한 애플리케이션 배포 전략을 지원한다.문제가 발생했을 때 이전 버전으로 롤백하는 기능을 제공한다.애플리케이션의 확장성과 스케일링을 자동화한다.Deplo..

기록/Kubenetes 2025.04.14

컨테이너와 가상 머신(VM)

개요쿠버네티스에 대한 정보를 찾아보다가 문득 다음 글을 눈에 띄었다. 컨테이너와 VM의 차이는 무엇일까?도커를 자주 사용해왔고 최근에는 vm도 다루기 시작했지만 이 차이를 설명할 정도로 이에 대해 이해하지 못하고 있었다. 그래서 이번에는 이들에 대해 알아보고자 한다!가상 머신(Virtual Machine)의 구조와 작동 방식가상 머신의 정의가상 머신은 물리적인 하드웨어 위에 하이퍼바이저(Hypervisor)를 설치하고, 그 위에 각기 다른 운영 체제(Guest OS)를 설치하여 독립적인 실행 환경을 제공한다. 각 VM은 자체적인 커널과 사용자 공간을 가지며, 물리적 하드웨어를 가상화하여 사용한다.사용자 공간과 커널 공간의 활용커널 공간: 각 VM은 자체 운영 체제를 포함하므로, 고유의 커널 공간을 가진..

Kubernetes (3)

Objects - Namespace, ResourceQuota, LimitRange쿠버네티스 클러스터에서 자원 관리는 핵심적인 요소다. 기본적으로 쿠버네티스의 컨테이너는 제한 없이 클러스터 자원을 사용할 수 있어 한 애플리케이션이 전체 클러스터 자원을 독점할 위험이 있다. 이런 문제를 해결하기 위해 쿠버네티스는 Namespace, ResourceQuota, LimitRange라는 세 가지 핵심 오브젝트를 제공한다. 이 글에서는 이 세 가지 오브젝트의 개념, 활용법, 그리고 실제 구현 방식에 대해 자세히 알아본다.Namespace 이해하기네임스페이스는 쿠버네티스 클러스터 내에서 논리적으로 자원을 분리하는 가상 클러스터다. 네임스페이스를 통해 여러 팀이나 프로젝트가 동일한 클러스터를 공유하면서도 각자의 자원..

기록/Kubenetes 2025.04.11
728x90
반응형