Infra
Kubernetes Service (쿠버네티스 서비스)
서비스(Service) : 포드를 연결하고 외부에 노출 사용자들이 포드들의 내부에 접근하기 위해 생성하는 오브젝트 쿠버네티스 리소스를 생성하는 yaml 파일에 containerPort 항목에 개방할 포트를 정하지만 바로 외부로 노출되는 것은 아님. 외부로 노출시키기 위해서는 서비스를 꼭 생성해야함 핵심 기능 여러 개의 포드에 쉽게 접근할 수 있도록 고유한 도메인 이름을 부여 여러 개의 포드에 접근할 때, 요청을 분산하는 로드 밸런서 기능을 수행 클라우드 플랫폼의 로드 밸런서, 클러스터 노드의 포트 등을 통해 포드를 외부로 노출 서비스의 타입 ClusterIP 쿠버네티스 네부에서만 포드들에 접근할 때 사용 외부로 노출시키지 않기 때문에 내부에서만 작동되는 포드들에 적용 NodePort 포드에 접근할 수 있..
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 (쿠버네티스 팟)
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 적인 측면에서 컨테이너를 다루기 위한 클러스터링 기능에 초점을 맞추고 있다. 기능으로는 같은 컨테이너를 동시에 여러 개 생..