실행
태스크 #12935
kasten 설치 테스트
발견 버전:
반영 버전:
난이도:
쉬움
중요도:
중
조력자:
회사:
연락처:
점수:
5.00
설명
개요¶
- kasten 을 helm 으로 설치 시 여러 pv 를 동시 생성한다.
- 그 여파로 csi-dirver-lvm 를 통한 pv 설치가 정상적으로 진행되지 않았다.
- kasten 설치 파일는 kasten 에서 제공해서 이를 활용하여 설치 테스트를 진행한다.
목표¶
- PV 가 정상적으로 생성되고, kasten 의 pod 가 올바르게 올라와야 한다.
csi-driver-lvm 개선¶
- maintenance mode 가 엉키는 부분이 많아, maintenance 를 모든 볼륨을 확인하여 진행하도록 변경한다.
- 이를 위해서 일괄적으로 처리하기 위해 crd 를 구축하여 데이터베이스를 활용한다.
난이도 및 추정시간¶
- reconcile 작업이 아직 남아있는데, reconcile 진행 이후 개선점만 진행하면 될 것으로 보인다.
- 그러므로 난이도 쉬움, 추정시간 20시간
파일
연결된 일감
이 헌제님이 13일 전에 변경
- 파일 항목에 clipboard-202602011454-j5owl.png clipboard-202602011454-j5owl.png 값이 추가되었습니다.
- 파일 항목에 clipboard-202602011456-kdzwj.png clipboard-202602011456-kdzwj.png 값이 추가되었습니다.
- 파일 항목에 clipboard-202602011457-6scji.png clipboard-202602011457-6scji.png 값이 추가되었습니다.
csi-driver-lvm 개선 시나리오¶
- k8s PV - LVM LV 간 ID 불일치 문제
- topolvm 과 동일하게 CRD)reconcile) 로 관리 (crd + etcd 로 k8s db 에 저장)
- 볼륨별 HA 요청으로 인한 과도한 maintenance 등의 문제
- topolvm 과 동일하게 etcd 에 볼륨에 대한 진행상황(Status)을 기록하며, maintenance 가 계속 필요한 상황이면 unmaintenance 하지 않도록 하고, 모두 종료되면 unmaintenance. 일괄적으로 볼륨 생성 완료 기록
- 볼륨 템플릿은 빼버리고 직접 순차적으로 리소스 생성 (불필요한 LVM 리소스에이전트 생성 시도 등 방지)
테스트¶
- 설치
[root@localhost k10]# ./install_k10.sh
+ /usr/local/bin/helm install k10 -n kasten -f values.yaml .
NAME: k10
LAST DEPLOYED: Mon Feb 2 11:22:13 2026
NAMESPACE: kasten
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
TEST SUITE: None
NOTES:
Thank you for installing Kasten’s K10 Data Management Platform 8.0.0!
Documentation can be found at https://docs.kasten.io/.
How to access the K10 Dashboard:
To establish a connection to it use the following `kubectl` command:
`kubectl --namespace kasten port-forward service/gateway 8080:80`
The Kasten dashboard will be available at: `http://127.0.0.1:8080/k10/#/`
- persistent volume 상황 및 logical volume 상황

- pacemaker resource 상황

- kasten pod 상황

