Distribuire Periscope in un cluster Servizio Azure Kubernetes (AKS)

Periscope del servizio Azure Kubernetes è uno strumento di diagnostica open source che raccoglie log e informazioni di diagnostica da nodi e pod Servizio Azure Kubernetes (AKS). Per distribuire Periscope e raccogliere la diagnostica, eseguire az aks kollect e specificare il cluster e un account di archiviazione Azure. È anche possibile distribuire Periscope usando l'estensione servizio Azure Kubernetes per Visual Studio Code, Kustomize o Azure Copilot.

Periscope raccoglie le informazioni seguenti per impostazione predefinita:

  • Log dei contenitori dallo spazio dei kube-system nomi.
  • Log del servizio di sistema di runtime del contenitore e Kubelet.
  • La connettività in uscita verifica la presenza di Internet, server API, tunnel, Registro Azure Container e Microsoft Registro Container.
  • Dati iptable del nodo, log di provisioning, log cloud-init e impostazioni DNS.
  • Descrizioni di pod, servizi e distribuzioni nello spazio dei kube-system nomi .
  • Argomenti del comando Kubelet e utilizzo delle risorse nodo e pod.

Prerequisiti

  • È necessario un cluster del servizio Azure Kubernetes esistente con nodi Linux o Windows. Periscope supporta entrambi i sistemi operativi, ma le informazioni raccolte differiscono. Per altre informazioni, vedere differenze funzionali di Windows e Linux.
  • Per distribuire Periscope usando il interfaccia della riga di comando di Azure o Kustomize, installare il interfaccia della riga di comando di Azure ed eseguire l'accesso usando az login.
  • Per distribuire Periscope usando il interfaccia della riga di comando di Azure, Visual Studio Code o Kustomize, installare kubectl la versione 1.21 o successiva.
  • Creare o identificare un account di archiviazione Azure per la diagnostica raccolta.
  • Verificare che il cluster possa eseguire il pull delle immagini da Microsoft Container Registry (MCR).

Importante

Periscope viene eseguito nei nodi del pool di agenti e raccoglie i dati a livello di contenitore e macchina virtuale. Prima di distribuire Periscope, verificare che il proprietario del cluster comprenda e acconsenta alla raccolta e alla condivisione di queste informazioni. Per altre informazioni, vedere supporto tecnico Microsoft raccolta di informazioni di diagnostica.

Distribuire Periscope usando il interfaccia della riga di comando di Azure

Il az aks kollect comando distribuisce Periscope, raccoglie le informazioni di diagnostica e carica i risultati in Archiviazione BLOB di Azure.

  1. Installare o aggiornare l'estensione aks-preview .

    az extension add --name aks-preview --upgrade
    
  2. Impostare le variabili di ambiente per il cluster del servizio Azure Kubernetes.

    RESOURCE_GROUP=<resource-group-name>
    AKS_CLUSTER=<aks-cluster-name>
    
  3. Distribuire Periscope e raccogliere la diagnostica usando una delle opzioni seguenti per l'account di archiviazione.

    • Se le impostazioni di diagnostica del servizio Azure Kubernetes specificano già un account di archiviazione, eseguire il comando seguente:

      az aks kollect \
          --resource-group $RESOURCE_GROUP \
          --name $AKS_CLUSTER
      
    • Per usare un account di archiviazione di cui si è proprietari, specificare il relativo ID risorsa:

      STORAGE_ACCOUNT_ID=<storage-account-resource-id>
      
      az aks kollect \
          --resource-group $RESOURCE_GROUP \
          --name $AKS_CLUSTER \
          --storage-account $STORAGE_ACCOUNT_ID
      
    • Per usare un nome dell'account di archiviazione e un token di firma di accesso condiviso (SAS), specificare un token di firma di accesso condiviso con autorizzazione di scrittura:

      STORAGE_ACCOUNT=<storage-account-name>
      SAS_TOKEN=<sas-token>
      
      az aks kollect \
          --resource-group $RESOURCE_GROUP \
          --name $AKS_CLUSTER \
          --storage-account $STORAGE_ACCOUNT \
          --sas-token "$SAS_TOKEN"
      

    Caution

    Un token di firma di accesso condiviso concede l'accesso all'account di archiviazione. Proteggerlo come una password, non eseguirne il commit nel controllo del codice sorgente e revocarlo o ruotarlo quando non è più necessario.

