시험에 나오는 내용은 아니라고 하나, 그래도 기본적으로 알아야될 내용으로 보여서 정리해보도록 한다.
Storage Classes
- PV 를 사용하기 위해선 당연하게도 저장 공간이 필요하다.
- PV 에서 사용하는 저장 공간이 있어야하고, gcloud 나 aws 같은 서비스를 통해 disk 를 생성 (Provisioning) 해주어야 한다.
- 그래서 아래와 같은 방법으로 생성하는 걸 Static Provisioning 이라고 한다.
- 수동으로 일일이 만들어주게되면 당연히 귀찮으므로, 이걸 대체하는 것이 Storage Classes 이다.
- SC 를 사용하게 되면 PVC 가 SC 를 호출할 때 사용할 수 있게 자동으로 프로비져닝이 된다.
- 위 그림을 설명하자면, pvc-definition.yaml 에서 sc-definition.yaml 에 선언된 이름인 google-storage 를 호출하는 것을 볼 수 있다.
- 여전히 PV 가 필요하지만, SC 에 의해 자동으로 생성되므로 직접 선언해줄 필요는 없다.
- PV 는 PVC 에서 사용하는 resource 같은 느낌?
- 로컬 스토리지 클래스가 있는데, 파드 스케줄링까지 볼륨 바인딩을 지연시키기 위해서는 스토리지클래스가 여전히 생성되어야 한다 라고 하는데 이게 무슨 말인지 잘 모르겠다.
그리고 StatefulSet 이 있다.
StatefulSet
- Deployment 의 템플릿 (매니페스트 형식) 과 동일하다.
- 다른 점은, 파드의 순서 보장이 된다.
- 예를 들면 DB의 Master-Slave 구조를 보장하기 위해서는 Master 가 항상 먼저 떠 있어야하는데, Deployment 의 경우 Replica 갯수가 늘어나거나 줄어들때, 순서 보장이 안되기 때문이다.
- headless 서비스를 만들 때 사용한다.
- headless 서비스란, 간단하게 말해서 앞 단 서비스 (LoadBalancer 같은) 없이, 직접 호출 가능한 파드를 말한다.
- spec.serviceName 속성에 Service 를 할당해서 사용한다.
- StatefulSet 을 사용하면 파드 별로 고유한 DNS 가 생성된다.
- 생성이나 삭제 시, 기존 파드들은 둔체, 스택 방식으로 변경이 된다.
- 파드에 지정된 스토리지는 storage class 를 사용해 프로비전해서 사용한다. #
- podManagementPolicy 정책을 통해 병렬 배포하게 설정할 수도 있다.
따로 매니패스트 파일을 정리하진 않았다.
SC 의 경우, create 로 생성할 수 없어 매뉴얼 페이지를 참고해서 생성하면 되고,
STS(StatefulSet) 의 경우 Deployments 와 동일한데 몇가지의 속성 (ServiceName, podManagementPolicy 같은) 만 다르다는 것을 참고하면 되겠다.
아무튼 오늘을 기점으로, 쿠버네티스에 대한 기본적인 내용이 모두 완료가 되었다.
하지만 section 9 에서 작년 9월에 부터 추가된 내용에 대해 공부해야되기 때문에 30% 가량은 남은 것 같다.
이건 굳이 일일이 다 정리하지는 않으려고 한다.
그럼 다음 시간까지 안녕 🙋♂️
'Dev > Kubernetes' 카테고리의 다른 글
[Docker] 도커에서 윈도우 경로를 사용한 컨테이너를 띄울 때 (0) | 2022.06.27 |
---|---|
[CKAD] section 8. Volume & Persistent Volume & Persistent Volume Claim (0) | 2022.05.03 |
[CKAD] section 7. Network Policy (3) (0) | 2022.05.02 |
[CKAD] section 7. Ingress (2) (0) | 2022.05.01 |
[CKAD] section 7. Services (1) (0) | 2022.04.28 |