레플이케이션과 파드의 컨테이너 관리 요소 쿠버네티스를 사용하면 컨테이너의 실행을 보장 받는다. 풆어서 얘기하자면, 파드가 노드에 스케줄링이 되면 해당 노드의 Kubelet은 파드의 컨테이너를 실행하고 파드가 존재하는 한 컨테이너가 계속 실행되도록 한다. 어플리케이션이 죽는다면 다시 리소스에 의해 재실행 예외 상황 만약 자바 어플리케이션이 실행 중 OOM이 발생해 죽는다면? 어플리케이션이 무한 루프 또는 교착상태에 빠질 경우 => 이런경우 어플리케이션이 다시 시작되도록 하기 위해선 앱 내부의 기능에 의존하지 말고 외부에서 어플리케이션의 상태를 체크 해야 함 라이브니스 프로브 쿠버네티스는 라이브니스 프로브를 통해 컨테이너가 살아 있는지 확인할 수 있다. 라이브니스 프로브는 파드의 spec에 정의되어 있다. ..
레이블을 이용한 파드 관리 레이블이란 파드를 정리하기 위한 메커니즘 중 하나이다. 실제 마이크로 서비스 아키텍처에서 배포된 마이크로서비스는 버전별 릴리즈별로 동시에 실행 될 수 있기때문에 배포된 파드의 수는 셀수 없이 많을 수 있다. 따라서 어떤 파드가 어떤 버전이고 릴리즈인지 쉽게 알수 있는 방법이 핋요하고 그룹화 할 수 있어야한다. 레이블 레이블은 쿠버네티스 기능으로서 키-값 쌍으로, 리소스를 선택할 때 활용된다. 레이블이 포함된 YAML 파일 작성법 apiVersion: v1 kind: Pod metadata: name: kubia-manual-v2 labels: creation_method: manual env: prod spec: containers: - image: luksa/kubia nam..
파드 파드는 컨테이너 그룹이며 쿠버네티스의 기본 빌딩 블록이다. 컨테이너를 개별적으로 배포하기보다는 컨테이너를 가진 파드를 배포하고 운영한다. 일반적으로 파드는 하나의 컨테이너만 포함한다. 또 모든 컨테이너는 항상 하나의 워커 노드에서 실행되며 여러 워커노드에 걸쳐 실행되지 않는다. 파드가 필요한 이유 여러 프로세스를 다중 컨테이너로 실행해야 하는 이유 컨테이너는 단일 프로세스를 실행하는 것을 목적으로 설계했다.(프로세스가 자기 자신의 자식 프로세스를 생성하는 것을 제외) 모든 프로세스는 동일한 표준 출력으로 로그를 기록해야 함 -> 어떤 프로세스가 남긴 로그인지 파악하는 것이 중요 각 프로세스를 자체의 개별 컨테이너로 실행해야함 위와 같은 이유로 모든 프로세스는 개별 컨테이너에서 실행하는 것이 더 좋다..
쿠버네티스 클러스터 설치 컨테이너 이미지에 어플리케이션을 패키징하는 법을 배웠다. 이제 도커에서 직접 실행하는 대신 쿠버네티스 클러스터에 배포하는 법을 알아보려고 한다. 쿠버네티스 클러스터 환경을 구성하는 방법은 다양하다. Azure, AWS EC2, Google compute engine 과 같은 클라우드 공급자들이 제공하는 가상머신 또는 GKE(구글쿠버네티스엔진)과 같은 관리형 쿠버네티스 클러스터를 사용할 수 있다.◊ 본문서에서는 로컬머신에서 단일 노드 쿠버네티스 클러스터 환경을 구성하는 방법과 구글 클라우드를 이용하여 클러스터 환경을 구성하는 방법을 알아본다. Minikube를 이용한 환경 구성 가장 빨리 간단하게 구성할 수 있는 방법은 Minikube를 사용하는 것 이다. Minikube는 로컬 ..
시작하며 최근 몇년 동안 애플리케이션의 개발과 배포 방식이 거대한 모놀리스 애플리케이션에서 작은 마이크로서비스로 세분화함과 동시에 해당 애플리케이션을 실행하는 인프라의 변경으로 인해 쿠버네티스의 필요성이 한층 더 강조되고 있다. 쿠버네티스를 시작하며 알아야할 내용을 본문서에서 정리하고자 한다. 쿠버네티스 근본이 되는 컨테이너 기술 쿠버네티스는 분산 어플리케이션 기능을 제공하기 위해 리눅스 컨테이너 기술을 사용하고 있다. 따라서 컨테이너에 대해서 알아야 할 필요가 있다. 컨테이너 컨테이너란 동일한 호스트 시스템에서 여러개의 서비스를 실행 할수 있으며 서로 다른 환경을 만들어주는 기술이라고 설명 할 수 있다. 기존의 가상머신과 다른점은 서로 공통적으로 각 환경이 독립적이지만 컨테이너는 오버헤드가 훨씬 적다는..
도커를 이용한 컨테이너 이미지 생성,실행,공유하기 도커 설치 docker download 사용하는 운영체제에 맞게 설치. 간단한 Node 어플리케이션 작성 작업할 폴더를 하다 생성하여 app.js안에 아래의 코드를 작성. { const http = require('http'); const os = require('os'); console.log("Kubia server starting..."); var handler = function(request, response){ console.log("Received request from " + request.connection.remoteAddress); response.writeHead(200); response.end("You've hit " + os.h..