Sdílet prostřednictvím


Alternativní: Konfigurace ověřování na základě klíčů pro svazky Cloud Ingest Edge

Tento článek popisuje alternativní konfiguraci svazků Cloud Ingest Edge (nahrávání objektů blob s místním vymazáním) s ověřováním na základě klíčů.

Tato konfigurace je alternativní možností použití s metodami ověřování na základě klíčů. Měli byste zkontrolovat doporučenou konfiguraci pomocí spravovaných identit přiřazených systémem v konfiguraci svazků Cloud Ingest Edge.

Požadavky

  1. Podle těchto pokynů vytvořte účet úložiště.

    Poznámka:

    Když vytvoříte účet úložiště, doporučujeme ho vytvořit ve stejné skupině prostředků a oblasti nebo umístění jako cluster Kubernetes.

  2. Podle těchto pokynů vytvořte kontejner v účtu úložiště, který jste vytvořili v předchozím kroku.

Vytvoření tajného kódu Kubernetes

Svazky Edge podporují následující tři metody ověřování:

  • Ověřování sdíleného přístupového podpisu (SAS) (doporučeno)
  • Ověřování připojovacího řetězce
  • Ověřování pomocí klíče úložiště

Po dokončení ověřování jedné z těchto metod přejděte do části Vytvoření trvalé deklarace Ingestu Ingestu trvalého svazku (PVC).

Vytvoření tajného kódu Kubernetes pomocí ověřování sdíleného přístupového podpisu (SAS)

Ověřování SAS můžete nakonfigurovat pomocí YAML a kubectlnebo pomocí Azure CLI.

Pokud chcete najít svoji aplikaci, proveďte storageaccountsasnásledující postup:

  1. Na webu Azure Portal přejděte na svůj účet úložiště.
  2. V levém okně rozbalte položku Zabezpečení a sítě a pak vyberte Sdílený přístupový podpis.
  3. V části Povolené typy prostředků vyberte Service > Container > Object.
  4. V části Povolená oprávnění zrušte výběr neměnného úložiště a trvalého odstranění.
  5. V části Datum a čas zahájení a vypršení platnosti zvolte požadované koncové datum a čas.
  6. V dolní části vyberte Vygenerovat SAS a připojovací řetězec.
  7. Hodnoty uvedené v tokenu SAS se používají pro storageaccountsas proměnné v další části.

Ověřování sdíleného přístupového podpisu (SAS) pomocí YAML a kubectl

  1. Vytvořte soubor s názvem sas.yaml s následujícím obsahem. Nahraďte metadata::name, metadata::namespace a storageaccountconnectionstring svými vlastními hodnotami.

    Poznámka:

    Používejte jenom malá písmena a pomlčky. Další informace najdete v dokumentaci k pojmenování objektů Kubernetes.

    apiVersion: v1
    kind: Secret
    metadata:
      ### This name should look similar to "kharrisStorageAccount-secret" where "kharrisStorageAccount" is replaced with your storage account name
      name: <your-storage-acct-name-secret>
      # Use a namespace that matches your intended consuming pod, or "default" 
      namespace: <your-intended-consuming-pod-or-default>
    stringData:
      authType: SAS
      # Container level SAS (must have ? prefixed)
      storageaccountsas: "?..."
    type: Opaque
    
  2. Pokud chcete použít sas.yaml, spusťte:

    kubectl apply -f "sas.yaml"
    

Ověřování sdíleného přístupového podpisu (SAS) pomocí rozhraní příkazového řádku

  • Pokud chcete nastavit obor ověřování SAS na úrovni kontejneru, použijte následující příkazy. Je nutné provést aktualizaci YOUR_CONTAINER_NAME z prvního příkazu a YOUR_NAMESPACEYOUR_STORAGE_ACCT_NAME, a YOUR_SECRET z druhého příkazu:

    az storage container generate-sas [OPTIONAL auth via --connection-string "..."] --name YOUR_CONTAINER_NAME --permissions acdrw --expiry '2025-02-02T01:01:01Z'
    kubectl create secret generic -n "YOUR_NAMESPACE" "YOUR_STORAGE_ACCT_NAME"-secret --from-literal=storageaccountsas="YOUR_SAS" 
    

