Add platform infrastructure configuration
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# AIStor 정적 Local PersistentVolume
|
||||
|
||||
상태(2026-07-23): 실제 클러스터 적용 및 바인딩 완료
|
||||
|
||||
이 기반 구성은 `/srv/k3s/aistor`에 마운트된 전용 XFS 파일시스템을 하나의 정적
|
||||
Local PV에 연결한다.
|
||||
|
||||
| 리소스 | 값 |
|
||||
| --- | --- |
|
||||
| PersistentVolume | `aistor-data-local-pv` |
|
||||
| StorageClass | `aistor-local-xfs-retain` |
|
||||
| Kubernetes에 표시되는 용량 | `900Gi` |
|
||||
| 접근 모드 | `ReadWriteOnce` |
|
||||
| Reclaim 정책 | `Retain` |
|
||||
| 바인딩 모드 | `WaitForFirstConsumer` |
|
||||
| 필수 노드 | `donghyeon-system-product-name` |
|
||||
|
||||
ObjectStore pool은 이 StorageClass에 정확히 하나의 `900Gi` Claim을 요청한다.
|
||||
`WaitForFirstConsumer`는 해당 Claim과 Local PV node affinity를 함께 반영한다.
|
||||
StorageClass와 PV 모두 `Retain`을 사용하므로 Claim을 삭제해도 XFS 데이터는
|
||||
지워지지 않지만, 복구와 재바인딩은 수동 작업이다.
|
||||
|
||||
적용하기 전에 호스트에서 다음 항목을 모두 확인한다.
|
||||
|
||||
```sh
|
||||
findmnt -no SOURCE,TARGET,FSTYPE,OPTIONS /srv/k3s/aistor
|
||||
df -hT /srv/k3s/aistor
|
||||
kubectl get node donghyeon-system-product-name
|
||||
```
|
||||
|
||||
첫 번째 명령은 전용 XFS 파티션이 정확한 경로에 마운트됐다고 출력해야 한다.
|
||||
PV의 `900Gi` 용량은 하드 파일시스템 quota가 아니라 Kubernetes 바인딩
|
||||
메타데이터다. 이 단일 노드 Local PV는 복제나 재해 복구를 제공하지 않는다.
|
||||
|
||||
현재 `data0-minio-aistor-pool-0-0` PVC가 `aistor-data-local-pv`에 Bound 상태이며
|
||||
ObjectStore health는 `green`이다. `/srv/k3s/aistor`의 기존 XFS 메타데이터 사용량은
|
||||
AIStor 객체 데이터와 별개일 수 있으므로 `du` 합계와 `df` 사용량을 동일시하지
|
||||
않는다.
|
||||
@@ -0,0 +1,27 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: aistor-data-local-pv
|
||||
labels:
|
||||
app.kubernetes.io/part-of: platform
|
||||
app.kubernetes.io/component: object-storage
|
||||
platform.hyeonworks.com/storage-tier: hdd
|
||||
platform.hyeonworks.com/filesystem: xfs
|
||||
spec:
|
||||
capacity:
|
||||
storage: 900Gi
|
||||
volumeMode: Filesystem
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
persistentVolumeReclaimPolicy: Retain
|
||||
storageClassName: aistor-local-xfs-retain
|
||||
local:
|
||||
path: /srv/k3s/aistor
|
||||
nodeAffinity:
|
||||
required:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/hostname
|
||||
operator: In
|
||||
values:
|
||||
- donghyeon-system-product-name
|
||||
@@ -0,0 +1,6 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- storage-class.yaml
|
||||
- aistor-data-pv.yaml
|
||||
@@ -0,0 +1,12 @@
|
||||
apiVersion: storage.k8s.io/v1
|
||||
kind: StorageClass
|
||||
metadata:
|
||||
name: aistor-local-xfs-retain
|
||||
labels:
|
||||
app.kubernetes.io/part-of: platform
|
||||
app.kubernetes.io/component: object-storage
|
||||
platform.hyeonworks.com/storage-tier: hdd
|
||||
provisioner: kubernetes.io/no-provisioner
|
||||
reclaimPolicy: Retain
|
||||
volumeBindingMode: WaitForFirstConsumer
|
||||
allowVolumeExpansion: false
|
||||
Reference in New Issue
Block a user