Al termine della raccolta, Periscope archivia i risultati in un contenitore BLOB denominato dopo il nome di dominio completo (FQDN) del server API del cluster. Il contenitore include anche un file ZIP che è possibile scaricare per l'analisi o la condivisione con supporto tecnico Microsoft.

Personalizzare la diagnostica raccolta

Per impostazione predefinita, Periscope raccoglie i log e gli oggetti Kubernetes dallo spazio dei kube-system nomi . Usare i parametri facoltativi az aks kollect per specificare come destinazione altre risorse.

  • Raccogliere tutti i log dei contenitori in uno spazio dei nomi o in un contenitore specifico:

    az aks kollect \
        --resource-group $RESOURCE_GROUP \
        --name $AKS_CLUSTER \
        --container-logs "<namespace> <namespace>/<container-name>"
    
  • Descrivere tutti gli oggetti di un tipo di risorsa in uno spazio dei nomi o in un oggetto specifico:

    az aks kollect \
        --resource-group $RESOURCE_GROUP \
        --name $AKS_CLUSTER \
        --kube-objects "<namespace>/<resource-type> <namespace>/<resource-type>/<resource-name>"
    
  • Raccogliere file di log specifici dei nodi Linux:

    az aks kollect \
        --resource-group $RESOURCE_GROUP \
        --name $AKS_CLUSTER \
        --node-logs "/var/log/azure-vnet.log /var/log/azure-vnet-ipam.log"
    
  • Raccogliere file di log del nodo Windows specifici:

    az aks kollect \
        --resource-group $RESOURCE_GROUP \
        --name $AKS_CLUSTER \
        --node-logs-windows 'C:\AzureData\CustomDataSetupScript.log'
    

È possibile combinare questi parametri con qualsiasi opzione dell'account di archiviazione di Deploy Periscope usando il interfaccia della riga di comando di Azure. Per informazioni di riferimento complete sui comandi, vedere az aks kollect.

Distribuire Periscope usando Visual Studio Code

L'estensione del servizio Azure Kubernetes per Visual Studio Code fornisce un flusso di lavoro grafico per la distribuzione di Periscope e il download dei risultati.

  1. Installare l'estensione servizio Azure Kubernetes per Visual Studio Code.
  2. Accedere a Azure in Visual Studio Code.
  3. Verificare che le impostazioni di diagnostica del cluster del servizio Azure Kubernetes specifichino un account di archiviazione. Se è necessario configurare una, completare la procedura seguente:
    1. Nell'estensione servizio Azure Kubernetes fare clic con il pulsante destro del mouse sul cluster e scegliere Mostra in portale di Azure.
    2. Nel portale di Azure selezionare Monitoraggio>Impostazioni> didiagnostica Aggiungi impostazione di diagnostica.
    3. Immettere un nome per l'impostazione di diagnostica, selezionare Archivia in un account di archiviazione e selezionare un account di archiviazione.
    4. Selezionare i log da abilitare e quindi selezionare Salva.
  4. Nell'estensione servizio Azure Kubernetes fare clic con il pulsante destro del mouse sul cluster e scegliere Esegui periscope del servizio Azure Kubernetes.
  5. Se nel cluster sono presenti più account di archiviazione nelle impostazioni di diagnostica, selezionare l'account in cui archiviare i risultati.
  6. Al termine della raccolta, selezionare Genera collegamento per creare un collegamento scaricabile o un collegamento condivisibile che scade dopo sette giorni. Se i risultati non includono tutti i nodi, attendere i caricamenti rimanenti e quindi selezionare di nuovo Genera collegamento .

