Periscope'ı bir Azure Kubernetes Service (AKS) kümesine dağıtma

AKS Periscope, Azure Kubernetes Service (AKS) düğümlerden ve podlardan günlükleri ve tanılama bilgilerini toplayan bir açık kaynak tanılama aracıdır. Periscope'u dağıtmak ve tanılamaları toplamak için komutunu çalıştırın az aks kollect ve kümenizi ve bir Azure depolama hesabı belirtin. Periscope'ı Visual Studio Code, KustomizeveyaAzure Copilot için AKS uzantısını kullanarak da dağıtabilirsiniz.

Periskop varsayılan olarak aşağıdaki bilgileri toplar:

  • Ad alanından kube-system kapsayıcı günlükleri.
  • Kubelet ve kapsayıcı çalışma zamanı sistem hizmet günlükleri.
  • İnternet, API sunucusu, tünel, Azure Container Registry ve Microsoft Container Registry için giden bağlantı denetimleri.
  • Düğüm iptable'ları verileri, sağlama günlükleri, cloud-init günlükleri ve DNS ayarları.
  • Ad alanında podların, hizmetlerin ve dağıtımların kube-system açıklamaları.
  • Kubelet komut bağımsız değişkenleri ile düğüm ve pod kaynağı kullanımı.

Prerequisites

  • Linux veya Windows düğümleri olan mevcut bir AKS kümesine ihtiyacınız vardır. Periskop her iki işletim sistemini de destekler, ancak toplanan bilgiler farklılık gösterir. Daha fazla bilgi için bkz. Windows ve Linux işlevsel farklılıkları.
  • Periscope'u Azure CLI veya Kustomize kullanarak dağıtmak için Azure CLI yükleyin ve kullanarak az loginoturum açın.
  • Periscope'u Azure CLI, Visual Studio Code veya Kustomize kullanarak dağıtmak için 1.21 veya sonraki bir sürümü yükleyinkubectl.
  • Toplanan tanılamalar için bir Azure depolama hesabı oluşturun veya tanımlayın.
  • Kümenizin Microsoft Container Registry'den (MCR) görüntü çekebildiğini doğrulayın.

Important

Scope aracı havuzu düğümlerinizde çalışır ve sanal makine (VM) ile kapsayıcı düzeyinde veriler toplar. Scope'ı dağıtmadan önce, küme sahibinin bu bilgilerin toplanması ve paylaşılması hakkında bilgi edindiğini ve onayladığını onaylayın. Daha fazla bilgi için bkz. tanılama bilgileri toplama Microsoft Desteği.

Azure CLI kullanarak Scope dağıtma

Komutu Periscope az aks kollect dağıtır, tanılama bilgilerini toplar ve sonuçları Azure Blob Depolama yükler.

  1. Uzantıyı yükleyin veya güncelleştirin aks-preview .

    az extension add --name aks-preview --upgrade
    
  2. AKS kümeniz için ortam değişkenlerini ayarlayın.

    RESOURCE_GROUP=<resource-group-name>
    AKS_CLUSTER=<aks-cluster-name>
    
  3. Aşağıdaki depolama hesabı seçeneklerinden birini kullanarak Scope'ı dağıtın ve tanılamaları toplayın.

    • AKS tanılama ayarları zaten bir depolama hesabı belirtiyorsa aşağıdaki komutu çalıştırın:

      az aks kollect \
          --resource-group $RESOURCE_GROUP \
          --name $AKS_CLUSTER
      
    • Sahip olduğunuz bir depolama hesabını kullanmak için kaynak kimliğini belirtin:

      STORAGE_ACCOUNT_ID=<storage-account-resource-id>
      
      az aks kollect \
          --resource-group $RESOURCE_GROUP \
          --name $AKS_CLUSTER \
          --storage-account $STORAGE_ACCOUNT_ID
      
    • Depolama hesabı adı ve paylaşılan erişim imzası (SAS) belirteci kullanmak için yazma iznine sahip bir SAS belirteci belirtin:

      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

    SAS belirteci, depolama hesabınıza erişim verir. Parola gibi koruyun, kaynak denetimine işlemeyin ve artık ihtiyacınız kalmadığında iptal edin veya döndürün.

Koleksiyon tamamlandığında, Scope sonuçları küme API sunucusu tam etki alanı adından (FQDN) sonra adlı bir blob kapsayıcısında depolar. Kapsayıcı ayrıca analiz için indirebileceğiniz veya Microsoft Desteği ile paylaşabileceğiniz bir ZIP dosyası içerir.

Toplanan tanılamaları özelleştirme

Varsayılan olarak, Scope ad alanından kube-system günlükleri ve Kubernetes nesnelerini toplar. Diğer kaynakları hedeflemek için isteğe bağlı az aks kollect parametreleri kullanın.

  • Bir ad alanında veya belirli bir kapsayıcıda tüm kapsayıcı günlüklerini toplayın:

    az aks kollect \
        --resource-group $RESOURCE_GROUP \
        --name $AKS_CLUSTER \
        --container-logs "<namespace> <namespace>/<container-name>"
    
  • Bir ad alanında veya belirli bir nesnede kaynak türünün tüm nesnelerini açıklayın:

    az aks kollect \
        --resource-group $RESOURCE_GROUP \
        --name $AKS_CLUSTER \
        --kube-objects "<namespace>/<resource-type> <namespace>/<resource-type>/<resource-name>"
    
  • Belirli Linux düğümü günlük dosyalarını toplayın:

    az aks kollect \
        --resource-group $RESOURCE_GROUP \
        --name $AKS_CLUSTER \
        --node-logs "/var/log/azure-vnet.log /var/log/azure-vnet-ipam.log"
    
  • Belirli Windows düğüm günlük dosyalarını toplayın:

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

