[Kubernetes] Storage Classes (스토리지 클래스)
DevOps/Kubernetes2022. 5. 29. 21:02[Kubernetes] Storage Classes (스토리지 클래스)

✔️ Storage Classes (스토리지 클래스) 스토리지 클래스 | Kubernetes PVC를 정의하면, PVC의 내용에 따라서 쿠버네티스 클러스터가 물리 Disk를 생성하고, 이에 연결된 PV를 생성한다. 실제 환경에서는 성능에 따라 다양한 디스크(nVME, SSD, HDD, NFS 등)를 사용할 수 있다. 디스크를 생성할때 필요한 디스크의 타입을 정의할 수 있는데 동적 프로비저닝 방식을 이용하는 것을 storageClass라고 하고, PVC에서 스토리지 클래스를 지정하면 이에 맞는 디스크를 생성하도록 한다. 개발자는 PVC를 이용해 볼륨을 손쉽게 요청할 수 있지만 운영자는 PV로 사용할 볼륨을 수동으로 프로비저닝 해야 한다. 이러한 불편함을 해결하기 위해 자동으로 볼륨을 생성, 할당하는 Sto..

DevOps/Kubernetes2022. 5. 29. 20:58[Kubernetes] 정적 프로비저닝 (Static Provisioning) ( + NFS 정적 프로비저닝)

✔️ 정적 프로비저닝 (Static Provisioning) PV 및 PVC 리소스를 직접 생성하고 사용하는 방식이다. ✔️ NFS를 사용한 정적 프로비저닝 (Static Provision) node1을 임시 NFS 서버로 만들고 데이터를 RWX 형태로 공유해보는 실습을 진행한다. sudo apt install nfs-kernel-server -y nfs-kernel-server 패키지를 설치한다. sudo mkdir /nfsvolume echo " Hello NFS Volume " | sudo tee /nfsvolume/index.html 디렉토리를 만들고 /nfsvolume/index.html 파일을 만든다. sudo vi /etc/exports /nfsvolume 192.168.100.0/24(rw..

[Kubernetes] PV(PersistentVolume), PVC(PersistentVolumeClaim)
DevOps/Kubernetes2022. 5. 29. 20:56[Kubernetes] PV(PersistentVolume), PVC(PersistentVolumeClaim)

✔️ PV, PVC PersistentVolume : 스토리지 볼륨 정의 PersistentVolumeClaim : PV를 요청 vagrant@k8s-node1  ~/volume/hostpath  kubectl api-resources | grep pv persistentvolumeclaims pvc v1 true PersistentVolumeClaim persistentvolumes pv v1 false PersistentVolum pv, pvc 모두 core 그룹의 v1이며 pv는 네임스페이스를 사용하지 않아 Global하고 pvc는 네임스페이스를 사용한다. ✔️ PV, PVC의 철학 쿠버네티스를 설계하고 pv, pvc라는 개념을 만든 사람은 파드나 파드보다 상위 레벨의 컨트롤러는 개발자들도 잘 ..

[Kubernetes] Volume (emptyDir, gitRepo, initContainer, hostPath)
DevOps/Kubernetes2022. 5. 29. 20:54[Kubernetes] Volume (emptyDir, gitRepo, initContainer, hostPath)

✔️ Volume (볼륨) 볼륨 | Kubernetes 파드는 기본적으로 데이터를 영구히 저장할 수 없다. 데이터를 저장할 수는 있지만 컨테이너 즉, 파드를 삭제하면 해당 데이터는 다 사라지게 된다. 따라서 별도의 라이프 사이클을 가지는 별도의 오브젝트 리소스가 필요하다. 쿠버네티스에서는 이것을 Volume이라고 한다. vagrant@k8s-node1  ~  kubectl explain pod.spec volumes List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes 컨테이너에게 제공할 볼륨을 구성할 수 있다. v..

[Kubernetes] Readiness Probe (준비성 프로브)
DevOps/Kubernetes2022. 5. 29. 20:52[Kubernetes] Readiness Probe (준비성 프로브)

✔️ Readiness Probe (준비성 프로브) 컨테이너가 요청을 처리할 준비가 되었는지 여부를 나타낸다. 만약 준비성 프로브(readiness probe)가 실패한다면, 엔드포인트 컨트롤러는 파드에 연관된 모든 서비스들의 엔드포인트에서 파드의 IP주소를 제거한다. 준비성 프로브의 초기 지연 이전의 기본 상태는 Failure 이다. 만약 컨테이너가 준비성 프로브를 지원하지 않는다면, 기본 상태는 Success 이다. vagrant@node1  ~/svc/readiness  kubectl explain rs.spec.template.spec.containers readinessProbe Periodic probe of container service readiness. Container will b..

[Kubernetes] Ingress Challenge
DevOps/Kubernetes2022. 5. 29. 20:49[Kubernetes] Ingress Challenge

✔️ Challenge ㅇ다음과 같은 구조로 동작하도록 리소스를 생성해보자 ! Ingress Controller가 있고 SVC가 2개 있고 RS로 파드를 2개 생성한 구조이다. 똑같은 이름의 경로를 다르게 한다던지 host를 다르게 해주어 부하분산을 할 수 있다. 2개의 서비스를 만든다. 이미지 생성 Apache Image 1 Index.html (Hello One 출력) Apache Image 2 Index.html (Hello Two 출력) 각 이미지로 2개의 파드를 생성하는 ReplicaSet 만들기 NodePort 서비스 만들기 서비스에 Ingress 만들기 호스트는 동일 (*.nip.io/one, *.nip.io/two) → 총 5개의 .yaml 파일이 생성되어야 한다. ✔️ Solution D..

image