전체 글

전체 글

    Kubernetes Deployment (쿠버네티스 디플로이먼트)

    Kubernetes Deployment (쿠버네티스 디플로이먼트)

    Deployment : 레플리카셋 및 포드의 배포 관리 레플리카셋과 포드를 정의하는 오브젝트 레플리카셋만 사용해도 충분히 MSA 구조의 컨테이너를 구성할 수 있을 것 같지만, 실제 운영 환경에서 레플리카셋만으로 하는 경우는 거의 없음 대부분 디플로이먼트를 활용 nginx 예제 # deployment-nginx.yaml apiVersion: apps/v1 kind: Deployment metadata: name: mg-nginx-deployment spec: replicas: 3 selector: matchLabels: app: my-nginx template: metadata: name: my-nginx-pod labels: app: my-nginx spec: containers: - name: ngin..

    Kubernetes Pod (쿠버네티스 팟)

    Kubernetes Pod (쿠버네티스 팟)

    Pod (팟) Pod은 도커에서의 컨테이너, 도커 스웜에서의 서비스와 같이 쿠버네티스에서 배포가능한 가장 작은 단위이다. 가장 기초적이고 중요한 개념이기 때문에 반드시 이해해야한다. 하나의 Pod에는 1개 이상의 컨테이너가 존재하며 하나의 스토리지, 하나의 네트워크속성이 존재한다. 가장 기본적인 단위이기 때문에 컨테이너가 한개여도 Pod으로 관리한다. 같은 네트워크를 사용하기 때문에 localhost로 서로 다른 컨테이너에 접근이 가능하다. 쿠버네티스에서는 CLI 명령어보다 YAML 파일을 이용해 다루는 법을 익히는 것이 중요하기때문에 YAML을 이용한 Pod 생성을 해보자. 참고로 YAML 파일을 작성할 때 tab으로 띄우게 된다면 도커에서와 마찬가지로 인식을 하지 못하기 때문에 에러가난다. VSCod..

    Docker Swarm (도커 스웜 모드)

    Docker 스웜 도커의 스웜에는 2가지의 버전? 모드? 가 존재한다. 첫번째로는 도커 1.6버전부터 나왔으며 컨테이너로서의 스웜이다. 두번째는 도커 1.12 버전 부터 나온 도커 스웜 모드이다. 이하 컨테이너로서의 스웜은 간편하게 '스웜 클래식' 으로 바꿔서 작성하겠다. 차이점 두 버전의 가장 큰 차이점은 사용하는 목적이다. 스웜 클래식은 하나의 지점에서 컨테이너를 관리하는 측면이다. 그러므로 스웜 클래식은 docker run, docker ps 등 일반적인 도커 명령어와 도커 API로 클러스터의 서버를 제어하고 관리할 수 있는 기능을 제공한다. 이에 비해 도커 스웜 모드는 MSA 적인 측면에서 컨테이너를 다루기 위한 클러스터링 기능에 초점을 맞추고 있다. 기능으로는 같은 컨테이너를 동시에 여러 개 생..

    Docker Daemon (도커 데몬) - 1 [구조/-H/Remote Docker API]

    Docker Daemon (도커 데몬) - 1 [구조/-H/Remote Docker API]

    도커의 구조 도커의 위치는 /usr/bin/docker 에 위치한다. 컨테이너나 이미지를 다루는 명령어는 /usr/bin/docker에서 실행되지만, 도커 엔진의 프로세스는 /usr/bin/dockerd 파일로 실행되고 있다. 이는 docker 명령어가 실제 도커 엔진이 아닌 클라이언트로써으 도커이기 때문이다. 클라이언트 도커 (docker) - API를 사용할 수 있도록 CLI를 제공하는 것 - 사용자가 docker로 시작하는 명령어를 입력하면 도커 클라이언트에 전달 - 도커 클라이언트는 명령어를 로컬에 존제하는 도커 데몬에게 API로 전달 - 전달할 때, /var/run/docker.sock에 위치한 유닉스 소켓을 통해 도커 데몬의 API 호출 - tcp로 원격에 있는 도커 데몬을 제어하는 방법도 존..