Arc で AKS を有効にした永続ボリュームを使用する
適用対象: AKS on Azure Stack HCI 22H2、Windows Server 上の AKS
この記事では、Azure Arc (AKS Arc) によって有効になっている AKS の Kubernetes ポッドで使用する長期的なストレージを提供する永続ボリュームをプロビジョニング、使用、削除する方法について説明します。
永続ボリュームは、Kubernetes ポッドで使用するためにプロビジョニングされたストレージの一部を表します。 永続ボリュームは、1 つまたは複数のポッドで使用でき、長期の保管用に向いています。 また、ポッドやノードのライフサイクルに依存しません。
Windows ノードと Linux ノードの両方に永続ボリュームをプロビジョニングできますが、この記事では、Windows アプリケーションで使用する永続ボリュームを作成する方法について説明します。 詳細については、Kubernetes での永続ボリュームに関する記事を参照してください。
開始する前に
使用を開始するために必要なものは次のとおりです。
- Windows ワーカー ノードが少なくとも 1 つある Kubernetes クラスター。
- Kubernetes クラスターにアクセスするための kubeconfig ファイル。
永続ボリューム要求の作成
永続ボリューム要求 (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