Per altre informazioni, vedere Strumenti e diagnostica del servizio Azure Kubernetes in Visual Studio Code.

Distribuire Periscope usando Kustomize

Usare Kustomize quando è necessario esaminare o eseguire l'override delle risorse Kubernetes, scegliere una versione specifica di Periscope o personalizzare gli agenti di raccolta. Questo metodo richiede di gestire direttamente le credenziali di archiviazione e i manifesti.

  1. Creare una directory per la configurazione di Periscope e quindi creare un kustomization.yaml file in tale directory.

  2. Creare una firma di accesso condiviso dell'account con le impostazioni seguenti. Usare la scadenza pratica più breve.

    • Servizio: BLOB (ss=b).
    • Tipi di risorse: servizio, contenitore e oggetto (srt=sco).
    • Autorizzazioni: lettura, elenco, aggiunta, creazione e scrittura (sp=rlacw).
    • Protocollo consentito: solo HTTPS.
  3. Aggiungere la versione di base periscope, i tag di immagine, la destinazione di archiviazione, la chiave di firma di accesso condiviso e l'ID esecuzione al file. Sostituire ogni segnaposto con i valori. La chiave di firma di accesso condiviso deve includere il punto interrogativo iniziale (?).

    apiVersion: kustomize.config.k8s.io/v1beta1
    kind: Kustomization
    
    resources:
      - https://github.com/Azure/aks-periscope//deployment/base?ref=<release-tag>
    
    images:
      - name: periscope-linux
        newName: mcr.microsoft.com/aks/periscope
        newTag: <image-tag>
      - name: periscope-windows
        newName: mcr.microsoft.com/aks/periscope
        newTag: <image-tag>
    
    secretGenerator:
      - name: azureblob-secret
        behavior: replace
        literals:
          - AZURE_BLOB_ACCOUNT_NAME=<storage-account-name>
          - AZURE_BLOB_CONTAINER_NAME=<container-name>
          - AZURE_BLOB_SAS_KEY=?<sas-token>
    
    configMapGenerator:
      - name: diagnostic-config
        behavior: merge
        literals:
          - DIAGNOSTIC_RUN_ID=<YYYY-MM-DDThh-mm-ssZ>
    

    Caution

    Il kustomization.yaml file contiene il token di firma di accesso condiviso in testo non crittografato. Non eseguire il commit del file nel controllo del codice sorgente. Proteggere la firma di accesso condiviso come una chiave dell'account e revocarla o ruotarla quando non è più necessaria.

  4. Connettersi al cluster del servizio Azure Kubernetes kubectl .

    az aks get-credentials \
        --resource-group <resource-group-name> \
        --name <aks-cluster-name>
    
  5. Distribuire Periscope.

    kubectl apply -k <path-to-kustomize-directory>
    
  6. Verificare che i pod Periscope siano in esecuzione.

    kubectl get pods --namespace aks-periscope
    

Per tutti i valori di configurazione disponibili, i componenti facoltativi Windows e le istruzioni per eseguire un'altra raccolta, vedere la guida alla distribuzione di Periscope Kustomize del servizio Azure Kubernetes.

Distribuire Periscope usando Azure Copilot

Usare Azure Copilot per distribuire Periscope in un cluster del servizio Azure Kubernetes. Se Azure Copilot non è in grado di determinare il cluster dal contesto corrente, viene richiesto di selezionarlo. Dopo aver selezionato il cluster, Azure Copilot potrebbe chiedere di confermare i dettagli della distribuzione prima della distribuzione di Periscope.

Le richieste di esempio includono:

  • "Aiutami a distribuire Periscope nel cluster del servizio Azure Kubernetes"
  • "Distribuisci Periscope nel cluster"
  • "Aggiungere Periscope al cluster"
  • "Aggiungi la registrazione di Periscope nel cluster"
  • "Aiutami a raccogliere i log di diagnostica dal cluster del servizio Azure Kubernetes"