次の方法で共有


ローカル共有エッジ ボリューム

この記事では、ローカル共有エッジ ボリューム (高可用性で永続的なローカル ストレージ) の構成について説明します。

ローカル共有エッジ ボリュームとは

ローカル共有エッジ ボリューム機能は、Kubernetes クラスターにローカルでの高可用性フェールオーバー対応ストレージを提供します。 この共有ストレージは、クラウド インフラストラクチャに依存しないタイプであるため、保存先としてクラウドに適さないことのあるスクラッチ スペース、一時ストレージ、およびローカルで永続的に保存するデータに最適です。

ローカル共有エッジ ボリュームの永続ボリューム要求 (PVC) を作成し、PVC に対してポッドを構成する

  1. 次の内容を含む 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
    
  2. 次の内容を含む deploymentExample.yaml という名前のファイルを作成します。 containers.namevolumes.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>
    
  3. これらの YAML ファイルを適用するには、次を実行します。

    kubectl apply -f "localSharedPVC.yaml"
    kubectl apply -f "deploymentExample.yaml"
    
  4. kubectl get pods を実行して、ポッドの名前を検索します。 この名前は、次の手順で必要に応じてコピーします。

    Note

    deploymentExample.yaml では spec::replicas2 と指定されていたため、kubectl get pods を使うと 2 つのポッドが表示されます。 次のステップで使うポッド名を選択できます。

  5. 次のコマンドを実行し、POD_NAME_HERE を前の手順でコピーした値に置き換えます。

    kubectl exec -it pod_name_here -- sh
    
  6. deploymentExample.yaml で指定された /data マウント パスにディレクトリを変更します。

  7. 例として、file1.txt という名前のファイルを作成し、echo "Hello World" > file1.txt を使用して書き込みます。

前述の手順を完了したら、Azure Monitor と Kubernetes の監視を使用してデプロイの監視を開始するか、Prometheus と Grafana を使用してサードパーティの監視を開始します。

次のステップ

デプロイを監視する