Azure Arc で有効になっている AKS で永続ボリュームを使用する
適用対象: AKS on Azure Stack HCI 22H2、AKS on Windows Server
この記事では、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
次の手順
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示