IT/Kubernetes

Azure Files로 Kubernetes Persistent Volumes 구성하기

joobly 2021. 11. 10. 16:14
728x90

 이전 AWS EFS에 이어서 Azure Files로 PV를 사용하도록 설정한다. 구성하는 방법은 크게 다르지 않다.

 

1. Azure Storage Account 생성

 본문에서는 생성된 Azure Files, 액세스 키를 기반으로 PV를 구성한다. (VDI 외부에서 Azure Potal 조직 계정에 접근할 수 없어 CLI 접근이 불가하다.)

 Azure Storage Account에서 종류는 File Storage, Storage redundancy는 LRS로 설정하여 생성한다. 액세스 키에서 Storage 인증에 필요한 키를 확인한다.

 

2. Persistent Volume 사용 설정

 - cifs-utils 를 설치한다.

sudo yum -y install cifs-utils

 

 - 앞서 생성한 Azure Storage Account 정보를 기반으로 액세스 Secret을 생성한다.

kubectl create secret generic azure-secret --from-literal = azurestorageaccountname = [ Name] --from-literal =
azurestorageaccountkey = [ Key]

 

 - 계정 정책상 CLI 접근이 불가하여 위 명령을 진행하지 못하였고, 직접 yaml 파일에 액세스 Secret 정보를 작성하였다. (azure-secret.yaml)

apiVersion: v1
kind: Secret
metadata:
 name: azure-secret
type: Opaque
data:
 azurestorageaccountname: [ Name]
 azurestorageaccountkey: [ Key]

 

(Data 인코더 문제로 에러 시, data를 stringData로 변경한다.)

 - kubectl create -f azure file-secret.yaml 통해 적용하고, kubectl get secret를 통하여 확인한다.

 - Mount Option 정보가 있는 PV, PVC에 대한 파일을 작성한다.

 

 - azure-pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
 name: azure-file-storage
 labels:
 usage: azure-file-storage
spec:
 capacity:
 storage: 10Gi
 accessModes:
 - ReadWriteMany
 persistentVolumeReclaimPolicy: Retain
 azureFile:
 secretName: azure-secret
 shareName: k8stest
 readOnly: false

 

 - azure-pvc.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
 name: azure-file-storage-claim
 labels:
 usage: azure-file-storage-claim
spec:
 capacity:
 storage: 10Gi
 accessModes:
 - ReadWriteMany
 persistentVolumeReclaimPolicy: Retain
 azureFile:
 secretName: azure-secret
 shareName: k8stest
 readOnly: false

 

 - 작성한 파일을 kubectl apply 명령하여 적용한다. kubectl get pvc azurefile 통해 PVC가 생성되고 바인딩된 것을 확인할 수 있다.

 

- 아래처럼 Pod에 PV를 마운트할 수 있다. (pod-1.yaml)

apiVersion: v1
kind: Pod
metadata:
 name: pod-1
spec:
 containers:
 - image: kubernetes/pause
 name: pod-1
 volumeMounts:
 - name: azure
 mountPath: /mnt/azure
 volumes:
 - name: azure
 persistentVolumeClaim:
 claimName: azure-file-storage-claim

 

어렵지 않게 Azure Files를 PV로 사용할 수 있다.😁

300x250