DevOps

DevOps/Docker

[Docker] VM vs Container

VM ( Virtual Machine ) 구조 VM은 하이퍼바이저를 사용하여 하드웨어를 가상화 하이퍼바이저는 가상화를 가능하게 하는 소프트웨어 이는 물리적 하드웨어와 가상 머신(VM) 사이에서 작동하며, 여러 개의 VM이 동일한 물리적 하드웨어 위에서 독립적으로 실행될 수 있도록 함. 각 VM은 완전한 운영 체제를 포함하며, 하이퍼바이저는 이러한 VM들이 하드웨어 자원을 효율적으로 공유하고 관리할 수 있도록 도움. Type 1 (네이티브 하이퍼바이저): 이는 직접 하드웨어 위에 설치되며, 운영 체제 없이 독립적으로 작동함. ex. VMware ESXi, Microsoft Hyper-V, Xen Type 2 (호스티드 하이퍼바이저): 이는 기존 운영 체제 위에 설치되며, 일반적인 애플리케이션처럼 작동함..

DevOps/Kubernetes

[Kubernetes] Auto Healing / Auto Scaling / HPA / Probe / Health Checks

1. Auto Healing 1) 개념 Kubernetes 클러스터 내에서 실행되는 컨테이너나 노드가 실패했을 때, 시스템이 자동으로 이를 감지하고 복구하는 기능 2) 사용 애플리케이션이 실패하거나 예상치 못한 오류가 발생했을 때 사용 3) 작동 방식 Kubernetes의 Health Checks를 통해 애플리케이션의 상태를 지속적으로 모니터링 문제가 감지되면, 시스템은 자동으로 문제가 있는 컨테이너를 재시작하거나 교체 (1) Health Checks Health Checks는 Kubernetes 클러스터 내에서 실행 중인 컨테이너의 상태를 모니터링하고, 문제가 발생했을 때 적절한 조치를 취하는 데 중요한 역할을 함 주로 두 가지 유형의 프로브(Probe)를 사용 - Liveness Probe, Read..

DevOps/Kubernetes

[Kubernetes][CKA] Kube Proxy

더보기 Within Kubernetes Cluster, every pod can reach every other pod, this is accomplish by deploying a pod networking cluster to the cluster. Kube-Proxy is a process that runs on each node in the kubernetes cluster. pod network ( service cannot connected to pod network because it is not real - no interface and no process - only in the kubernetes memory => how to use ? => use kube-proxy ) every po..

DevOps/Kubernetes

[Kubernetes][CKA] Kubelet

Kubelet is the sole point of contact for the kubernetes cluster - The kubelet will create the pods on the nodes, the scheduler only decides which pods goes where. - register node - create pods - monitor node and pods Kubelet은 쿠버네티스 클러스터와 개별 노드 간의 소통을 담당하며, 파드의 생명주기 관리와 노드 상태의 모니터링을 수행한다. Kubelet의 역할 Kubelet은 쿠버네티스 클러스터와 노드 간의 유일한 접점 Kubelet은 노드에 파드를 생성하며, 스케줄러는 파드가 어느 노드에 배치될지만 결정 노드 등록 Kubelet..

DevOps/Kubernetes

[Kubernetes][CKA] Kube Scheduler

kube-scheduler is responsible for scheduling pods on nodes. The kube-scheduler is only responsible for deciding which pod goes on which node. It doesn't actually place the pod on the nodes, that's the job of the kubelet. why do you need a scheduler? - filter nodes - rank nodes resource requirements and limits taints and tolerations node selectors/affinity Kube-Scheduler는 쿠버네티스 클러스터에서 파드의 효율적인 배치..

DevOps/Kubernetes

[Kubernetes][CKA] Kube Controller Manager

Kube Controller Manager manages various controllers in kubernetes. - In kubernetes terms, a controller is a process that continuously monitors the state of the components within the system and works towards bringing the whole system to the desired functioning state. Node Contoller responsible for monitoring(using kube-apiserver) the state of the Nodes and taking necessary actions to keep the app..

DevOps/Kubernetes

[Kubernetes][CKA] Kube-API Server

더보기 kubectl ( kube-apiserver - ETCD Cluster - kuber-api server) or api kube scheduler - kube-apiserver - kubelet ( worker nodes ) kubectl is center of all the different takes needs to be done to make a change in the cluster kube-api server authenticate user validate retrieve data update ETCD scheduler kubelet kube-apiserver.service options kubeadmin kube-api 서버의 중심 역할 kube-apiserver는 etcd 데이터 저장..

