[k8s] volume sidecar

이정훈·2023년 4월 21일
0

k8s

목록 보기
6/17
post-thumbnail

  • 실시간으로 정보를 받을 수 있도록 pod안에 volum을 마운트해줘서 하나는 개발자의 변경되는 사항을 저장하고 웹서버는 그것을 읽어서 배포해주는 근데 이때 볼륨을 사용하는 이것이 사이드카라고 생각하자

  • git에 올릴 index.html 은 간단하게
    version1.0 이라고 작성했다.

  • Dockerfile을 만들 때 방화벽을 켜줘야 한다!
  • Dockerfile
FROM ubuntu:latest
RUN apt update && apt install -y git
ADD ./contents-pull.sh /contents-pull.sh
RUN chmod 755 /contents-pull.sh
WORKDIR /
CMD /contents-pull.sh
  • contents-pull.sh
#!/bin/bash

if [ -z $CONTENTS_SOURCE_URL ]; then
  exit 1
fi # 변수값이 없으면 종료

git clone $CONTENTS_SOURCE_URL /data
# 여기다가 저장하도록 만들어 놓고 받도록

cd /data
while true
do
  date
  sleep 60
  git pull
done
# 업데이트 된 내용으로 정보를 받아오는 것 

docker build --tag gugucone/pull:1.0 . 이미지 빌드하고
docker push gugucone/pull:1.0 허브에 올려주고

  • 도커퍼브에서 이미지 파일을 가져오고 깃 허브에서 올린 index.html 파일을 가져오도록! 근데 그걸 60초 마다 계속 받아오도록 해준다라고 생각하자 근데 이걸 emptydir로 마운트해서 사용하는 것이다.

  • k8s pod는 아래와 같이 만들어줬다.

apiVersion: v1
kind: Pod
metadata:
  name: sidecar
  labels:
    app: sidecar
spec:
  containers:
  - name: nginx
    image: nginx:latest
    volumeMounts:
    - name: empty-dir
      mountPath: /usr/share/nginx/html

  - name: git
    image: gugucone/pull:1.0
    env:
    - name: CONTENTS_SOURCE_URL
      value: https://github.com/gugucone999/k8s.git
    volumeMounts:
    - name: empty-dir
      mountPath: /data
  volumes:
  - name: empty-dir
    emptyDir: {}


  • 변경된 것을 확인 할 수 있다!
profile
싱숭생숭늉

0개의 댓글