✔️ 정적 프로비저닝 (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..
✔️ 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라는 개념을 만든 사람은 파드나 파드보다 상위 레벨의 컨트롤러는 개발자들도 잘 ..
✔️ 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..
✔️ 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..
✔️ 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..
✔️ Ingress 인그레스 컨트롤러 | Kubernetes Ingress 라는 오브젝트 리소스를 구현해주는 것이 Ingress Controller이다. 쿠버네티스의 핵심은 Controller Manager이다. METALLB에서도 controller가 실질적인 로드밸런서 기능을 한다. 컨트롤러라는 이름이 붙은 것들은 대부분 구현하고 제어하는 역할을 한다. 따라서 Ingress 리소스가 작동하려면, Ingress Controller가 반드시 필요하다. 프로젝트로서 쿠버네티스는 AWS, GCE와 nginx 인그레스 컨트롤러를 지원하고 유지한다. vagrant@node1 ~ kubectl api-resources | grep ingress ingressclasses networking.k8s.io/v..