ローカル共有エッジ ボリューム
この記事では、ローカル共有エッジ ボリューム (高可用性で永続的なローカル ストレージ) の構成について説明します。
ローカル共有エッジ ボリュームとは
ローカル共有エッジ ボリューム機能は、Kubernetes クラスターにローカルでの高可用性フェールオーバー対応ストレージを提供します。 この共有ストレージは、クラウド インフラストラクチャに依存しないタイプであるため、保存先としてクラウドに適さないことのあるスクラッチ スペース、一時ストレージ、およびローカルで永続的に保存するデータに最適です。
ローカル共有エッジ ボリュームの永続ボリューム要求 (PVC) を作成し、PVC に対してポッドを構成する
次の内容を含む
localSharedPVC.yaml
という名前のファイルを作成します。 永続ボリューム要求の名前でmetadata.name
の値を変更します。 8 行目に、使用する目的のポッドに一致する名前空間を指定します。metadata.name
値は、次の手順でdeploymentExample.yaml
の最後の行で参照されます。spec.resources.requests.storage
パラメーターは、永続ボリュームのサイズを決定します。 この例ではこれは 2 GB ですが、以下のようにニーズに合わせて変更できます。Note
使用できるのは小文字とダッシュだけです。 詳細については、Kubernetes オブジェクトの名前付けに関するドキュメントを参照してください。
kind: PersistentVolumeClaim apiVersion: v1 metadata: ### Create a name for your PVC ### name: <create-a-pvc-name-here> ### Use a namespace that matches your intended consuming pod, or "default" ### namespace: <intended-consuming-pod-or-default-here> spec: accessModes: - ReadWriteMany resources: requests: storage: 2Gi storageClassName: unbacked-sc
次の内容を含む
deploymentExample.yaml
という名前のファイルを作成します。containers.name
とvolumes.persistentVolumeClaim.claimName
の値を追加します。spec.replicas
パラメーターは、作成するレプリカ ポッドの数を決定します。 この例ではこれは 2 ですが、以下のようにニーズに合わせて変更できます。Note
使用できるのは小文字とダッシュだけです。 詳細については、Kubernetes オブジェクトの名前付けに関するドキュメントを参照してください。
apiVersion: apps/v1 kind: Deployment metadata: name: localsharededgevol-deployment ### This will need to be unique for every volume you choose to create spec: replicas: 2 selector: matchLabels: name: wyvern-testclientdeployment template: metadata: name: wyvern-testclientdeployment labels: name: wyvern-testclientdeployment spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - wyvern-testclientdeployment topologyKey: kubernetes.io/hostname containers: ### Specify the container in which to launch the busy box. ### - name: <create-a-container-name-here> image: 'mcr.microsoft.com/mirror/docker/library/busybox:1.35' command: - "/bin/sh" - "-c" - "dd if=/dev/urandom of=/data/acsalocalsharedtestfile count=16 bs=1M && while true; do ls /data &>/dev/null || break; sleep 1; done" volumeMounts: ### This name must match the following volumes::name attribute ### - name: wyvern-volume ### This mountPath is where the PVC will be attached to the pod's filesystem ### mountPath: /data volumes: ### User-defined name that is used to link the volumeMounts. This name must match volumeMounts::name as previously specified. ### - name: wyvern-volume persistentVolumeClaim: ### This claimName must refer to your PVC metadata::name from lsevPVC.yaml. claimName: <your-pvc-metadata-name-from-line-5-of-pvc-yaml>
これらの YAML ファイルを適用するには、次を実行します。
kubectl apply -f "localSharedPVC.yaml" kubectl apply -f "deploymentExample.yaml"
kubectl get pods
を実行して、ポッドの名前を検索します。 この名前は、次の手順で必要に応じてコピーします。Note
deploymentExample.yaml
ではspec::replicas
が2
と指定されていたため、kubectl get pods
を使うと 2 つのポッドが表示されます。 次のステップで使うポッド名を選択できます。次のコマンドを実行し、
POD_NAME_HERE
を前の手順でコピーした値に置き換えます。kubectl exec -it pod_name_here -- sh
deploymentExample.yaml
で指定された/data
マウント パスにディレクトリを変更します。例として、
file1.txt
という名前のファイルを作成し、echo "Hello World" > file1.txt
を使用して書き込みます。
前述の手順を完了したら、Azure Monitor と Kubernetes の監視を使用してデプロイの監視を開始するか、Prometheus と Grafana を使用してサードパーティの監視を開始します。