분류 전체보기(472)
-
kubernetes started(3) 레플리카 셋(Replica Set)
이전에 공부했던 포드는 여러 개의 컨테이너를 묶어서 추상화하여 완전한 애플리케이션을 실행하기로 만드는 것이었다. 우리는 외부 요청을 동일한 포드에 잘 분배하여 반환하게 실행하게 할 것입니다. 그럼 여기서 다수의 동일한 포드를 어떻게 만들면 좋을까요?? 단순하게 생각해보면 yaml 파일에 여러 개의 포드를 명시해주면 된다. 이는 불필요한 작업을 반복하는 안 좋은 방법이라고 생각한다. 그리고 또한 노드나 포드에 고장이나서 종료되게 되면 다시 접근하지 못하게 되어 복구되지 못합니다. 따라서 이러한 한계점을 해결하기위해 레플리카 셋을 같이 사용합니다. 레플리카 셋은 포드를 안정적으로 여러 개 실행할 수도 있고, 노드나 포드에 문제가 생기더라도 정해진 개수의 포드를 복구하여 사용할 수 있습니다. 1. 정해진 수의..
2020.02.15 -
kubernetes started(2) pod
Pod 쿠버네티스에서는 컨테이너 애플리케이션의 기본 단위를 포드라고 부릅니다. 쿠버네티스에서 배포할 수 있는 가장 작고 간단한 단위입니다. 포드는 1개 이상의 컨테이너로 구성되어 있습니다. 도커에서는 기본 단위가 컨테이너 였고 스웜 모드에서는 여러 개의 컨테이너로 구성된 서비스였습니다. 쿠버네티스에서는 컨테이너 애플리케이션을 배포하기 위한 기본 단위 포드라는 개념을 사용합니다. 그럼 연습삼아 nginx pod를 한번 만들어보겠습니다. apiVersion: v1 kind: Pod metadata: name: my-nginx-pod spec: containers: - name: my-nginx-container image: nginx:latest ports: - containerPort: 80 protoco..
2020.02.13 -
kubernetes started(1)
쿠버네티스를 시작하기 앞서 도커 스웜과 닮은 점도 있지만 다른 점도 있습니다. 이 포스트를 시작하기 앞서 도커 스웜과의 차이점을 설명하고 시작하겠습니다. 쿠버네티스는 모든 리소스를 '오브젝트'라고 불리는 형태로 사용합니다. 이전 도커 스웜에서는 서비스라는 것을 사용했습니다. 서비스도 일종의 컨테이너 리소스들의 집합체로 일종의 오브젝트라고 할 수 있습니다. 그러나 쿠버네티스는 컨테이너의 집합, 관리하는 컨트롤러, 사용자, 노드까지도 하나의 오브젝트로 사용할 수 있습니다. 오브젝트의 종류는 아래 명령어를 통해 확인할 수 있습니다. kubectl api-resources ~ kubectl api-resources ✔ 11553 18:08:04 NAME SHORTNAMES APIGROUP NAME..
2020.02.13 -
kubernetes 설치
쿠버네티스를 사용해보기 전에 설치해보겠습니다. 쿠버네티스는 도커와 다르게 사용환경에 따라서 다양합니다. 개인 개발 용도로는 별도의 어려움 없이 쉽게 설치할 수 있지만 실제 운영 단계에서는 AWS, GKE 등의 클라우드 환경에서 수십 개의 서버에 동시에 쿠버네티스를 설치해야할 수 있습니다. 개발 용도의 쿠버네티스 설치 Minikube Docker for mac/Windows에 내장된 쿠버네티스 서비스 테스트 또는 운영 용도의 큐버네티스 설치 kops kubespray kubeadm EKS(Amazon), GKE(Google) 등의 관리 서비스 필자는 Docker for mac을 설치했으므로 별다른 설치 없이 쿠버네티스를 사용할 수 있습니다. 또는 minikube를 통해 virtual box와 같은 가상화 ..
2020.02.13 -
docker compose yaml 파일 작성
docker compose yaml 파일 작성 (1) 버전 정의 YAML 파일 포맷에는 버전이 여러개 있는데 compose version 1.10 이상부터는 사용할 수 있는 yaml 버전을 3으로 설정합니다. 그리고 버전 3은 docker swarm모드랑 호환되기때문에 좋습니다. 버전은 일반적으로 YAML 파일의 맨 윗부분에 명시합니다. version: '3.0' (2) 서비스 정의 서비스는 도커 컴포즈로 생성할 컨테이너 옵션을 정의합니다. 이 항목에 쓰인 각 서비스는 컨테이너로 구현된다. 이 컨테이너들은 하나의 프로젝트로서 도커 컴포즈에 의해 관리됩니다. 서비스의 이름은 services의 하위 항목으로 정의하고 컨테이너의 옵션은 서비스 이름의 하위 항목에 정의합니다. services: 컨테이너1: im..
2020.02.08 -
Docker compose
Docker Compose 여러개의 컨테이너가 하나의 서비를 운영하기 위해서 여러번의 run 명령어를 사용해주어야합니다. 예를들어 node webServer를 사용하는데 DB까지 사용한다면 node서버를 run하고 DB 서버를 run해야합니다. 매번 이렇게 run하여 컨테이너를 만들기 귀찮습니다. 이런 문제를 해결하기 위해 Docker는 여러 개의 컨테이너를 하나의 서비스로 정의해 컨테이너 묶음으로 관리할 수 있도록하는 기능을 제공해줍니다. 이를 Docker Compose라고합니다. 개발과 CI를 할 수있게 여러개의 container를 하나의 묶음으로 다룰 수 있는 환경을 제공합니다. Docker Compose는 여러 개의 컨테이너의 옵션과 환경을 정의한 파일을 읽어 container를 순차적으로 실행합..
2020.02.08