[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] 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..

[Kubernetes] Service - ExternalName
DevOps/Kubernetes2022. 5. 23. 00:43[Kubernetes] Service - ExternalName

✔️ Service - ExternalName 클러스터 내부에서 클러스터 외부의 특정 서비스에 접속하기 위해 DNS CNAME을 설정한다. vagrant@k8s-node1  ~/svc/exname  kubectl explain svc.spec.type "ExternalName" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types vagrant@k8s-node1 ..

image