✔️ Nginx HTTPs 서버 구성 nginx 관련 파일은 다음과 같다. vagrant@k8s-node1 ~/configure/nginx-https kubectl run nginx --image nginx pod/nginx created vagrant@k8s-node1 ~/configure/nginx-https kubectl exec -it nginx -- bash root@nginx:/# cd /usr/share/nginx/html/ root@nginx:/usr/share/nginx/html# ls 50x.html index.html root@nginx:/usr/share/nginx/html# cd /etc/nginx root@nginx:/etc/nginx# ls conf.d fastc..
✔️ Deployment 디플로이먼트 | Kubernetes Deployment는 ReplicaSet의 상위 오브젝트로 Deployment를 생성하면 해당 Deployment에 대응하는 ReplicaSet도 함께 생성된다. 따라서 Deployment를 사용하면 Pod, ReplicaSet을 직접 생성할 필요가 없다. ✔️ Deployment 사용 이유 ? 그렇다면 쿠버네티스는 ReplicaSet이 아닌 상위 개념인 Deployment를 사용해 간접적으로 ReplicaSet을 생성하는 것일까 ? Deployment를 사용하는 핵심 이유는 어플리케이션의 업데이트와 배포를 더욱 편하게 만들기 위해서이다. Deployment는 이름처럼 컨테이너 어플리케이션을 배포하고 관리하는 역할을 담당한다. 예를 들어 어플리..
✔️ Six Strategies for Application Deployment Six Strategies for Application Deployment – The New Stack 쿠버네티스에서만 쓰는 전략이 아니며 모든 어플리케이션을 배포할 때 사용한다. 쿠버네티스의 Deployment는 다음 2가지 방식을 지원한다. Recreate : Version A is terminated then version B is rolled out. Ramped (also known as rolling-update or incremental): Version B is slowly rolled out and replacing version A. vagrant@k8s-node1 ~/deploy kubectl ex..
✔️ 환경변수 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..
✔️ Dynamic Provisioning (동적 프로비저닝) 지금까지 PV를 사용하려면 미리 외부 스토리지를 준비해야만 했다. 예를 들어 AWS EBS를 PV로 사용하려면 EBS를 미리 생성한 뒤, 볼륨 ID를 YAML 파일에 직접 입력하는 방식으로 사용했다. 하지만 매번 이렇게 볼륨 스토리지를 직접 수동으로 생성하고 스토리지에 대한 접근 정보를 YAML 파일에 적는 것은 귀찮은 일이다. 이를 위해 쿠버네티스는 Dynamic Provisioning 기능을 제공한다. 다이나믹 프로비저닝은 PVC이 요구하는 조건과 일치하는 PV이 존재하지 않는다면 자동으로 PV와 외부 스토리지를 함께 프로비저닝하는 기능이다. 따라서 Dynamic Provisioning을 사용하면 EBS와 같은 외부 스토리지를 직접 미리 ..
✔️ Storage Classes (스토리지 클래스) 스토리지 클래스 | Kubernetes PVC를 정의하면, PVC의 내용에 따라서 쿠버네티스 클러스터가 물리 Disk를 생성하고, 이에 연결된 PV를 생성한다. 실제 환경에서는 성능에 따라 다양한 디스크(nVME, SSD, HDD, NFS 등)를 사용할 수 있다. 디스크를 생성할때 필요한 디스크의 타입을 정의할 수 있는데 동적 프로비저닝 방식을 이용하는 것을 storageClass라고 하고, PVC에서 스토리지 클래스를 지정하면 이에 맞는 디스크를 생성하도록 한다. 개발자는 PVC를 이용해 볼륨을 손쉽게 요청할 수 있지만 운영자는 PV로 사용할 볼륨을 수동으로 프로비저닝 해야 한다. 이러한 불편함을 해결하기 위해 자동으로 볼륨을 생성, 할당하는 Sto..