전체 글 99

[Kubernetes] Object : Volume

3. Volume파드 안의 컨테이너들이 데이터를 공유하거나 유지할 수 있도록 지원하는 스토리지 단위 Pod는 기본적으로 휘발성 스토리지를 사용하기 때문에, 파드가 재시작되면 컨테이너 내부의 데이터도 모두 사라지게 됨. 이 문제를 해결하기 위해 Kubernetes에서는 Volume을 통해 데이터를 유지하거나 공유할 수 있는 구조를 제공함. 볼륨 타입은 총 3가지가 존재1. emptyDir "파드"가 생성될 때 자동으로 생성되는 빈 디렉터리 볼륨특징 - 볼륨 생성 시점에는 아무 내용도 포함되어 있지 않음 → 그래서 emptyDir이라고 부름 - 파드 안에 존재하는 컨테이너들끼리 데이터를 공유할 수 있도록 설계 - 파드가 삭제되면 함께 삭제됨 → 일시적인 임시 저장 용도에 적합 - 예시) - 컨테이..

IT_Study/Ops 2025.04.18

[Kubernetes] Object : Service

2. Service파드에 접근하기 위한 추상화된 네트워크 객체 Pod는 자체 IP를 가지고 있어 클러스터 내부에서는 통신이 가능하지만, 외부에서는 접근이 불가능함.또한 파드는 재시작 시 IP가 변경되기 때문에 고정된 접근 지점이 필요함.→ 이를 해결하기 위해 Service가 사용됨.특징1. 레이블 셀렉터를 기반으로 연결 대상 파드를 선택함 - 파드에 부여된 label 값을 기준으로 서비스가 어떤 파드에 연결될지 결정 - 예) app: pod 라벨을 가진 파드들을 selector로 지정2. 파드의 IP가 변경되어도 서비스 IP는 고정됨 → 접근 지점이 안정적으로 유지됨 클러스터 내부 또는 외부 노출 방식에 따라 총 3가지 타입이 존재함1. ClusterIP - 클러스터 내부에서만 접근 가능한..

IT_Study/Ops 2025.04.17

[Kubernetes] Object : Pod

1. PodKubernetes에서의 pod는 클러스터 내에서 애플리케이션을 실행하기 위한 가장 작은 배포 단위- 파드는 하나 이상의 컨테이너를 포함하는 논리적 단위- 내부의 컨테이너들은 같은 네트워크 공간(IP, localhost)과 스토리지 볼륨을 공유- 파드는 클러스터 내에서 실행되며, 특정 노드에 스케줄링되어 배포 A. Pod 내 컨테이너 - 파드는 보통 하나의 주요 컨테이너와, 경우에 따라 보조 컨테이너(예: init container)를 함께 가질 수 있음 - 각 컨테이너는 서로 다른 포트를 사용해야 하며, 동일 파드 내에서는 포트가 중복되면 안 됨 - 파드 내부에서는 localhost를 통해 컨테이너 간 통신이 가능 - 파드 생성 시 클러스터 내에서 고유한 IP가 부여됨 - 해당 IP는 클러..

IT_Study/Ops 2025.04.17

[Kubernetes] Kubernetes 구조 및 기능과 역할

Kubernetes의 구조 0. Kubernetes Cluster란?여러 대의 서버(Node)를 묶어 하나의 통합된 시스템처럼 동작하게 만든 집합Kubernetes는 클러스터를 통해 컨테이너를 자동으로 관리함 ✅ Kubernetes Cluster의 구성 요소구성 요소설명Master Node클러스터 전체를 제어하고 관리하는 중심 노드Worker Node실제로 애플리케이션(Pod)을 실행하는 노드네트워크 & 스토리지노드 간 통신과 데이터 공유를 위한 인프라 1. Physical Machine이란?쿠버네티스(Kubernetes) 클러스터는 여러 대의 물리적인 서버 위에서 동작한다.이러한 물리 서버를 Kubernetes에 등록하면 "Node"로 인식된다. *Node : kubelet이 설치되고 클러스터에 등록된..

IT_Study/Ops 2025.04.15

[Kubernetes] 가상화 기술의 history 및 Virtual Machine과 Container의 차이

Kubernetes 관련 History대규모의 서비스를 운영하는 기업들은, 최대한 자원을 효율적으로 써야 비용적으로 유리하다 1. 자원 격리 기술 - 리눅스에서 자원들을 격리해서 프로세스들이 독립적인 환경에서 돌아가도록 해주는 기술이 있었다. - 그러나 어려워서 대중적으로는 사용되지 않음2. 가상화 기술 : Virtual Machine - 2010.07, OpenStack이라는 VM을 가상화시켜주는 오픈소스가 등장 (from 락스페이스, 나사) - 운영환경이 자동화는 되는데, 시스템 효율이 나지 않음 --> VM을 가상화하기 위해 무거운 OS를 띄워야 한다3. 가상화 기술 : Container - 이 때 Docker 등장 : 컨테이너 가상화 기술은 서비스 간의 자원..

