ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [udemy] Azure Files
    kubernetes/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

     

    [참고 문서]

    https://github.com/stacksimplify/azure-aks-kubernetes-masterclass/tree/master/08-Azure-Files-for-AKS-Storage

     

     

     

     

    '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
Designed by Tistory.