못올라오는 것이 있는데 왜?
이 헌제님이 13일 전에 변경
- 다음 일감과 관련됨: 항목에 새 기능 #12829: csi-driver-lvm reconcile 기능 개발 값이 추가되었습니다.
이 헌제님이 12일 전에 변경
- 파일 항목에 kasten.tar.gz kasten.tar.gz 값이 추가되었습니다.
- 점수 항목을 변경했습니다 (0.00 => 6.38)
이 헌제님이 12일 전에 변경
kasten 이미지 못 올라오는 이슈 분석¶
- root 로 설치해서 발생
- root 로 고쳐도 NFS 에서 root_squash 로 열었기때문에 볼륨 접근이 되지 않음.
- 일반 유저로 재 설치 테스트
[root@localhost k10]# grep -r runAsUser
values.schema.json: "runAsUser": {
values.schema.json: "title": "runAsUser ID",
values.schema.json: "description": "Set securityContext runAsUser ID"
values.schema.json: "runAsUser": {
values.schema.json: "title": "runAsUser ID",
templates/_k10_container.tpl: runAsUser: 1000
templates/_k10_metering.tpl: runAsUser: 1000
templates/k10-scc.yaml:runAsUser:
templates/ocp-plugin-deployment.yaml: runAsUser: 1000
templates/ocp-plugin-proxy-deployment.yaml: runAsUser: 1000
templates/prometheus-scc.yaml:runAsUser:
README.md:`services.securityContext` | Custom [security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) for K10 service containers | `{"runAsUser" : 1000, "fsGroup": 1000}`
README.md:`services.securityContext.runAsUser` | User ID K10 service containers run as| `1000`
README.md:`prometheus.server.securityContext.runAsUser` | (optional) Set security context `runAsUser` ID for Prometheus server Pod | `65534`
charts/prometheus/values.yaml: runAsUser: 65534
charts/prometheus/values.yaml: runAsUser: 65534
charts/prometheus/values.schema.json: "runAsUser": {
charts/prometheus/values.schema.json: "runAsUser": {
charts/prometheus/templates/psp.yaml: runAsUser:
charts/prometheus/charts/alertmanager/values.yaml: runAsUser: 65534
charts/prometheus/charts/alertmanager/values.yaml: # runAsUser: 65534
charts/prometheus/charts/alertmanager/values.schema.json: "runAsUser": {
charts/prometheus/charts/alertmanager/values.schema.json: "runAsUser": {
charts/prometheus/charts/kube-state-metrics/values.yaml: runAsUser: 65534
charts/prometheus/charts/kube-state-metrics/templates/podsecuritypolicy.yaml: runAsUser:
charts/prometheus/charts/prometheus-node-exporter/values.yaml: runAsUser: 65534
charts/prometheus/charts/prometheus-node-exporter/templates/psp.yaml: runAsUser:
charts/prometheus/charts/prometheus-pushgateway/values.yaml: runAsUser: 65534
charts/prometheus/charts/prometheus-pushgateway/values.yaml:# runAsUser: 65534
values.yaml: runAsUser: 65534
values.yaml: runAsUser: 1000 # Will override any USER instruction that a container image set for running the entrypoint and command.
이 헌제님이 12일 전에 변경
- 일반 유저로 다시 생성 후 발생되는 에러
[testuser@localhost k10]$ kubectl get pods -n kasten
NAME READY STATUS RESTARTS AGE
aggregatedapis-svc-58889fc44f-pxxx6 1/1 Running 0 15m
auth-svc-fffdcd78b-69jwd 1/1 Running 0 15m
catalog-svc-57888cddc-87jgf 0/2 Init:CrashLoopBackOff 6 (5m5s ago) 15m
controllermanager-svc-5ff4cff8fd-spxrt 1/1 Running 0 15m
crypto-svc-5944999479-wb6mq 4/4 Running 0 15m
dashboardbff-svc-78d5558654-9zphk 2/2 Running 0 15m
executor-svc-6666589f7-5c7d6 1/1 Running 0 15m
executor-svc-6666589f7-5tpvn 1/1 Running 0 15m
executor-svc-6666589f7-z5pw9 1/1 Running 0 15m
frontend-svc-6854745c7b-gzphf 1/1 Running 0 15m
gateway-66f59fd9cd-rgj85 1/1 Running 0 15m
jobs-svc-6db4bff688-cx9j5 0/1 Init:CrashLoopBackOff 6 (2m52s ago) 15m
kanister-svc-56596b6f67-bps5m 1/1 Running 0 15m
logging-svc-5955f7664-djlgs 0/1 Init:CrashLoopBackOff 7 (105s ago) 15m
metering-svc-6ddb99889b-lz6b5 0/1 CrashLoopBackOff 6 (2m51s ago) 15m
prometheus-server-bd49899d6-vgwzc 1/2 CrashLoopBackOff 7 (3m23s ago) 15m
state-svc-f59cb7685-mxqcx 2/2 Running 0 15m
- prometheus-server 의 로그
[testuser@localhost k10]$ kubectl logs prometheus-server-bd49899d6-vgwzc \
-n kasten \
-c prometheus-server
time=2026-02-02T04:13:48.588Z level=INFO source=main.go:687 msg="Starting Prometheus Server" mode=server version="(version=3.3.0, branch=HEAD, revision=3c49e69330ceee9c587a1d994c78535695edff16)"
time=2026-02-02T04:13:48.588Z level=INFO source=main.go:692 msg="operational information" build_context="(go=go1.23.8 X:systemcrypto, platform=linux/amd64, user=root@buildkitsandbox, date=20250513-21:26:03, tags=netgo,builtinassets,stringlabels)" host_details="(Linux 5.14.0-570.17.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Fri May 23 22:47:01 UTC 2025 x86_64 prometheus-server-bd49899d6-vgwzc (none))" fd_limits="(soft=524288, hard=524288)" vm_limits="(soft=unlimited, hard=unlimited)"
time=2026-02-02T04:13:48.590Z level=INFO source=main.go:768 msg="Leaving GOMAXPROCS=4: CPU quota undefined" component=automaxprocs
time=2026-02-02T04:13:48.592Z level=ERROR source=query_logger.go:113 msg="Error opening query log file" component=activeQueryTracker file=/data/queries.active err="open /data/queries.active: permission denied"
panic: Unable to create mmap-ed active query log
- nobody 로 접근
[testuser@localhost k10]$ kubectl get pod prometheus-server-bd49899d6-vgwzc -n kasten -o yaml | grep --text runAs
runAsGroup: 65534
runAsNonRoot: true
runAsUser: 65534
- nfs 를 no_root_squash 로 변경
이 헌제님이 11일 전에 변경
- 파일 항목에 clipboard-202602031424-lurph.png clipboard-202602031424-lurph.png 값이 추가되었습니다.
- 점수 항목을 변경했습니다 (6.38 => 5.00)
no_root_squash 만으로는 mmap 등의 operation 이 불가하여 777로 변경함 (kasten 은 anonid 65534 로 명령)

이 헌제님이 10일 전에 변경
- 파일 항목에 clipboard-202602031756-vyejq.png clipboard-202602031756-vyejq.png 값이 추가되었습니다.
kasten 스냅샷 요건¶
- 원본 pvc 는 namespace 가 kasten 이여야 함.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-thin
namespace: kasten
spec:
accessModes:
- ReadWriteOnce
storageClassName: csi-driver-lvm-thin
volumeMode: Filesystem
resources:
requests:
storage: 30Gi
- volumesnapshotclass 는 다음의 annotation 을 포함해야함.
metadata:
name: {{ .Values.lvm.volumeSnapshotClassStub }}
annotations:
k10.kasten.io/is-snapshot-class: "true"
결과¶

[testuser@localhost k10]$ kubectl get volumesnapshot
NAME READYTOUSE SOURCEPVC SOURCESNAPSHOTCONTENT RESTORESIZE SNAPSHOTCLASS SNAPSHOTCONTENT CREATIONTIME AGE
k10-csi-snap-7d9j85mghpjpq8m9 true pvc-restore 30Gi csi-driver-lvm-snapshot snapcontent-d2a55a1c-9a88-4d53-9da6-aeb61c3b7965 3m18s 3m23s
실행