DevOps/Kubernetes

[Kubernetes][CKA] ETCD

Overview of ETCD Definition: ETCD is a distributed, reliable key-value store that is simple, secure, and fast. It is primarily used in clustered environments for configuration and state management. Key-Value Store Explained: Unlike traditional databases that use tables, ETCD stores data in a key-value format. Each key-value pair (or 'document') can have a different structure, and changes to one ..

DevOps/Kubernetes

[Kubernetes][CKA] Core Concepts - Cluster Architecture 개요 및 Docker vs ContainerD

Cluster Architecture 개요 목적 : 자동화된 방식으로 app 을 컨테이너 형태로 호스팅 → Why ? 응용 프로그램의 많은 인스턴스를 쉽게 배포하고, 응용프로그램 내 다양한 서비스 간의 통신이 가능 쿠버네티스 클러스트는 노드의 집합이다. 노드는 on-premise 또는 클라우드, 컨테이너 일 수 있다. 노드의 종류에는 워커노드와 마스터 노드가 있다. 관계 마스터 노드는 클러스터의 전반적인 관리와 조정을 담당하며, 워커 노드는 실제 컨테이너를 실행하는 역할 마스터 노드의 컴포넌트들은 워커 노드에 있는 애플리케이션의 배포, 관리 및 스케줄링을 조정 kubelet은 워커 노드에서 실행되며, kube-apiserver를 통해 마스터 노드와 통신 kube-apiserver는 kubelet의 요청을..

DevOps/Kubernetes

[Kubernetes][CKA] 개요

개요 $395 계속 가격이 올라감 시험을 볼 생각이 있으면 미리 사두는 편이 좋을 것 같다 온라인 시험 ( 감독관 존재 ) 12개월 내에 재응시 가능 hans-on (실습) 시험 기술이 어떻게 동작하는지 알아야 함 kubernetes 공식 document 항시 확인 가능 암기가 많이 필요하진 않음 상세내용 CLI 실습 문제 2시간 Domain Weight Cluster Architecture, Installation & Configuration 25% Workloads & Scheduling 15% Services & Networking 20% Storage 10% Troubleshooting 30% Cluster Architecture, Installation & Configuration Kuberne..

DevOps

Vagrant vs. Terraform/Docker(베이그란트와 테라폼, 도커 비교)

예전에 Terraform 글을 쓰면서 vagrant와 terraform을 가볍게 비교하고 넘어간 적이 있다. Vagrant 와 같은 도구는 데모용 가상화 환경을 구축하기 위해 존재 하지만 프로덕션 환경과 더 밀접하게 일치하는 실제 인프라에서 소프트웨어를 데모하는 것은 여전히 ​​매우 어렵다는게 요지였는데, 이는 Vagrant가 소수의 버추얼머신을 사용하는 개발 환경을 위해 개발된 것이고, Terraform은 실제 인프라를 관리하기 위해 설계/개발된 것이기 때문이다. [DevOps/02]Terraform Use cases 테라폼을 사용하는 이유 테라폼을 사용하는 이유 1. Heroku App Setup - codify the setup required for a Heroku application, ensu..

DevOps/Docker

[도커]도커 이미지 만들기(Dockerfile, commit)

1. 도커 이미지 도커 이미지는 프로그램을 실행하는데 필요한 설정과 소프트웨어 종속성(프로그래밍 언어 런타임 및 기타 소프트웨어 라이브러리의 특정 버전 등)을 가지고 있다. 여러개의 레이어로 되어있다. 도커 이미지는 여러개의 레이어가 쌓여서 만들어진다. 베이스 이미지는 이미지의 기반이 되는 부분이다. 이미지에 무언가가 추가 되면(변경 사항이 생기게 되면) 레이어가 추가되게 되는데, 이를 레이어 캐싱이라고 한다. 2. 도커 이미지 만들기 도커 이미지는 도커 파일을 사용하거나 커밋을 사용하면 만들 수 있다. 🔽 예제 container name: python-os image name: centos:7 python package install 후 /app dir에 마운트 working dir, volume 모두..

박한결
'DevOps' 카테고리의 글 목록