본문 바로가기
Kubernetes

[미니프로젝트] Nginx 소스 Statefulset

by Nirah 2023. 1. 29.

쿠버네티스에선 파드가 수시로 올라가고 내려가며 할당되는 노드와 ip가 바뀌는 등 변동 가능성이 존재한다.

때문에 WEB의 config 설정내용이나 소스 자원들을 따로 고정적으로 유지시킬 필요가 있다.

이런 필요성을 컨셉으로 상정하여 설계한 다음 개인적인 미니프로젝트를 진행했다.

Nginx를 Statefulset으로 실행하고 Configmap을 사용하여 설정 내용을 유지시키면 원하는 기능을 할수 있을것 같다.

 

 

 

0. 개념 정리와 설계

1. PV 생성

2. PVC를 포함한 Nginx Statefulset yaml 작성

 

 

 

 

0. 개념 정리와 설계

 

공식문서에서 참조할 만한 내용을 찾아보았다.

PV 생성에 대한 내용은 이것을 참조하였고

https://kubernetes.io/ko/docs/tasks/configure-pod-container/configure-persistent-volume-storage/

 

스토리지로 퍼시스턴트볼륨(PersistentVolume)을 사용하도록 파드 설정하기

이 페이지는 스토리지에 대해 퍼시스턴트볼륨클레임(PersistentVolumeClaim)을 사용하도록 파드를 설정하는 방법을 보여준다. 과정의 요약은 다음과 같다. 클러스터 관리자로서, 물리적 스토리지와

kubernetes.io

 

Statefulset 에 대한 내용은 이것을 참조하였다.

https://kubernetes.io/ko/docs/tutorials/stateful-application/basic-stateful-set/

 

스테이트풀셋 기본

이 튜토리얼은 스테이트풀셋(StatefulSet)을 이용하여 애플리케이션을 관리하는 방법을 소개한다. 어떻게 스테이트풀셋의 파드를 생성하고, 삭제하며, 스케일링하고, 업데이트하는지 시연한다. 시

kubernetes.io

 

nginx의 설정을 configmap화 하여 volume파일로 저장하는 방식을 채택하겠다.

https://yeti.tistory.com/218

 

쿠버네티스(Kubernetes)에서 NGINX 설정 변경하기

안녕하세요. yeTi입니다. 오늘은 쿠버네티스로 관리하는 NGINX의 설정을 변경하는 방법을 공유하겠습니다. 기본적인 컨셉은 ConfigMap에 설정 정보를 등록하고 ConfigMap의 정보를 volume의 파일로 저장

yeti.tistory.com

 

 

 

 

1. PV 생성

 

작업할 디렉토리 생성

mkdir /nginx_st

 

PV용 마운트 디렉토리 생성

mkdir /data001/{pv0001,pv0002}

 

 

 

 

 

각 노드에 index파일을 넣어준다.

해당 노드에 할당된 파드는 pv설정을 통해 노드의 파일시스템에 있는 index파일을 본인의 컨테이너 안에 업데이트한다.

scp /data001/pv0001/index.html node2:/data001/pv0002/index.html

scp /data001/pv0001/index.html node3:/data001/pv0002/index.html

 

 

 

성공