실행
조사/학습 #12739
CSI 드라이버 테스트
시작 시간:
2025/12/08
완료 기한:
2025/12/10 (약 2달 지연)
진척도:
0%
추정 시간:
20:00 시간
발견 버전:
반영 버전:
난이도:
보통
중요도:
하
조력자:
회사:
연락처:
점수:
3.62
설명
테스트¶
- lvm csi driver 테스트 진행
- nfs의 경우, 다른 장비에서 nfs server를 띄우고 k8s에서 nfs 드라이버로 storage class 만들어서 테스트 진행
- 참고한 flexa csi driver repo: https://gitlab.gluesys.com/exastor/flexa-csi/-/tree/develop?ref_type=heads
- 재환씨가 참고하라고 준 일감: https://redmine.gluesys.com/issues/9467
ASE에 적용¶
개별 pod이 pvc를 통해서 pv를 얻는데 ase와 pod이 다른 장비에서 동작하기 때문에 pvc하나에서 lv까지 생성 및 nfs 공유 만들기 필요할 것 같음
테스트 필요한 내용
csi 드라이버 하나 만들어서 ase 호출해서 볼륨 받기
오 지호님이 2달 전에 변경
- 설명이 변경되었습니다. (비교(diff))
테스트 환경 설정 방법¶
- 설치한 패키지는 가능한 최신 패키지로 사용
# 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
실행