본문 바로가기
  • 지요미의 IT성장일기
Kubernetes

쿠버네티스 - GCP에서 이미지를 띄워서 쿠버네티스 해보기 (pv정적프로비저닝)

by 지요미=P 2024. 2. 19.
728x90

 

 

마스터 노드에서 확인하기

cat /etc/docker/daemon.json

["insecure-registries":["34.22.96.240:5000"]

 

 

 

GCP/Docker 인스턴스에서 도커 이미지를 도커 레지스트리에 업로드하기

sudo vi /etc/docker/daemon.json
sudo systemctl restart docker
 {["insecure-registries":["34.22.96.240:5000"]}
docker push 34.22.96.240:5000/nginx:latest

 

전체 노드에다가도 레지스트리 정보 넣어주기!!

# vi /etc/docker/daemon.json
  "insecure-registries":["34.22.96.240:5000"]
# systemctl restart docker

 

 

 

전체에 넣어주기!!

docker pull 34.22.96.240:5000/nginx:latest

 

 

 

 

 


 

 

maste를 nfs라고 가정하고 master에다가 nfs 기능을 탑재해보자.

잠시 master를 nfs서버인 것으로 가정하고 실습하자!

 

- nfs

master1에다가!

# yum install -y nfs-utils.x86_64
# mkdir /nfs_shared
# chmod 777 /nfs_shared/
# echo '/nfs_shared 172.25.0.0/24(rw,sync,no_root_squash)' >> /etc/exports
# systemctl enable --now nfs

 

# vi nfs-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  capacity:
    storage: 100Mi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  nfs:
    server: 172.25.0.156 #master1의 ip
    path: /nfs_shared

# kubectl apply -f nfs-pv.yaml

 

아직 pvc를 연결하지 않아서 bind가 아니라 Available로 나온다.

 

# vi nfs-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Mi

# kubectl apply -f nfs-pvc.yaml

앞서 만들었던 pv의 accessmode부분과 pvc의 accessmode부분을 맞춰주면 둘이 연결이 된다.

이것도 pv와 pvc를 연결하는 방법 중 하나이당!!

pvc를 연결해주었더니 Available -> Bound로 변경되었음!

 

 

이제 활용을 해보자!

# vi nfs-pvc-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nfs-pvc-deploy
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nfs-pvc-deploy

  template:
    metadata:
      labels:
        app: nfs-pvc-deploy
    spec:
      containers:
      - name: nginx
        image: 34.64.199.110:5000/nginx:latest
        volumeMounts:
        - name: nfs-vol
          mountPath: /usr/share/nginx/html
      volumes:
      - name: nfs-vol
        persistentVolumeClaim:
          claimName: nfs-pvc

# kubectl apply -f nfs-pvc-deploy.yaml

 

현재 pod가 없기 때문에 골고루 생길 것이다!

잉?ContainerCreating!

pod가 생성이 되지 않는다?!

 

 

그렇다면 describe로 내용을 확인해보장! 

kubectl describe pod [파드이름]

확인해보면..

내용은 마운트가 되지 않았다. ㅜㅜ

 

yum install -y nfs-utils

 

마스터노드에는 설치가 되어 있기 때문에 worker들만 설치해줌

 

k get po -o wide

바로 띄워짐!!

 

 

k expose deployment nfs-pvc-deploy --type=LoadBalancer --name=nfs-pvc-deploy-svc1 --port=80
k get all

 

잉? 

하지만 정상임!

왜?

이 폴더 안에 지금 들어간게 아무것도 없기 때문이다.

 

tar -xvf aws.tar  -C /nfs_shared/

aws.tar파일을 nfs_shared 폴더에 풀어넣기!

pv를 nfs로 쓰면 여러가지 장점이 있당

 

바로 보여짐!!!!

 

 

여하튼.

지금가지 한 수업은

worker node의 호스트내에 저장소를 두는 것!!

그렇다면 worker node에 꼭 utils를 설치해야함을 잊지말자.

728x90

'Kubernetes' 카테고리의 다른 글

쿠버네티스-namespace  (0) 2024.02.19
쿠버네티스-ConfigMap  (0) 2024.02.19
Kubernetes-volume  (1) 2024.02.19
쿠버네티스- MetalLB  (0) 2024.02.19
쿠버네티스 3  (0) 2024.02.05