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
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.
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).
- Ověřování sdíleného přístupového podpisu (SAS)
- Ověřování připojovacího řetězce
- Ověřování pomocí klíče úložiště
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 kubectl
nebo pomocí Azure CLI.
Pokud chcete najít svoji aplikaci, proveďte storageaccountsas
následující postup:
- Na webu Azure Portal přejděte na svůj účet úložiště.
- V levém okně rozbalte položku Zabezpečení a sítě a pak vyberte Sdílený přístupový podpis.
- V části Povolené typy prostředků vyberte Service > Container > Object.
- V části Povolená oprávnění zrušte výběr neměnného úložiště a trvalého odstranění.
- V části Datum a čas zahájení a vypršení platnosti zvolte požadované koncové datum a čas.
- V dolní části vyberte Vygenerovat SAS a připojovací řetězec.
- 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
Vytvořte soubor s názvem
sas.yaml
s následujícím obsahem. Nahraďtemetadata::name
,metadata::namespace
astorageaccountconnectionstring
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
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 aYOUR_NAMESPACE
YOUR_STORAGE_ACCT_NAME
, aYOUR_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)
Vytvořte soubor s názvem
cloudIngestPVC.yaml
s následujícím obsahem. Musíte upravitmetadata::name
hodnotu a přidat název deklarace trvalého svazku. Tento název se odkazuje na poslední řádekdeploymentExample.yaml
v dalším kroku. Hodnotu musíte také aktualizovatmetadata::namespace
zamýšleným podem. Pokud nemáte zamýšlený pod, hodnotametadata::namespace
jedefault
: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
Pokud chcete použít
cloudIngestPVC.yaml
, spusťte:kubectl apply -f "cloudIngestPVC.yaml"
Připojení dílčího svazku ke svazku Edge
Pomocí následujícího příkazu získejte název svazku Edge:
kubectl get edgevolumes
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 vdeploymentExample.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_string
akey
.spec::auth::secretName
: Pokud jste použili ověřování pomocí klíče úložiště, je{your_storage_account_name}-secret
tosecretName
. 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 nebodefault
.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 najdetestorageaccountendpoint
pod vlastnostmi::p rimaryEndpoints::blob. Zkopírujte celý odkaz (napříkladhttps://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
Pokud chcete použít
edgeSubvolume.yaml
, spusťte:kubectl apply -f "edgeSubvolume.yaml"
Volitelné: Změna ingestPolicy
výchozí hodnoty
Pokud chcete změnit
ingestPolicy
výchozíedgeingestpolicy-default
hodnotu, vytvořte soubor s názvemmyedgeingest-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šehoedgeSubvolume.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>
Pokud chcete použít
myedgeingest-policy.yaml
, spusťte:kubectl apply -f "myedgeingest-policy.yaml"
Připojení aplikace (nativní aplikace Kubernetes)
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ďtecontainers::name
hodnoty avolumes::persistentVolumeClaim::claimName
nahraďte je. Pokud jste aktualizovali název cesty zedgeSubvolume.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>
Pokud chcete použít
deploymentExample.yaml
, spusťte:kubectl apply -f "deploymentExample.yaml"
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
bylodeploymentExample.yaml
zadáno jako2
, dva pody se zobrazí pomocíkubectl get pods
. Pro další krok můžete zvolit název podu, který chcete použít.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
Změňte adresáře (
cd
) na/data
cestu připojení, jak je uvedeno v adresářideploymentExample.yaml
.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_here
souboru a nahraďteyour_path_name_here
příslušnými podrobnostmi.Například vytvořte soubor s názvem
file1.txt
a zapište do něj pomocíecho "Hello World" > file1.txt
.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.