[Kubernetes] ConfigMap & Secret ( + 환경변수)
DevOps/Kubernetes2022. 5. 29. 21:56[Kubernetes] ConfigMap & Secret ( + 환경변수)

✔️ 환경변수 vagrant@k8s-node1  ~  kubectl explain pods.spec.containers.env name : 환경변수의 이름 value : 환경변수의 값 myweb.yaml apiVersion: v1 kind: Pod metadata: name: myweb-env spec: containers: - name: myweb image: ghcr.io/c1t1d0s7/go-myweb:alpine env: - name: MESSAGE # 환경변수명 value: "Customized Hello World" vagrant@k8s-node1  ~/configure/env  kubectl create -f myweb.yaml pod/myweb-env created vagrant@k..

[Kubernetes] 동적 프로비저닝 (Dynamic Provisioning) ( + NFS 동적 프로비저닝)
DevOps/Kubernetes2022. 5. 29. 21:04[Kubernetes] 동적 프로비저닝 (Dynamic Provisioning) ( + NFS 동적 프로비저닝)

✔️ Dynamic Provisioning (동적 프로비저닝) 지금까지 PV를 사용하려면 미리 외부 스토리지를 준비해야만 했다. 예를 들어 AWS EBS를 PV로 사용하려면 EBS를 미리 생성한 뒤, 볼륨 ID를 YAML 파일에 직접 입력하는 방식으로 사용했다. 하지만 매번 이렇게 볼륨 스토리지를 직접 수동으로 생성하고 스토리지에 대한 접근 정보를 YAML 파일에 적는 것은 귀찮은 일이다. 이를 위해 쿠버네티스는 Dynamic Provisioning 기능을 제공한다. 다이나믹 프로비저닝은 PVC이 요구하는 조건과 일치하는 PV이 존재하지 않는다면 자동으로 PV와 외부 스토리지를 함께 프로비저닝하는 기능이다. 따라서 Dynamic Provisioning을 사용하면 EBS와 같은 외부 스토리지를 직접 미리 ..

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

image