분류 전체보기 37

[CKA] Udemy CKA 강의 Scheduling02 - Resource Requirements and Limits, DaemonSets, Static Pods, Multiple Schedulers

Resource Requirements and LimitsResource Requests request는 k8s가 컨테이너에 대해 보장하는 최소한의 자원이다. 컨테이너가 스케줄될 때, k8s는 해당 자원을 제공할 수 있는 노드를 선택하기 위해 request를 사용한다. 요청된 자원을 제공할 수 있는 노드가 없다면 파드는 해당 노드에서 실행되지 않는다. request를 설정하기 위해 아래 yaml 처럼 작성할 수 있다.#pod-definition.yamlapiVersion: v1kind: Podmetadata: name: web labels: name: webspec: containers: - name: web image: web ports: - containerPort: ..

Certification 2025.01.22

[Rocky Linux8로 리눅스 마스터 1급 정복하기] Part 01. 리눅스 실무의 이해 (Ch02. 리눅스 시스템의 이해)

Chapter02. 리눅스 시스템의 이해 2.1 리눅스와 하드웨어 2.1.1 하드웨어의 이해 리눅스 설치의 개요리눅스가 탄생한 배경: 개인용 컴퓨터에서 사용할 수 있는 유닉스 호환 운영체제를 만들기 위함운영체제 사용 환경이 GUI 환경으로 전환되고, 다양한 용도의 리눅스가 등장하면서 컴퓨터의 고사양을 요구하는 리눅스가 등장레드햇이나 수세 리눅스(서버 시스템용)는 데비안 계열 리눅스(개인용)보다 CPU, memory, HDD 등의 HW 요구 사항이 큼따라서 사용 목적에 따라 리눅스 배포판을 잘 선택해야 하고, 리눅스에서 요구하는 최소 사양을 충족해야 함또한 배포되는 리눅스마다 지원되는 아키텍처가 달라 시스템에서 사용하는 CPU를 지원하는 리눅스를 선택하는 것도 중요 리눅스 설치를 위한 HW 정보 파악CPU..

Linux Master 2025.01.19

[Rocky Linux8로 리눅스 마스터 1급 정복하기] Part 01. 리눅스 실무의 이해 (Ch01. 리눅스의 개요)

Chapter01. 리눅스의 개요 1.1 운영체제의 개요 운영체제(OS; Operating System)란?컴퓨터 HW와 컴퓨터 사용자 간의 매개체 역할을 하는 시스템 SW로 사용자가 프로그램을 실행할 수 있는 환경을 제공- 좁은 의미: HW와 SW 간의 다리 역할을 하는 커널(Kernel)- 넓은 의미: 커널, 미들웨어, SW 실행 환경과 사용자 인터페이스 프레임워크를 모두 포괄 1.1.1 운영체제의 이해운영체제의 주요 역할① 컴퓨터의 하드웨어 제어② 작업의 순서를 정하고, 입출력 연산 제어③ 프로그램의 실행을 제어하고, 데이터와 파일의 저장을 관리④ 사용자들 간의 하드웨어 자원을 공유하도록 도움⑤ 시스템 자원을 스케줄링해 효율적으로 활용할 수 있게 도움⑥ 입출력을 쉽게 하는 기능 제공⑦ 응용 프로그램..

Linux Master 2025.01.17

관측 가능성의 표준, 오픈텔레메트리

OpenTelemetry란?Trace, Metric, Log 같은 데이터를 instrumenting, generating, collecting, exporting하는 Observability framework이다. OTel은 상용 서비스 또는 Jaeger, Prometheus, Grafana와 같은 오픈소스 백엔드로 데이터를 전송하여 데이터를 저장하고, trace, metric, log 데이터를 저장하거나 쿼리할 수 있는 방법을 제공하지는 않는다.  OTel 아키텍처 및 구성 요소개발 연어별 SDK, 데이터 수집, 변환 및 데이터 내보내기, 자동 계측 패키지를 포함한 여러 구성 요소로 구성된다. 아래 그림은 오픈텔레메트리의 아키텍처와 구성요소를 나타낸 그림이다. 구성 요소신호: 로그, 메트릭, 추적에 대..

Observability 2024.12.23

[CKA] Udemy CKA 강의 Scheduling01 - Manual Scheduling, Labels and Selectors, Taints and Tolerations, Node Selectors, Node Affinity

Manual SchedulingHow scheduling works  우선, 간단한 파드 정의 파일을 보자. // pod-definition.yamlapiVersion: v1kind: Podmetadata: name: nginx labels: name: nginxspec: containers: - name: nginx image: nginx ports: - containerPort: 8080 nodeName: // not default 모든 파드에는 nodeName 필드가 있지만 nodeName 필드는 기본값으로 설정되어 있지 않고, 쿠버네티스가 자동으로 nodeName 필드를 추가한다. 스케줄러는 모든 파드를 보고 속성 세트가 없는 노드를 찾는다. 찾은 노드는 바인딩 ..

