Windows Server で AKS で永続ボリュームを使用する

適用対象: Windows Server 上の AKS

この記事では、Windows Server 上の AKS の Kubernetes ポッドで使用する長期的なストレージを提供する永続ボリュームをプロビジョニング、使用、削除する方法について説明します。

永続ボリュームは、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

ボリュームを作成するには、Windows Server クラスター内のいずれかのサーバーで管理 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

次のステップ