Bu parametreleri, Azure CLI kullanarak Kapsamı Dağıt'tan herhangi bir depolama hesabı seçeneğiyle birleştirebilirsiniz. Tam komut başvurusu için bkz az aks kollect. .

Visual Studio Code kullanarak Periscope dağıtma

Visual Studio Code için AKS uzantısı, Periscope'un dağıtılması ve sonuçların indirilmesi için grafik bir iş akışı sağlar.

  1. Visual Studio Code için Azure Kubernetes Service uzantısını yükleyin.
  2. Visual Studio Code'da Azure oturum açın.
  3. AKS kümesi tanılama ayarlarının bir depolama hesabı belirttiğini onaylayın. Yapılandırmanız gerekiyorsa aşağıdaki adımları tamamlayın:
    1. AKS uzantısında kümenize sağ tıklayın ve Azure portal Göster'i seçin.
    2. Azure portalında tanılama ayarlarını izleme>Tanılama ayarı>ekle'yi seçin.
    3. Tanılama ayarı için bir ad girin, Depolama hesabına arşivle'yi seçin ve bir depolama hesabı seçin.
    4. Etkinleştirmek istediğiniz günlükleri seçin ve ardından Kaydet'i seçin.
  4. AKS uzantısında kümenize sağ tıklayın ve AKS Kapsamını Çalıştır'ı seçin.
  5. Kümenin tanılama ayarlarında birden fazla depolama hesabı varsa sonuçları depolamak istediğiniz hesabı seçin.
  6. Koleksiyon tamamlandığında, indirilebilir bir bağlantı veya yedi gün sonra süresi dolan paylaşılabilir bir bağlantı oluşturmak için Bağlantı Oluştur'u seçin. Sonuçlar her düğümü içermiyorsa kalan karşıya yüklemeleri bekleyin ve bağlantı oluştur'a yeniden tıklayın.

Daha fazla bilgi için bkz. Visual Studio Code aks araçları ve tanılamaları.

Kustomize kullanarak Periscope dağıtma

Kubernetes kaynaklarını incelemeniz veya geçersiz kılmanız, belirli bir Periscope sürümünü seçmeniz veya toplayıcıları özelleştirmeniz gerektiğinde Kustomize kullanın. Bu yöntem, depolama kimlik bilgilerini ve bildirimlerini doğrudan yönetmenizi gerektirir.

  1. Scope yapılandırması için bir dizin oluşturun ve ardından bu dizinde bir kustomization.yaml dosya oluşturun.

  2. Aşağıdaki ayarlarla bir hesap SAS'ı oluşturun. En kısa pratik son kullanma süresini kullanın.

    • Hizmet: Blob (ss=b).
    • Kaynak türleri: Hizmet, kapsayıcı ve nesne (srt=sco).
    • İzinler: Okuma, listeleme, ekleme, oluşturma ve yazma (sp=rlacw).
    • İzin verilen protokol: Yalnızca HTTPS.
  3. Dosyaya Scope temel sürümünü, görüntü etiketlerini, depolama hedefini, SAS anahtarını ve çalıştırma kimliğini ekleyin. Her yer tutucuyu değerlerinizle değiştirin. SAS anahtarında baştaki soru işareti (?) bulunmalıdır.

    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

    Dosya, kustomization.yaml SAS belirtecini düz metin olarak içerir. Dosyayı kaynak denetimine işlemeyin. SAS'yi hesap anahtarı gibi koruyun ve artık ihtiyacınız kalmadığında iptal edin veya döndürün.

  4. AKS kümenize bağlanın kubectl .

    az aks get-credentials \
        --resource-group <resource-group-name> \
        --name <aks-cluster-name>
    
  5. Scope'ı dağıtın.

    kubectl apply -k <path-to-kustomize-directory>
    
  6. Scope podlarının çalıştığını doğrulayın.

    kubectl get pods --namespace aks-periscope
    

Kullanılabilir tüm yapılandırma değerleri, isteğe bağlı Windows bileşenleri ve başka bir koleksiyonu çalıştırma yönergeleri için AKS Periscope Kustomize dağıtım kılavuzuna bakın.

Azure Copilot kullanarak Scope dağıtma

Bir AKS kümesine Periscope dağıtmak için Azure Copilot kullanın. Azure Copilot geçerli bağlamdan kümeyi belirleyemezse, bir küme seçmeniz istenir. Kümeyi seçtikten sonra Azure Copilot Scope'ı dağıtmadan önce dağıtım ayrıntılarını onaylamanızı isteyebilir.

Örnek istemler şunlardır:

  • Periscope'u AKS kümeme dağıtmama yardım edin.
  • "Periscope'ı kümeme dağıt"
  • "Kümeme Periscope'u ekle"
  • Küme sistemime periskop kaydı ekle
  • "AKS kümemden tanılama günlüklerini toplamama yardımcı olun"