-
[udemy] Azure Fileskubernetes/udemy 2025. 2. 18. 14:55
Azure Files
Azure Files를 통해 Volume Mount하여,
웹 페이지를 띄워보자
모든 파일은 kube-manifests/ 폴더 안에 넣어두어, 일괄적으로 생성한다.
Storage Class 파일 작성
# Storage-class.yaml 파일 생성
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: my-azurefile-sc provisioner: kubernetes.io/azure-file mountOptions: - dir_mode=0777 - file_mode=0777 - uid=0 - gid=0 - mfsymlinks - cache=strict parameters: skuName: Standard_LRS
Persistent Volume Claim 파일 작성
# Persistent-Volume-Claim.yaml 파일 생성
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-azurefile-pvc spec: accessModes: - ReadWriteMany storageClassName: my-azurefile-sc resources: requests: storage: 5Gi
Nginx Deployment 파일 작성
# Nginx-Deployment.yaml 파일 생성
apiVersion: apps/v1 kind: Deployment metadata: name: azure-files-nginx-deployment labels: app: azure-files-nginx-app spec: replicas: 4 selector: matchLabels: app: azure-files-nginx-app template: metadata: labels: app: azure-files-nginx-app spec: containers: - name: azure-files-nginx-app image: stacksimplify/kube-nginxapp1:1.0.0 imagePullPolicy: Always ports: - containerPort: 80 volumeMounts: - name: my-azurefile-volume mountPath: "/usr/share/nginx/html/app1" volumes: - name: my-azurefile-volume persistentVolumeClaim: claimName: my-azurefile-pvc
Nginx Service 생성
# Nginx-Service.yaml 파일 생성
apiVersion: v1 kind: Service metadata: name: azure-files-nginx-service labels: app: azure-files-nginx-app spec: type: LoadBalancer selector: app: azure-files-nginx-app ports: - port: 80 targetPort: 80
생성 및 확인
# 생성
# Create All Objects kubectl apply -f kube-manifests/
# 확인
kubectl get pvc --- NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE my-azurefile-pvc Bound pvc-8f726f7a-deda-4998-a845-8fb64f3f1185 5Gi RWX my-azurefile-sc <unset> 4m3s
kubectl get pv --- NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE pvc-2355e8d4-61c8-4a9e-8570-a6bb46ca1295 5Gi RWO Retain Released default/azure-managed-disk-pvc managed-premium-retain-sc <unset> 3h53m pvc-8f726f7a-deda-4998-a845-8fb64f3f1185 5Gi RWX Delete Bound default/my-azurefile-pvc my-azurefile-sc <unset> 3m39s
kubectl get svc --- NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE azure-files-nginx-service LoadBalancer 10.0.97.191 20.249.198.241 80:31507/TCP 4m21s kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 20h
# Azure files에 파일 업로드
해당 pvc에 file1.html과 file2.html를 올린다.
azure-files-nginx-service ip/app1/file1.html 확인 화면
azure-files-nginx-service ip/app1/file2.html 확인 화면
[참고 영상]
Udemy - Azure Kubernetes Service with Azure DevOps and Terraform
섹션 9 : AKS Storage - Azure Files
[참고 문서]
'kubernetes > udemy' 카테고리의 다른 글
[udemy] Ingress - ExternalDNS (0) 2025.02.22 [udemy] Ingress (0) 2025.02.18 [Udemy] Secrets (0) 2025.02.18 [Udemy] AKS Storage - Azure Disks (2) (0) 2025.02.14 [Udemy] AKS Storage - Azure Disks (0) 2025.02.14