Pods는 아주 간단하고 기본적이다.
Pods는 하나 혹은 둘 이상의 컨테이너로 이루어진 그룹이다. 그리고 공유 저장 네트워크와 컨테이너 실행법에 대한 설명를 갖고 있다. Pod는 쿠버네티스에서 가장 기본으로 배포되는 유닛이다.
여러 개의 마이크로 서비스가 있으면 개발자들은 각 마이크로서비스들을 도커 이미지 안에 포장시킨다. 그러고 나면 스스로 배포를 전개할 수 있다. 클라우드 시스템 안에서 노드를 작동시켜 접속한 다음 도커 명령어를 입력해 실행하는 것을 예시로 들 수 있다. 이런 식으로 도커 컨테이너를 해당 이미지와 함께 실행할 수 있다.
이런 시스템을 조직하기 위한 쿠버네티스 활용법
우선, 쿠버네티스는 컨테이너들의 시작과 종료를 총제적으로 관리한다고 할 수 있다. 아키텍처의 조직을 위해 쿠버네티스는 replica set, service, stateful set 등을 갖고 있다. 이 중 가장 기본 개념은 Pods다.
모든 컨테이너들에게 각자 하나씩 Pod를 만들어 준다. 각 Pod들은 컨테이너를 위한 일종의 포장지이다. 거의 모든 경우에 컨테이너와 Pod는 일대일 관계를 가진다.
사실 하나의 Pod 안에 두개 이상의 컨테이너가 들어가는 경우는 마이크로 서비스가 두번째 컨테이너의 도움을 받아야 하는 경우이다. 하지만 아주 특별한 상황에서만 쓰게 될 기술이다.
apiVersion: v1
kind: Pod
metadata:
name: pod-example
spec:
containers:
- name: ubuntu
image: ubuntu:trusty
command: ["echo"]
args: ["Hello World"]
이렇게 맨 윗줄에는 apiVersion이 있어야 한다.
두번째 줄에는 정의하는 객체가 Pod라고 되어 있고,
metadata에서는 pod의 이름을 지정해준다. 포드에 이름이 없어서는 안된다.
spec에서는 포드 안에 넣고 싶은 컨테이너들을 기술한다. 각 컨테이너마다 이름을 지어줄 수 있고, 이 이름이 도커 내에서의 이름이 된다. 또, 어떤 이미지를 바탕으로 만들어질지 명시해줘야 한다. command와 args는 필수는 아니다.
만들어보기
이렇게 yaml 파일을 작성하고, 'kubectl apply -f first-pod.yaml'로 실행했다.
'클라우드' 카테고리의 다른 글
OpenStack 기초, VLAN과 VXLAN (0) | 2024.10.05 |
---|---|
Container 기초 개념, VM과 Container (1) | 2024.10.01 |
Jenkins로 커밋 후 자동 빌드 ~ yaml 수정 후 push까지 pipeline script (윈도우 환경) (0) | 2024.08.17 |
이미지로 만든 Spring 프로젝트 쿠버네티스에 배포하기 (우분투 환경) (0) | 2024.08.12 |
Spring 프로젝트 이미지로 만들고 docker hub에 업로드하기 (Ubuntu 환경) (1) | 2024.08.11 |