Wdrażanie narzędzia Periscope w klastrze Azure Kubernetes Service (AKS)

AKS Periscope to narzędzie diagnostyczne typu open source, które zbiera dzienniki i informacje diagnostyczne z Azure Kubernetes Service (AKS) węzłów i zasobników. Aby wdrożyć narzędzie Periscope i zbierać dane diagnostyczne, uruchom az aks kollect i określ klaster oraz konto magazynu Azure. Narzędzie Periscope można również wdrożyć przy użyciu rozszerzenia AKS dla Visual Studio Code, kustomize lub Azure Copilot.

Periscope domyślnie zbiera następujące informacje:

  • Dzienniki kontenera kube-system z przestrzeni nazw.
  • Dzienniki usługi systemu środowiska uruchomieniowego kubelet i kontenera.
  • Łączność wychodząca sprawdza internet, serwer interfejsu API, tunel, Azure Container Registry i Microsoft Container Registry.
  • Dane iptables węzła, dzienniki aprowizacji, dzienniki cloud-init i ustawienia DNS.
  • Opisy zasobników, usług i wdrożeń w kube-system przestrzeni nazw.
  • Argumenty poleceń platformy Kubelet oraz użycie zasobów węzła i zasobnika.

Wymagania wstępne

  • Potrzebujesz istniejącego klastra usługi AKS z systemem Linux lub węzłami Windows. Platforma Periscope obsługuje oba systemy operacyjne, ale zebrane informacje różnią się. Aby uzyskać więcej informacji, zobacz różnice funkcjonalne Windows i Linux.
  • Aby wdrożyć narzędzie Periscope przy użyciu Azure CLI lub kustomize, zainstaluj Azure CLI i zaloguj się przy użyciu polecenia az login.
  • Aby wdrożyć narzędzie Periscope przy użyciu Azure CLI, Visual Studio Code lub Kustomize, zainstaluj kubectl wersję 1.21 lub nowszą.
  • Utwórz lub zidentyfikuj konto magazynu Azure dla zebranej diagnostyki.
  • Sprawdź, czy klaster może ściągać obrazy z usługi Microsoft Container Registry (MCR).

Ważna

Narzędzie Periscope działa w węzłach puli agentów i zbiera dane maszyny wirtualnej i danych na poziomie kontenera. Przed wdrożeniem narzędzia Periscope upewnij się, że właściciel klastra rozumie i wyraża zgodę na zbieranie i udostępnianie tych informacji. Aby uzyskać więcej informacji, zobacz pomoc techniczna firmy Microsoft zbieranie informacji diagnostycznych.

Wdrażanie narzędzia Periscope przy użyciu Azure CLI

Polecenie az aks kollect wdraża narzędzie Periscope, zbiera informacje diagnostyczne i przekazuje wyniki do Azure Blob Storage.

  1. Zainstaluj lub zaktualizuj aks-preview rozszerzenie.

    az extension add --name aks-preview --upgrade
    
  2. Ustaw zmienne środowiskowe dla klastra usługi AKS.

    RESOURCE_GROUP=<resource-group-name>
    AKS_CLUSTER=<aks-cluster-name>
    
  3. Wdróż narzędzie Periscope i zbierz diagnostykę przy użyciu jednej z następujących opcji konta magazynu.

    • Jeśli ustawienia diagnostyczne usługi AKS już określają konto magazynu, uruchom następujące polecenie:

      az aks kollect \
          --resource-group $RESOURCE_GROUP \
          --name $AKS_CLUSTER
      
    • Aby użyć własnego konta magazynu, określ jego identyfikator zasobu:

      STORAGE_ACCOUNT_ID=<storage-account-resource-id>
      
      az aks kollect \
          --resource-group $RESOURCE_GROUP \
          --name $AKS_CLUSTER \
          --storage-account $STORAGE_ACCOUNT_ID
      
    • Aby użyć nazwy konta magazynu i tokenu sygnatury dostępu współdzielonego (SAS), określ token SAS, który ma uprawnienia do zapisu:

      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

    Token SAS udziela dostępu do konta magazynu. Chroń je tak jak hasło, nie zatwierdzaj go do kontroli źródła i odwoływanie lub obracanie go, gdy nie jest już potrzebne.

Po zakończeniu zbierania narzędzie Periscope przechowuje wyniki w kontenerze obiektów blob o nazwie po w pełni kwalifikowanej nazwie domeny (FQDN) serwera interfejsu API klastra. Kontener zawiera również plik ZIP, który można pobrać na potrzeby analizy lub udostępnienia pomoc techniczna firmy Microsoft.

Dostosowywanie zebranej diagnostyki

Domyślnie narzędzie Periscope zbiera dzienniki i obiekty Kubernetes z kube-system przestrzeni nazw. Użyj opcjonalnych az aks kollect parametrów, aby kierować inne zasoby.

  • Zbierz wszystkie dzienniki kontenera w przestrzeni nazw lub określonym kontenerze:

    az aks kollect \
        --resource-group $RESOURCE_GROUP \
        --name $AKS_CLUSTER \
        --container-logs "<namespace> <namespace>/<container-name>"
    
  • Opisz wszystkie obiekty typu zasobu w przestrzeni nazw lub określonym obiekcie:

    az aks kollect \
        --resource-group $RESOURCE_GROUP \
        --name $AKS_CLUSTER \
        --kube-objects "<namespace>/<resource-type> <namespace>/<resource-type>/<resource-name>"
    
  • Zbierz określone pliki dziennika węzła systemu Linux:

    az aks kollect \
        --resource-group $RESOURCE_GROUP \
        --name $AKS_CLUSTER \
        --node-logs "/var/log/azure-vnet.log /var/log/azure-vnet-ipam.log"
    
  • Zbierz określone pliki dziennika węzła Windows:

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

