본문 바로가기

반응형

가상 머신/쿠버네티스

(10)
[ 쿠베네티스 / Kurbernetes ] 컨트롤러에 대해서 알아보기 Kubernetes의 컨트롤러는 클러스터 상태를 원하는 상태로 유지하기 위해 사용되는 주요 컴포넌트입니다.컨트롤러는 클러스터의 현재 상태를 지속적으로 모니터링하고, 필요에 따라 조치를 취하여 원하는 상태를 유지합니다.Kubernetes에서 제공하는 다양한 유형의 컨트롤러는 각각 특정한 목적과 기능을 가지고 있습니다.주요 컨트롤러 타입은 다음과 같습니다:1. ReplicationController목적: 지정된 수의 Pod 복제본이 항상 실행되도록 보장합니다.특징: 특정 수의 동일한 Pod를 유지하며, Pod가 죽거나 삭제되면 새로운 Pod를 생성합니다.예시:apiVersion: v1kind: ReplicationControllermetadata: name: my-replication-controllers..
[ 쿠버네티스 / Kurbernetes ] 서비스에 대해서 알아보기 Kubernetes의 서비스(Service)는 클러스터 내에서 실행되는 Pod에 대한 네트워크 접근을 관리하는 추상화된 리소스입니다.서비스는 일관된 방식으로 Pod에 접근할 수 있게 하여, 동적 환경에서도 안정적인 네트워크 통신을 가능하게 합니다.서비스는 여러 유형으로 제공되며, 각각의 기능과 특징이 다릅니다.1. Kubernetes 서비스의 주요 개념서비스 정의:서비스는 여러 Pod를 그룹화하여 하나의 논리적 단위로 묶습니다.각 서비스는 클러스터 내에서 고유한 IP 주소와 DNS 이름을 가집니다.레이블 셀렉터:서비스는 레이블 셀렉터를 사용하여 대상이 되는 Pod를 선택합니다.동일한 레이블을 가진 Pod는 서비스의 백엔드로 동작합니다.엔드포인트:서비스는 선택된 Pod의 IP 주소와 포트를 엔드포인트로 관..
[ 쿠버네티스 / Kurbernetes ] Pod의 라이프 사이클 Kubernetes에서 Pod의 라이프 사이클은 생성부터 종료까지 여러 단계를 거치며, 각 단계에서 Pod의 상태를 모니터링하고 관리할 수 있습니다.Pod의 라이프 사이클 단계는 다음과 같습니다:1. Pod의 라이프 사이클 단계Pending:Pod가 생성되었지만 아직 모든 컨테이너가 시작되지 않은 상태입니다.이는 스케줄러가 Pod를 적절한 노드에 할당하기 전 또는 이미지 다운로드, 자원 할당 등의 과정이 완료되지 않았을 때 발생합니다.Running:모든 컨테이너가 성공적으로 시작되어 실행 중인 상태입니다.Pod가 노드에 할당되고, 모든 초기화 단계가 완료된 후 이 상태로 전환됩니다.Succeeded:Pod 내의 모든 컨테이너가 성공적으로 종료된 상태입니다.각 컨테이너의 종료 상태가 0(정상 종료)일 때 ..
[ 쿠버네티스 / Kurbernetes ] Pod의 특징 Kubernetes에서 Pod는 가장 작은 배포 단위로, 하나 이상의 컨테이너를 그룹화한 것입니다.Pod는 애플리케이션의 인스턴스를 실행하는 기본 단위이며, 여러 컨테이너가 협력하여 하나의 애플리케이션 역할을 합니다.Pod의 주요 특징은 다음과 같습니다:1. Pod의 주요 특징단일 IP 주소:Pod는 클러스터 내에서 고유한 IP 주소를 갖습니다.같은 Pod 내의 모든 컨테이너는 이 IP 주소를 공유하며, 로컬 호스트 네트워킹을 사용해 통신합니다.공유 스토리지:Pod 내의 컨테이너들은 공유 스토리지를 사용할 수 있습니다.이를 통해 데이터 공유 및 협업이 용이합니다.단일 네트워크 네임스페이스:Pod 내의 모든 컨테이너는 같은 네트워크 네임스페이스를 공유합니다.이는 동일한 네트워크 인터페이스를 사용하며, 서로..
[ 쿠버네티스 / Kurbernetes ] K8s 구성하는 주요 프로세스 Kubernetes(K8s) 클러스터를 구성하는 코어 프로세스는 클러스터의 관리와 오케스트레이션을 담당하며, 주요 구성 요소는 다음과 같습니다:1. 마스터 노드 (Control Plane)마스터 노드는 클러스터를 관리하고 모든 노드 간의 조정을 담당합니다. 주요 구성 요소는 다음과 같습니다:kube-apiserver:Kubernetes API 서버로, 클러스터의 중앙 제어 부분입니다.클러스터의 모든 요청을 받아들이고, 유효성을 검사하며, RESTful API를 통해 다른 구성 요소와 통신합니다.etcd:분산 키-값 데이터베이스로, 클러스터의 상태 정보를 저장합니다.모든 마스터 노드 구성 요소와 클러스터의 상태를 공유하며, 고가용성을 위해 복제본을 유지합니다.kube-scheduler:새로 생성된 Pod를..
[ 쿠버네티스 / Kurbernetes ] 이미지가 컨테이너에서 실행되는 과정 순서대로 보기 쿠버네티스(Kubernetes)에서 이미지를 사용하여 컨테이너를 실행하는 과정은 여러 단계를 거쳐 이루어집니다.이 과정은 사용자가 kubectl 명령어를 실행하는 순간부터 시작하여, 실제로 컨테이너가 실행될 때까지의 일련의 작업을 포함합니다.아래는 그 순서를 설명한 내용입니다.1. 사용자가 명령어를 실행사용자가 kubectl 명령어를 사용하여 포드를 생성하거나, 배포(Deployment)를 생성합니다.kubectl apply -f deployment.yaml2. API 서버로 요청 전송kubectl 명령어는 Kubernetes API 서버(kube-apiserver)로 요청을 보냅니다. API 서버는 클러스터의 중앙 제어 포인트로, 모든 작업을 조정합니다.3. API 서버에서 요청 처리API 서버는 요청..
[ 쿠버네티스 / Kurbernetes ] 아키텍쳐 보기 쿠버네티스의 아키텍처는 컨테이너화된 애플리케이션을 배포, 관리, 확장하기 위해 설계된 모듈식 구조를 가지고 있습니다.주요 구성 요소는 마스터 노드와 워커 노드로 나누어집니다. 아래에 쿠버네티스 아키텍처의 그림과 함께 각 구성 요소를 설명하겠습니다.1. 마스터 노드 (Control Plane)마스터 노드는 클러스터를 관리하고 제어하는 역할을 합니다. 주요 구성 요소는 다음과 같습니다:a. API 서버 (kube-apiserver)역할: 모든 API 요청을 처리하며, 클러스터의 중앙 제어 포인트입니다.기능: 클라이언트 요청을 인증하고, 유효성을 검사하며, etcd와 상호작용합니다.b. 컨트롤러 매니저 (kube-controller-manager)역할: 클러스터 상태를 모니터링하고, 원하는 상태로 유지합니다...
[ 쿠버네티스 / Kurbernetes ] 쿠버네티스 사용해서 다음 문제를 해결하자. 쿠버네티스를 사용하면 다음과 같은 다양한 문제를 효과적으로 해결할 수 있습니다:1. 애플리케이션 배포와 관리 자동화자동화된 배포: 쿠버네티스는 컨테이너화된 애플리케이션의 배포를 자동화하여, 수동 배포에 따르는 오류와 복잡성을 줄여줍니다.자동 복구: 애플리케이션이나 노드에 문제가 발생하면 자동으로 복구하여 가용성을 높입니다.롤링 업데이트와 롤백: 애플리케이션을 다운타임 없이 업데이트하고, 문제가 발생하면 손쉽게 이전 버전으로 롤백할 수 있습니다.2. 확장성자동 확장: 애플리케이션 부하에 따라 자동으로 포드(Pod)를 확장하거나 축소할 수 있습니다. 이를 통해 리소스를 효율적으로 사용하고, 필요할 때 적절한 규모로 확장할 수 있습니다.클러스터 확장: 여러 노드를 추가하여 클러스터의 리소스를 쉽게 확장할 수 ..

반응형