Certification 2024.12.21

[CKA] Udemy CKA 강의 Core Concepts 명령어 정리

kubectl get k get pods: 클러스터 내에 존재하는 모든 파드의 상태 조회--namespace || -n: 조회할 파드가 있는 네임스페이스 지정kubectl get rs: 클러스터 내에 존재하는 모든 레플리카셋의 정보 조회k get deploy: 클러스터 내에 존재하는 모든 디플로이먼트의 정보 조회k get ns: 클러스터 내에 존재하는 모든 네임스페이스의 정보 조회 kubectl describek describe rs : 주어진 이름을 가진 레플리카셋의 상세 정보를 출력k describe pod : 주어진 이름을 가진 파드의 상세 정보 출력 kubectl deletek delete pod : 주어진 이름을 가진 파드 삭제 (레플리카셋으로 관리 중인 파드였다면 삭제된 파드 대신 새로운 파..

Certification 2024.12.14

[CKA] Udemy CKA 강의 Core Concepts02 - Pod, Replica set, Deployment, Service, Namespace

Pod응용 프로그램을 컨테이너의 형태로 워커 노드(worker node)에 배포할 때 pod로 캡슐화pod는 응용 프로그램(application)의 단일 인스턴스(instance)쿠버네티스에서 만들 수 있는 가장 작은 객체(object)pod는 일반적으로 컨테이너와 1:1 관계스케일업을 할 때 pod를 생성, 스케일다운을 할 때 pod를 삭제기존 pod에 컨테이너를 추가로 생성하지 않음멀티 컨테이너 pod헬퍼 컨테이너가 필요할 때 동일 pod 내에 여러 개의 컨테이너를 가질 수 있음동일한 네트워크 공간 및 저장 공간 사용 명령어pod 생성해 도커 컨테이너 배포kubectl run nginx --image nginx도커 허브에서 도커 이미지 다운로드 (--image)pod 확인kubectl get pods..

Certification 2024.12.13

[쿠버네티스 인 액션] Ch1. 쿠버네티스 소개

쿠버네티스란? 쿠버네티스는 컨테이너화된 애플리케이션을 쉽게 배포하고 관리할 수 있게 해주는 소프트웨어 시스템이다. 쿠버네티스를 사용해 애플리케이션을 배포한다면, 애플리케이션에 포함되어 있는 각각의 기능은 각각의 컨테이너에서 수행되어 동일한 서버에서 실행되더라도 다른 애플레케이션에 영향을 주지 않는다는 특징을 가지고 있다. 쿠버네티스는 컨테이너화하여 애플리케이션을 관리하기 때문에 클러스터에 수천 개의 노드가 있던지 수만 개의 노드가 있던지 쿠버네티스에 애플리케이션을 배포하는 방식은 동일하다.  쿠버네티스 시스템 이해하기마스터 노드와 워커 노드로 구성된다. 아래 그림에서 마스터 노드는 Control plane, 워커 노드는 Compute machines로 표현되어 있다. ✔️ 마스터 노드 마스터 노드는 전체..

Kubernetes 2024.11.26

[프로그래머스] 코딩테스트 고득점 Kit 완전탐색 C++ (최소직사각형, 모의고사)

1️⃣ 최소직사각형 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 코드#include #include #include using namespace std;vector v1;vector v2;int solution(vector> sizes) { int answer = 0; for (int i=0;i= sizes[i][1]){ v1.push_back(sizes[i][0]); v2.push_back(sizes[i][1]); } else { v1.push_back(sizes[i][1]); v2.pu..

Algorithm 2024.11.19

[모니터링의 새로운 미래 관측성] Ch3-1. 관측 가능성의 시작, 프로메테우스 (프로메테우스의 기능, 노드 익스포터 예제)

프로메테우스 서버를 포함한 프로메테우스 생태계(시계열 DB, 블록 처리, 알람, 오토스케일링)는 클라우드 네이티브를 구현하는 데 중요하다. 또한 프로메테우스를 기반으로 그라파나 관측 가능성 솔루션을 개발했기 때문에 내부 처리 방식과 운영 방식이 유사하다. 그렇기에 프로메테우스의 내부 원리를 이해하고 있으면 문제 발생 시 해결책을 근본적인 해결책을 찾는데 도움이 될 것이다. 프로메테우스 바이너리 구성1️⃣ 프로메테우스의 기능 프로메테우스 기능은 운영자를 위한 메트릭 모니터링, 개발자를 위한 exporter, 오토스케일링 설정, 시계열 DB, 서비스 모니터를 사용한 서비스 디스커버리, 알람과 업무 규칙 등이 있다. 프로메테우스와 쿠버네티스는 긴밀하게 연결된다. 쿠버네티스는 런타임 플랫폼이고, 나머지 운영과 ..

Observability 2024.11.18