프로젝트

일반

사용자 정보

실행

조사/학습 #12739

CSI 드라이버 테스트

오 지호님이 2달 전에 추가함. 26일 전에 수정됨.

상태:
해결
우선 순위:
보통
담당자:
목표 버전:
-
시작 시간:
2025/12/08
완료 기한:
2025/12/10 (약 2달 지연)
진척도:

0%

추정 시간:
20:00 시간
발견 버전:
반영 버전:
난이도:
보통
중요도:
조력자:
회사:
연락처:
점수:
3.62

설명

테스트

ASE에 적용

개별 pod이 pvc를 통해서 pv를 얻는데 ase와 pod이 다른 장비에서 동작하기 때문에 pvc하나에서 lv까지 생성 및 nfs 공유 만들기 필요할 것 같음

테스트 필요한 내용
csi 드라이버 하나 만들어서 ase 호출해서 볼륨 받기

실행 #1

오 지호님이 2달 전에 변경

  • 완료 기한 항목을 지정했습니다. (2025/12/10)
  • 시작 시간 항목을 지정했습니다. (2025/12/08)
  • 추정 시간 항목을 지정했습니다. (20:00 시간)
실행 #2

오 지호님이 2달 전에 변경

  • 난이도 항목을 지정했습니다. (보통)
실행 #3

오 지호님이 2달 전에 변경

  • 설명이 변경되었습니다. (비교(diff))
  • 상태 항목을 변경했습니다 (신규 => 진행)
  • 점수 항목을 변경했습니다 (0.00 => 6.25)
실행 #4

오 지호님이 2달 전에 변경

실행 #5

오 지호님이 2달 전에 변경

실행 #6

오 지호님이 2달 전에 변경

실행 #7

오 지호님이 2달 전에 변경

실행 #8

오 지호님이 2달 전에 변경

테스트 환경 설정 방법

  • 설치한 패키지는 가능한 최신 패키지로 사용
# Rocky linux 9 minimal standard installation
# dnf upgrade -y만 진행
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

systemctl disable --now firewalld

swapoff -a
sed -i '/swap/d' /etc/fstab

modprobe overlay
modprobe br_netfilter

# 재부팅시에도 커널 모듈 올라오게
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

# 필요한 sysctl 파라미터를 설정하면, 재부팅 후에도 값이 유지된다.
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

# 재부팅하지 않고 sysctl 파라미터 적용하기
sysctl --system

# 도커 전체 말고 containerd만 설치
dnf -y install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install containerd.io
systemctl enable --now containerd

# /etc/containerd/config.toml에서 cri diabled_plugins에서 지우기
# 안지우면 k8s init 할 때, 에러남

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.34/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.34/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF

dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet

# 쿠버네티스 클러스터 초기화
kubeadm init --pod-network-cidr=10.244.0.0/16

# 이건 쉘 나가면 풀리니까 .bashrc에 넣기
export KUBECONFIG=/etc/kubernetes/admin.conf
# 아니면 이렇게 해도 되는 듯?
mkdir -p ~/.kube
cp /etc/kubernetes/admin.conf ~/.kube/config

# 네트워크 플러그인 설치 (Flannel)
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

# 마스터 노드에서도 워커 역할 수행
kubectl taint nodes --all node-role.kubernetes.io/control-plane:NoSchedule-

# helm 설치
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-4 | bash

helm version

# metal-stack lvm csi driver 설치
dnf install -y git
git clone https://github.com/metal-stack/csi-driver-lvm.git
cd csi-driver-lvm/charts
helm install csi-driver-lvm ./csi-driver-lvm --set lvm.devicePattern='/dev/sd[b-d]'


# 확인
kubectl get pods -n default
kubectl get ds -n default

cd csi-driver-lvm
kubectl apply -f examples/csi-pvc-raw.yaml
kubectl apply -f examples/csi-pod-raw.yaml
kubectl apply -f examples/csi-pvc.yaml
kubectl apply -f examples/csi-app.yaml

kubectl delete -f examples/csi-pod-raw.yaml
kubectl delete -f examples/csi-pvc-raw.yaml
kubectl delete -f  examples/csi-app.yaml
kubectl delete -f examples/csi-pvc.yaml

# pv 확인
kubectl get pv

# 실제 확인
lvs

# nfs csi driver 설치
helm repo add csi-driver-nfs https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts
helm install csi-driver-nfs csi-driver-nfs/csi-driver-nfs --set controller.runOnControlPlane=true --version 4.12.0
실행 #9

오 지호님이 2달 전에 변경

실행 #10

오 지호님이 2달 전에 변경

실행 #11

이 헌제님이 약 2달 전에 변경

  • 점수 항목을 변경했습니다 (6.25 => 4.12)
실행 #12

이 헌제님이 약 2달 전에 변경

  • 프로젝트 항목을 변경했습니다 (92 => csi-driver-lvm)
  • 중요도 항목을 지정했습니다. ()
실행 #13

오 지호님이 26일 전에 변경

  • 상태 항목을 변경했습니다 (진행 => 해결)
  • 점수 항목을 변경했습니다 (4.12 => 3.62)

CSI 드라이버를 설정 및 동작 확인은 마무리하였습니다.
추가로 하려 했던 헌제씨가 작업하신 내용 붙여서 테스트 진행을 잠깐 했었는데 초기버전으로 오류가 있어 테스트 진행을 멈춘 동안
CSI 관련 작업이 아닌 다른 작업을 하게 되어 해결 처리합니다.

실행

내보내기 Atom PDF

클립보드 이미지 추가 (최대 크기: 50 MB)