Vytvoření deklarace trvalé deklarace ingestování svazku cloudu (PVC)

  1. Vytvořte soubor s názvem cloudIngestPVC.yaml s následujícím obsahem. Musíte upravit metadata::name hodnotu a přidat název deklarace trvalého svazku. Tento název se odkazuje na poslední řádek deploymentExample.yaml v dalším kroku. Hodnotu musíte také aktualizovat metadata::namespace zamýšleným podem. Pokud nemáte zamýšlený pod, hodnota metadata::namespace je default:

    Poznámka:

    Používejte jenom malá písmena a pomlčky. Další informace najdete v dokumentaci k pojmenování objektů Kubernetes.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      ### Create a name for the PVC ###
      name: <your-storage-acct-name-secret>
      ### Use a namespace that matches your intended consuming pod, or "default" ###
      namespace: <your-intended-consuming-pod-or-default>
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 2Gi
      storageClassName: cloud-backed-sc
    
  2. Pokud chcete použít cloudIngestPVC.yaml, spusťte:

    kubectl apply -f "cloudIngestPVC.yaml"
    

Připojení dílčího svazku ke svazku Edge

  1. Pomocí následujícího příkazu získejte název svazku Edge:

    kubectl get edgevolumes
    
  2. Vytvořte soubor s názvem edgeSubvolume.yaml a zkopírujte následující obsah. Aktualizujte proměnné pomocí informací:

    Poznámka:

    Používejte jenom malá písmena a pomlčky. Další informace najdete v dokumentaci k pojmenování objektů Kubernetes.

    • metadata::name: Vytvořte název pro podsvazek.
    • spec::edgevolume: Tento název byl načten z předchozího kroku pomocí kubectl get edgevolumes.
    • spec::path: Pod cestou připojení vytvořte vlastní název podadresáře. Všimněte si, že následující příklad již obsahuje název příkladu (exampleSubDir). Pokud změníte tento název cesty, musí být řádek 33 v deploymentExample.yaml aktualizovaném názvu nové cesty. Pokud se rozhodnete cestu přejmenovat, nepoužívejte předchozí lomítko.
    • spec::auth::authType: Závisí na tom, jakou metodu ověřování jste použili v předchozích krocích. Mezi přijaté vstupy patří sas, connection_stringa key.
    • spec::auth::secretName: Pokud jste použili ověřování pomocí klíče úložiště, je {your_storage_account_name}-secretto secretName . Pokud jste použili připojovací řetězec nebo ověřování SAS, secretName zadali jste ho.
    • spec::auth::secretNamespace: Odpovídá zamýšlenému využití podu nebo default.
    • spec::container: Název kontejneru v účtu úložiště.
    • spec::storageaccountendpoint: Na webu Azure Portal přejděte ke svému účtu úložiště. Na stránce Přehled v pravém horním rohu obrazovky vyberte Zobrazení JSON. Odkaz najdete storageaccountendpoint pod vlastnostmi::p rimaryEndpoints::blob. Zkopírujte celý odkaz (například https://mytest.blob.core.windows.net/).
    apiVersion: "arccontainerstorage.azure.net/v1"
    kind: EdgeSubvolume
    metadata:
      name: <create-a-subvolume-name-here>
    spec:
      edgevolume: <your-edge-volume-name-here>
      path: exampleSubDir # If you change this path, line 33 in deploymentExample.yaml must be updated. Don't use a preceding slash.
      auth:
        authType: MANAGED_IDENTITY
        secretName: <your-secret-name>
        secretNamespace: <your_namespace>
      storageaccountendpoint: <your_storage_account_endpoint>
      container: <your-blob-storage-account-container-name>
      ingestPolicy: edgeingestpolicy-default # Optional: See the following instructions if you want to update the ingestPolicy with your own configuration
    
  3. Pokud chcete použít edgeSubvolume.yaml, spusťte:

    kubectl apply -f "edgeSubvolume.yaml"
    

Volitelné: Změna ingestPolicy výchozí hodnoty

  1. Pokud chcete změnit ingestPolicy výchozí edgeingestpolicy-defaulthodnotu, vytvořte soubor s názvem myedgeingest-policy.yaml s následujícím obsahem. Aktualizujte následující proměnné podle svých preferencí.

    Poznámka:

    Používejte jenom malá písmena a pomlčky. Další informace najdete v dokumentaci k pojmenování objektů Kubernetes.

    • metadata::name: Vytvořte název pro ingestPolicy. Tento název musí být aktualizován a odkazován v části spec::ingestPolicy vašeho edgeSubvolume.yaml.
    • spec::ingest::order: Pořadí, ve kterém se nahrají špinavé soubory. Jedná se o nejlepší úsilí, nikoli záruku (výchozí hodnota je nejstarší). Možnosti pro objednávku jsou: nejstarší nebo od nejnovějšího.
    • spec::ingest::minDelaySec: Minimální počet sekund, než je zašpiněný soubor způsobilý k ingestování (výchozí hodnota je 60). Toto číslo může být v rozsahu od 0 do 31536000.
    • spec::eviction::order: Způsob vyřazení souborů (výchozí hodnota je neuspořádaná). Možnosti pořadí vyřazení jsou: neuspořádané nebo nikdy.
    • spec::eviction::minDelaySec: Počet sekund před vymazáním souboru má nárok na vyřazení (výchozí hodnota je 300). Toto číslo může být v rozsahu od 0 do 31536000.
    apiVersion: arccontainerstorage.azure.net/v1
    kind: EdgeIngestPolicy
    metadata:
      name: <create-a-policy-name-here> # This will need to be updated and referenced in the spec::ingestPolicy section of the edgeSubvolume.yaml
    spec:
      ingest:
        order: <your-ingest-order>
        minDelaySec: <your-min-delay-sec>
      eviction:
        order: <your-eviction-order>
        minDelaySec: <your-min-delay-sec>
    
  2. Pokud chcete použít myedgeingest-policy.yaml, spusťte:

    kubectl apply -f "myedgeingest-policy.yaml"
    

Připojení aplikace (nativní aplikace Kubernetes)

  1. Chcete-li nakonfigurovat obecný jeden pod (nativní aplikace Kubernetes) proti deklarace identity trvalého svazku (PVC), vytvořte soubor s názvem deploymentExample.yaml s následujícím obsahem. Nahraďte containers::name hodnoty a volumes::persistentVolumeClaim::claimName nahraďte je. Pokud jste aktualizovali název cesty z edgeSubvolume.yaml, exampleSubDir na řádku 33 je nutné aktualizovat nový název cesty.

    Poznámka:

    Používejte jenom malá písmena a pomlčky. Další informace najdete v dokumentaci k pojmenování objektů Kubernetes.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: cloudingestedgevol-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/azure-cli:2.57.0@sha256:c7c8a97f2dec87539983f9ded34cd40397986dcbed23ddbb5964a18edae9cd09
              command:
                - "/bin/sh"
                - "-c"
                - "dd if=/dev/urandom of=/data/exampleSubDir/esaingesttestfile 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
                claimName: <your-pvc-metadata-name-from-line-5-of-pvc-yaml>
    
  2. Pokud chcete použít deploymentExample.yaml, spusťte:

    kubectl apply -f "deploymentExample.yaml"
    
  3. Slouží kubectl get pods k vyhledání názvu podu. Zkopírujte tento název; použijete ho v dalším kroku.

    Poznámka:

    Vzhledem k tomu, že spec::replicas bylo deploymentExample.yaml zadáno jako 2, dva pody se zobrazí pomocí kubectl get pods. Pro další krok můžete zvolit název podu, který chcete použít.

  4. Spusťte následující příkaz a nahraďte POD_NAME_HERE zkopírovanou hodnotou z posledního kroku:

    kubectl exec -it pod_name_here -- sh
    
  5. Změňte adresáře (cd) na /data cestu připojení, jak je uvedeno v adresáři deploymentExample.yaml.

  6. Měl by se zobrazit adresář s názvem, který jste zadali v path kroku 2 dílčího svazku připojení ke svazku Edge. cd Teď přejděte do /your_path_name_heresouboru a nahraďte your_path_name_here příslušnými podrobnostmi.

  7. Například vytvořte soubor s názvem file1.txt a zapište do něj pomocí echo "Hello World" > file1.txt.

  8. Na webu Azure Portal přejděte do svého účtu úložiště a vyhledejte kontejner zadaný v kroku 2 dílčího svazku Připojit ke svazku Edge. Když vyberete kontejner, měl by se v kontejneru zobrazit file1.txt vyplněný. Pokud se soubor ještě nezobrazuje, počkejte přibližně 1 minutu; Svazky Edge čekají minutu před nahráním.

Další kroky

Po dokončení těchto kroků začněte monitorovat nasazení pomocí služby Azure Monitor a monitorování Kubernetes nebo monitorování třetích stran pomocí nástroje Prometheus a Grafana.

Monitorování nasazení