Azure Kubernetes Service on Azure Stack HCI and Windows Server と共に永続ボリュームを使う

適用対象: Azure Stack HCI and Windows Server

Azure Kubernetes Service (AKS) on Azure Stack HCI and Windows Server 上で永続ボリュームを設定することができます。 "永続ボリューム" とは、Kubernetes ポッドで使用するためにプロビジョニングされているストレージの一部です。 永続ボリュームは、1 つまたは複数のポッドで使用でき、長期の保管用に向いています。 また、ポッドまたはノードのライフサイクルからは独立しています。

Windows および Linux の両方のノードに対して永続ボリュームをプロビジョニングできますが、この記事では、Windows アプリケーションで使用するための永続ボリュームの作成方法について説明します。 詳細については、Kubernetes での永続ボリュームに関する記事を参照してください。

開始する前に

使用を開始するために必要なものは次のとおりです。

永続ボリューム要求の作成

永続ボリューム要求 (PVC) を使用して、ストレージ クラスに基づいてストレージを自動的にプロビジョニングします。 ボリューム要求を作成するには、pvc-akshci-csi.yaml というファイルを作成してから、次の YAML 定義をコピーして貼り付けてください。 PVC には、ReadWriteOnce アクセスがあるサイズ 10 GB のディスクが必要となります。 ストレージ クラス (vhdx) として、default ストレージ クラスが指定されます。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
 name: pvc-akshci-csi
spec:
 accessModes:
 - ReadWriteOnce
 resources:
  requests:
   storage: 10Gi

ボリュームを作成するには、Azure Stack HCI クラスター内のいずれかのサーバーの管理 PowerShell セッションで、以下のコマンドを実行してください (Enter-PSSession などのメソッドまたはリモート デスクトップを使用してサーバーに接続します)。

kubectl create -f pvc-akshci-csi.yaml 

次の出力に、永続ボリューム要求が正常に作成されたことが示されます。

出力:

persistentvolumeclaim/pvc-akshci-csi created

永続ボリュームの使用

永続ボリュームを使用するには、winwebserver.yaml という名前のファイルを作成し、次の YAML 定義をコピーして貼り付けます。 次に、永続ボリューム要求と vhdx にアクセスできるポッドを作成します。

以下の yaml 定義では、mountPath が、コンテナー内にボリュームをマウントするパスです。 ポッドの作成が正常に完了すると、C:\ 内にサブディレクトリ mnt が、mnt 内にサブディレクトリ akshciscsi が作成されたと表示されます。

apiVersion: apps/v1 
kind: Deployment 
metadata: 
  labels: 
    app: win-webserver 
  name: win-webserver 
spec: 
  replicas: 1 
  selector: 
    matchLabels: 
      app: win-webserver 
  template: 
    metadata: 
      labels: 
        app: win-webserver 
      name: win-webserver 
    spec: 
     containers: 
      - name: windowswebserver 
        image: mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019 
        ports:  
          - containerPort: 80    
        volumeMounts: 
            - name: akshciscsi 
              mountPath: "/mnt/akshciscsi" 
     volumes: 
        - name: akshciscsi 
          persistentVolumeClaim: 
            claimName:  pvc-akshci-csi 
     nodeSelector: 
      kubernetes.io/os: windows 

上の yaml 定義を使用してポッドを作成するには、次を実行します。

kubectl create -f winwebserver.yaml 

ポッドが実行されていることを確認するには、次のコマンドを実行します。 イメージをプルするのに時間がかかるため、ポッドが実行中の状態になるまで数分待機します。

kubectl get pods -o wide 

ポッドが実行中になったら、次のコマンドを実行してポッドの状態を表示します。

kubectl.exe describe pod %podName% 

ボリュームがポッドにマウントされていることを確認するには、次のコマンドを実行します。

kubectl exec -it %podname% cmd.exe 

永続ボリューム要求の削除

永続ボリューム要求を削除する前に、次を実行してアプリのデプロイを削除する必要があります。

kubectl delete deployments win-webserver

その後で、次を実行して永続ボリューム要求を削除できます。

kubectl delete PersistentVolumeClaim pvc-akshci-csi

次の手順