실행
조사/학습 #12738
CSI 드라이버 테스트
박 현승님이 2달 전에 추가함. 약 2달 전에 수정됨.
시작 시간:
2025/12/08
완료 기한:
2025/12/10 (약 2달 지연)
진척도:
0%
추정 시간:
20:00 시간
발견 버전:
반영 버전:
난이도:
보통
중요도:
하
조력자:
회사:
연락처:
점수:
5.75
파일
| container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm | container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm | 39.9 KB | 박 현승, 2025/12/09 15:43 | ||
| conntrack-tools-1.4.4-7.el7.x86_64.rpm | conntrack-tools-1.4.4-7.el7.x86_64.rpm | 187 KB | 박 현승, 2025/12/09 15:43 | ||
| cri-tools-1.29.0-150500.1.1.x86_64.rpm | cri-tools-1.29.0-150500.1.1.x86_64.rpm | 8.21 MB | 박 현승, 2025/12/09 15:43 | ||
| kube-flannel.yml | kube-flannel.yml | 4.31 KB | 박 현승, 2025/12/09 15:43 | ||
| kubeadm-1.29.15-150500.1.1.x86_64.rpm | kubeadm-1.29.15-150500.1.1.x86_64.rpm | 9.92 MB | 박 현승, 2025/12/09 15:43 | ||
| containerd.io-1.6.33-3.1.el7.x86_64.rpm | containerd.io-1.6.33-3.1.el7.x86_64.rpm | 35.3 MB | 박 현승, 2025/12/09 15:43 | ||
| kubectl-1.29.15-150500.1.1.x86_64.rpm | kubectl-1.29.15-150500.1.1.x86_64.rpm | 10.3 MB | 박 현승, 2025/12/09 15:43 | ||
| kubernetes-cni-1.3.0-150500.1.1.x86_64.rpm | kubernetes-cni-1.3.0-150500.1.1.x86_64.rpm | 6.67 MB | 박 현승, 2025/12/09 15:43 | ||
| kubelet-1.29.15-150500.1.1.x86_64.rpm | kubelet-1.29.15-150500.1.1.x86_64.rpm | 19.2 MB | 박 현승, 2025/12/09 15:43 |
박 현승님이 2달 전에 변경
- 파일 항목에 conntrack-tools-1.4.4-7.el7.x86_64.rpm conntrack-tools-1.4.4-7.el7.x86_64.rpm 값이 추가되었습니다.
- 파일 항목에 container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm 값이 추가되었습니다.
- 파일 항목에 containerd.io-1.6.33-3.1.el7.x86_64.rpm containerd.io-1.6.33-3.1.el7.x86_64.rpm 값이 추가되었습니다.
- 파일 항목에 cri-tools-1.29.0-150500.1.1.x86_64.rpm cri-tools-1.29.0-150500.1.1.x86_64.rpm 값이 추가되었습니다.
- 파일 항목에 kube-flannel.yml kube-flannel.yml 값이 추가되었습니다.
- 파일 항목에 kubeadm-1.29.15-150500.1.1.x86_64.rpm kubeadm-1.29.15-150500.1.1.x86_64.rpm 값이 추가되었습니다.
- 파일 항목에 kubectl-1.29.15-150500.1.1.x86_64.rpm kubectl-1.29.15-150500.1.1.x86_64.rpm 값이 추가되었습니다.
- 파일 항목에 kubelet-1.29.15-150500.1.1.x86_64.rpm kubelet-1.29.15-150500.1.1.x86_64.rpm 값이 추가되었습니다.
- 파일 항목에 kubernetes-cni-1.3.0-150500.1.1.x86_64.rpm kubernetes-cni-1.3.0-150500.1.1.x86_64.rpm 값이 추가되었습니다.
환경 구성 과정¶
- AnyStor-E 3.3.2 설치
- 기본 게이트웨이 등 네트워크 설정
- swap 정지 (켜져 있으면 kubelet 동작하지 않음)
swapoff -a
- 브리지 네트워크 필터링 설정
- 모듈 로딩
modprobe br_netfilter
-
- 설정 파일
/etc/sysctl.d/k8s.conf수정
- 설정 파일
net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1
-
- 설정 적용
sysctl --system
- (권장) /etc/hosts 엔트리 추가
127.0.0.2 <hostname>
- containerd 설치
- 레포지토리 추가:
/etc/yum.repos.d/docker-ce.repo작성
- 레포지토리 추가:
[docker-ce-stable] name=Docker CE Stable - $basearch baseurl=https://download.docker.com/linux/centos/7/$basearch/stable enabled=1 gpgcheck=1 gpgkey=https://download.docker.com/linux/centos/gpg [docker-ce-stable-source] name=Docker CE Stable - Sources baseurl=https://download.docker.com/linux/centos/7/source/stable enabled=0 gpgcheck=1 gpgkey=https://download.docker.com/linux/centos/gpg [docker-ce-test] name=Docker CE Test - $basearch baseurl=https://download.docker.com/linux/centos/7/$basearch/test enabled=0 gpgcheck=1 gpgkey=https://download.docker.com/linux/centos/gpg [docker-ce-test-source] name=Docker CE Test - Sources baseurl=https://download.docker.com/linux/centos/7/source/test enabled=0 gpgcheck=1 gpgkey=https://download.docker.com/linux/centos/gpg
-
- 패키지 설치
yum install -y containerd.io rm -f /etc/containerd/config.toml # 뭔가 기본 설정으로는 kubeadm init 단계에서 오류 발생하는 관계로 재생성 systemctl enable --now containerd
- Kubernetes 설치
- conntrack-tools 설치 (현재 abs 빌드는 되어 있으나 태그 적용이 안 되어 있음)
wget https://abs.gluesys.com/kojifiles/packages/conntrack-tools/1.4.4/7.el7/x86_64/conntrack-tools-1.4.4-7.el7.x86_64.rpm yum install -y ./conntrack-tools-1.4.4-7.el7.x86_64.rpm
-
/etc/yum.repos.d/kubernetes.repo작성
[kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key
-
- 패키지 설치 및 시작
yum install -y kubelet kubeadm kubectl systemctl enable --now kubelet
- helm 설치
curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash helm version
- Kubernetes 클러스터 초기화
kubeadm init --pod-network-cidr=10.244.0.0/16
- 설정 복사
mkdir -p ~/.kube cp /etc/kubernetes/admin.conf ~/.kube/config
- flannel 설치
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- 단일 노드이므로 컨트롤 노드도 워커 노드로 사용하도록 설정
kubectl taint nodes --all node-role.kubernetes.io/control-plane-
/run/flannel/subnet.env파일 확인: 아래 내용 있어야 함, 없으면 수동으로 추가
FLANNEL_NETWORK=10.244.0.0/16 FLANNEL_SUBNET=10.244.0.1/24 FLANNEL_MTU=1450 FLANNEL_IPMASQ=true
- csi-driver-lvm 설치
git clone https://github.com/metal-stack/csi-driver-lvm.git cd csi-driver-lvm helm install csi-driver-lvm ./charts/csi-driver-lvm --set lvm.devicePattern='/dev/sd[b-c]'
- 예시 코드 사용해 테스트
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
- 결과 (컨테이너 시작되는데 시간이 다소 소요될 수 있음)
[root@csi csi-driver-lvm]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root anystor-e -wi-ao---- <124.00g swap anystor-e -wi-a----- 3.00g pvc-599dc230-d133-4e2d-9d00-0676e15e122d csi-lvm -wi-a----- 12.00m
실행