Te parametry można połączyć z dowolną opcją konta magazynu w obszarze Wdróż peryskop przy użyciu Azure CLI. Aby uzyskać pełną dokumentację poleceń, zobacz az aks kollect.

Wdrażanie narzędzia Periscope przy użyciu Visual Studio Code

Rozszerzenie usługi AKS dla Visual Studio Code udostępnia graficzny przepływ pracy do wdrażania narzędzia Periscope i pobierania wyników.

  1. Zainstaluj rozszerzenie Azure Kubernetes Service dla Visual Studio Code.
  2. Zaloguj się, aby Azure w Visual Studio Code.
  3. Upewnij się, że ustawienia diagnostyczne klastra usługi AKS określają konto magazynu. Jeśli musisz je skonfigurować, wykonaj następujące kroki:
    1. W rozszerzeniu AKS kliknij prawym przyciskiem myszy klaster i wybierz polecenie Pokaż w Azure Portal.
    2. W portalu Azure wybierz pozycję Monitorowanie>ustawień>diagnostycznych Dodaj ustawienie diagnostyczne.
    3. Wprowadź nazwę ustawienia diagnostycznego, wybierz pozycję Archiwum na konto magazynu i wybierz konto magazynu.
    4. Wybierz dzienniki, które chcesz włączyć, a następnie wybierz pozycję Zapisz.
  4. W rozszerzeniu AKS kliknij prawym przyciskiem myszy klaster i wybierz polecenie Uruchom peryscope usługi AKS.
  5. Jeśli klaster ma więcej niż jedno konto magazynu w ustawieniach diagnostycznych, wybierz konto, w którym chcesz przechowywać wyniki.
  6. Po zakończeniu zbierania wybierz pozycję Generuj link , aby utworzyć link do pobrania lub link możliwy do udostępnienia, który wygaśnie po siedmiu dniach. Jeśli wyniki nie zawierają każdego węzła, zaczekaj na pozostałe przekazywanie, a następnie ponownie wybierz pozycję Generuj łącze .

Aby uzyskać więcej informacji, zobacz narzędzia i diagnostyka usługi AKS w Visual Studio Code.

Wdrażanie narzędzia Periscope przy użyciu narzędzia Kustomize

Użyj narzędzia Kustomize, jeśli musisz sprawdzić lub zastąpić zasoby Kubernetes, wybrać określoną wersję Periscope lub dostosować moduły zbierające. Ta metoda wymaga bezpośredniego zarządzania poświadczeniami i manifestami magazynu.

  1. Utwórz katalog dla konfiguracji periscope, a następnie utwórz kustomization.yaml plik w tym katalogu.

  2. Utwórz sygnaturę dostępu współdzielonego konta przy użyciu następujących ustawień. Użyj najkrótszego praktycznego czasu wygaśnięcia.

    • Usługa: Obiekt blob (ss=b).
    • Typy zasobów: usługa, kontener i obiekt (srt=sco).
    • Uprawnienia: odczyt, lista, dodawanie, tworzenie i zapisywanie (sp=rlacw).
    • Dozwolony protokół: tylko protokół HTTPS.
  3. Dodaj wydanie podstawowe narzędzia Periscope, tagi obrazów, miejsce docelowe magazynu, klucz SYGNATURY dostępu współdzielonego i uruchom identyfikator do pliku. Zastąp każdy symbol zastępczy wartościami. Klucz sygnatury dostępu współdzielonego musi zawierać wiodący znak zapytania (?).

    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

    Plik kustomization.yaml zawiera token SAS w postaci zwykłego tekstu. Nie zatwierdzaj pliku do kontroli źródła. Chroń sygnaturę dostępu współdzielonego, np. klucz konta, i odwoływanie lub obracanie go, gdy nie jest już potrzebne.

  4. Połącz się z kubectl klastrem usługi AKS.

    az aks get-credentials \
        --resource-group <resource-group-name> \
        --name <aks-cluster-name>
    
  5. Wdróż peryskop.

    kubectl apply -k <path-to-kustomize-directory>
    
  6. Sprawdź, czy zasobniki Periscope są uruchomione.

    kubectl get pods --namespace aks-periscope
    

Aby uzyskać wszystkie dostępne wartości konfiguracji, opcjonalne składniki Windows i instrukcje dotyczące uruchamiania innej kolekcji, zobacz Przewodnik wdrażania usługi AKS Periscope Kustomize.

Wdrażanie narzędzia Periscope przy użyciu Azure Copilot

Użyj Azure Copilot, aby wdrożyć narzędzie Periscope w klastrze usługi AKS. Jeśli Azure Copilot nie może określić klastra z bieżącego kontekstu, zostanie wyświetlony monit o wybranie go. Po wybraniu klastra Azure Copilot może poprosić o potwierdzenie szczegółów wdrożenia przed wdrożeniem narzędzia Periscope.

Przykładowe monity obejmują:

  • "Pomóż mi wdrożyć narzędzie Periscope w klastrze usługi AKS"
  • "Wdróż Periscope na mój klaster"
  • Dodaj Periscope do mojego klastra
  • Dodaj logowanie peryskopowe do mojego klastra
  • Pomóż mi zbierać dzienniki diagnostyczne z klastra AKS