IT_Study/Ops 2025.04.14

[백준 10350] : Banks

애드 혹 문제를 찾다가 알게 됐다  문제 분석 수학, 누적합, 애드혹 # 문제 조건 양 끝 부분이 서로 연결된 리스트 활용 - list 길이 = N     - idx = 0은 idx = N-1에 연결     - idx = N-1은 idx = 0에 연결 - list는 k라는 요소를 가지고 있음     - -32,000 # Magic Move     - 특정 요소에 magic move 적용 시, k => -k가 된다     - 양 옆의 요소를 각 L, R이라 했을 때 은 L-abs(k), R-abs(k)로 동시에 변한다     !! 이렇다면 전체 합은 변하지 않는다         - k가 음수일 때, 양수로 변환 (2k) + 양옆 빼줌 (-2k) = 0         - k가 양수일 때는 magic move..

IT_Study/Python 2024.09.17

Magic method를 활용한 python class 사용 방법 정리

1. class에 대한 이해Python의 모든 것은 "객체"다print(type(1)) # a = 1print(type(a)) # print(type("1")) #  객체는 다음과 같은 특징을 가진다.객체는 Heap 영역에 할당된다.객체의 타입과 데이터, 메모리 주소, 메모리 크기 등은 생성되는 순간 Fixed 된다.또한 class의 instance를 "객체"라고 한다.따라서 class를 통해 instance를 생성한다면, 해당 instance는 기본적으로 heap memory (전역변수)에 저장된다. 2. class 사용 예제>다른 함수와 다르게, class에서는 self라는 parameter를 추가해서 함수를 작성한다.class 내 함수가 first parameter가 존재하지 않는다면, 다음과 같은..

IT_Study/Python 2024.08.19

[DevOps] DevOps의 기본적 이해와 철학

DevOps란? 소프트웨어의 개발(Development)과 운영(Operations)의 합성어 현재 DevOps는 단순한 개발과 운영의 통합을 의미하는 것은 아니다. 어떤 요구사항을 효율적으로 만족시키기 위하여, 일을 자동화하며 변경사항 지표들을 측정하고, 공유하고, 이 모든 결과물들을 지속적으로 축적해 나아가는 문화를 만들어가는 철학, 방법론, 기술 과거에는 개발팀과 운영팀의 생각의 차이에 대해서 인지하고, 그 간극을 줄여보자는 의미가 시작이었지만, 더 나아가 우리의 일에 관한 포괄적인 철학과 방법론이 되었다. (따라서 DevOps에 대한 다양한 정의가 존재 ) 철학 1 - 문화 (Culture) 문화 구성 요소 사람 팀, 인원, 가치, 의사소통 일(Task) 프로세스, 방법론 서비스 서비스의 가치, ..

IT_Study/Ops 2023.12.24

[MLOps] Kubeflow 활용을 위한 Kubernetes에 대한 이해

Kubernetes 개요 현업에서, 여러가지 서비스들을 동시에 관리할 일이 생길 것이다. 카카오T를 생각했을 때, 배차에 관련된 API 뿐만 아니라 여러 비즈니스 서비스에 관련된 서버가 있을 것이고, 여기에 맞는 스케일링 전략을 따로 설정을 해야 했을 것이다. 즉, 서비스 개수가 많아질수록, 인프라를 통합적으로 관리하는 데 어려움이 생긴다. 그래서, 서비스들을 안정적으로 서빙할 수 있도록 지원해주는 Tool 중 하나가 Kubernetes다. Kubernetes에서는 리소스 관리를 위해, 오토 스케일러를 사용한다. 용도에 따라 몇가지 다른 오토 스케일러를 제공하고 있다. 수직적 오토스케일링 (Vertical Pod Auto-scaler) k8s의 대표적인 기능 중 하나가 스케일링이다. (Vertical, ..

IT_Study/Ops 2023.11.21

[MLOps] Kubeflow pipeline handling (3) : Pipeline component에 PV를 mount하는 방법

Kubeflow v1.6.0 에서 진행 Jupyter notebook 생성 시 [Add Existing Volume] 옵션을 통해 기존에 존재하던 Persistant Volume을 binding 시켰었다. 하지만, pipeline component를 작성 후 pipeline을 run할 시에는 해당 PV를 사용할 수가 없다. 그 이유는 component는 독립적인 container로 관리하기 때문이다. 자세한 내용은 다음 초반 글의 그림을 참고 [MLOps] Kubeflow pipeline handling (1) : pipeline 개념 및 기본 진행 방법 Kubeflow Pipeline Kubeflow pipeline이란, ML workflow를 생성할 수 있는 kubeflow compoenent를 말한..

IT_Study/Ops 2023.11.21