일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- kolla
- Linux
- ceph-ansible
- HTML
- OpenStack
- yum
- golang
- KVM
- ubuntu
- grafana-loki
- archlinux
- libvirt
- cloud-init
- Octavia
- Kubeflow
- repository
- awx
- port open
- Ansible
- terraform
- k8s
- Docker
- Kubernetes
- kolla-ansible
- cephadm
- Arch
- ceph
- nfs-provisioner
- i3
- pacman
Archives
- Today
- Total
YJWANG
[Kubernetes] Helm Chart로 NFS Provisioner 구성하기 본문
ENV
우선 구성할 NFS 서버 정보를 확인합니다. (NFS ver 3 기준으로 작성했습니다 ver4 는 추가 Option을 진행할 필요가 없습니다.)
NFS 서버 정보
x.x.x.x:/test
vers:3
refer to
https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner
/etc/kubernetes/manifests/kube-apiserver.yaml 수정
NFS-provisioner 사용 및 default storage class 바인딩을 위해 수정
# vi /etc/kubernetes/manifests/kube-apiserver.yaml
(생략)
spec:
containers:
- command:
(생략)
- --enable-admission-plugins=NodeRestriction,DefaultStorageClass
(생략)
- --feature-gates=RemoveSelfLink=false
(생략)
반영 확인
# kubectl describe pod -n kube-system kube-apiserver-euclkeosad01
(생략)
Command:
kube-apiserver
(생략)
--enable-admission-plugins=NodeRestriction,DefaultStorageClass
(생략)
--feature-gates=RemoveSelfLink=false
(생략)
nfs provisioner 구축
Helm Chart 이용해서 구성
Helm repo 추가
# helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
"nfs-subdir-external-provisioner" has been added to your repositories
# helm repo ls
NAME URL
nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
Install Chart
version이 4이상이면 mountOptions를 작성하지 않아도 됩니다.
# helm install nfs-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--set nfs.server=x.x.x.x \
--set nfs.path=/test \
--set nfs.mountOptions="{ nfsvers=3,nolock }" \
--set storageClass.name=nfsprov \
--set storageClass.defaultClass=true
배포 확인
자동으로 pvc를 구성하므로 bind 정상임을 확인해볼 수 있습니다.
# kubectl get storageclasses.storage.k8s.io
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
nfsprov (default) cluster.local/nfs-provisioner-nfs-subdir-external-provisioner Delete Immediate true 18m
# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pvc-nfs-provisioner-nfs-subdir-external-provisioner Bound pv-nfs-provisioner-nfs-subdir-external-provisioner 10Mi RWO 18m
혹시 mount.nfs가 없다고 pod describe에 계속 에러가 발생하면
bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.
bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.
worker-node에 /usr/sbin/mount.nfs 파일이 있는지 확인하시고 없으면 필요 패키지를 설치하신 후 다시 진행해보시기 바랍니다.
반응형