Aracılığıyla paylaş


Kubernetes kümeleri için izlemeyi etkinleştirme

Bu makalede, aşağıdaki Azure İzleyici özelliklerini kullanarak Kubernetes kümelerinizin tam olarak izlenmesinin nasıl etkinleştirileceği açıklanır:

Azure portalını kullanarak tüm özellikleri aynı anda etkinleştirebilirsiniz. Ayrıca Azure CLI, Azure Resource Manager şablonu, Terraform veya Azure İlkesi kullanarak bunları tek tek etkinleştirebilirsiniz. Bu yöntemlerin her biri bu makalede açıklanmıştır.

Önemli

Kubernetes kümeleri çok fazla günlük verisi oluşturur ve bu da topladığınız günlükler hakkında seçici değilseniz önemli maliyetlere neden olabilir. Kümeniz için izlemeyi etkinleştirmeden önce, ortamınızın maliyet için en iyi duruma getirildiğinden ve günlük koleksiyonunuzu yalnızca ihtiyacınız olan veriyle sınırlandırdığınızdan emin olmak için aşağıdaki makalelere bakın:

Desteklenen kümeler

Bu makalede, aşağıdaki küme türleri için ekleme yönergeleri sağlanır. Her tür için işlemdeki farklar ilgili bölümlerde not edilir.

Önkoşullar

İzinler

Yönetilen Prometheus önkoşulları

  • Kümenin yönetilen kimlik doğrulaması kullanması gerekir.
  • Aşağıdaki kaynak sağlayıcılarının küme aboneliğine ve Azure İzleyici çalışma alanına kaydedilmesi gerekir:
    • Microsoft.KonteynerServisi
    • Microsoft.Analizler
    • Microsoft.AlertsManagement
    • Microsoft.Monitor (İngilizce)
    • Aşağıdaki kaynak sağlayıcılarının Grafana çalışma alanı aboneliği aboneliğine kayıtlı olması gerekir:
      • Microsoft Kontrol Paneli

Arc Özellikli Kubernetes kümeleri önkoşulları

Not

Yönetilen Prometheus Arc-Enabled Kubernetes uzantısı aşağıdaki yapılandırmaları desteklemez:

  • Azure Red Hat OpenShift (ARO) dahil olmak üzere Red Hat Openshift dağıtımları
  • Windows düğümleri*

ARC özellikli ve Windows düğümleri olan kümeler için, küme içindeki bir Linux düğümünde Azure Managed Prometheus'u kurabilir ve Windows düğümlerinde çalışan ölçüm uç noktalarından metrikleri çekmek için yapılandırabilirsiniz.

Çalışma Alanları

Aşağıdaki tabloda, Yönetilen Prometheus ve Kapsayıcı içgörülerini desteklemek için gereken çalışma alanları açıklanmaktadır. Her çalışma alanını ekleme işleminin bir parçası olarak oluşturabilir veya var olan bir çalışma alanını kullanabilirsiniz. Log Analytics çalışma alanı mimarisi tasarlama konusundaki yönergeler için, kaç tane çalışma alanı oluşturmanız gerektiği ve bunların nereye yerleştirilmesi gerektiği hakkında bilgi edinin.

Özellik Çalışma alanı Notlar
Yönetilen Prometheus Azure İzleyici çalışma alanı Contributor izni, eklentinin Azure İzleyici çalışma alanına veri göndermesini sağlamak için yeterlidir. Azure Managed Grafana'da ölçümleri görüntülemek için Azure Monitor Çalışma Alanınızı bağlamak için Owner düzeyinde izin gerekir. Ekleme adımını yürüten kullanıcının ölçümleri sorgulamak için Azure İzleyici Çalışma Alanı'nda Azure Yönetilen Grafana Sistem Kimliği Monitoring Reader rolü verebilmesi gerektiğinden bu gereklidir.
Konteyner içgörüleri Log Analytics çalışma alanı Aynı Microsoft Entra kiracısında farklı bir Azure aboneliğindeki Log Analytics çalışma alanına küme ekleyebilirsiniz, ancak Azure CLI veya Azure Resource Manager şablonunu kullanmanız gerekir. Bu yapılandırmayı şu anda Azure portalıyla gerçekleştiremezsiniz.

Mevcut bir kümeyi başka bir abonelikteki Log Analytics çalışma alanına bağlıyorsanız , Microsoft.ContainerService kaynak sağlayıcısının Log Analytics çalışma alanına aboneliğe kayıtlı olması gerekir. Daha fazla bilgi için Kaynak sağlayıcısı kaydetme konusuna bakın.

Varsayılan çalışma alanı için kullanılacak desteklenen eşleme çiftlerinin listesi için bkz Container Insights tarafından desteklenen bölge eşlemeleri. Çalışma alanını ağ güvenlik çevresi ile yapılandırma yönergeleri için bkz. Ağ Güvenlik Çevresi ile Azure İzleyici'yi yapılandırma.
Yönetilen Grafana Azure Yönetimli Grafana çalışma alanı Kümenizden toplanan Prometheus ölçümlerini Grafana panolarında kullanılabilir hale getirmek için Grafana çalışma alanınızı Azure İzleyici çalışma alanınıza bağlayın.

Prometheus ve Grafana'nın etkinleştirilmesi

Prometheus ölçümlerinin kümenizden kazınmasını ve Yönetilen Grafana'nın ölçümleri görselleştirmesini sağlamak için aşağıdaki yöntemlerden birini kullanın. Bir Grafana çalışma alanını bağlayın için Azure İzleyici çalışma alanınızı ve Azure Yönetilen Grafana çalışma alanınızı bağlama seçeneklerine bakın.

Önemli

  • Bir şablon veya Azure İlkesi kullanarak dağıtım yaparsanız, Veri Toplama Uç Noktaları, Veri Toplama Kuralları ve Veri Toplama Kuralı İlişkilendirmelerinin MSProm-<Location of Azure Monitor Workspace>-<Name of cluster resource> olarak adlandırıldığından emin olun, aksi takdirde ekleme işlemi başarıyla tamamlanmaz.

  • Özel bağlantılı tek bir Azure İzleyici Kaynağınız varsa AKS kümesi ve Azure İzleyici Çalışma Alanı farklı bölgelerdeyse Prometheus etkinleştirmesi çalışmaz. Aynı küme bölgesinde yeni bir DCE ve DCRA oluşturun. Yeni DCE'yi kümeyle ilişkilendirin ve yeni DCRA'yi olarak configurationAccessEndpointadlandırın. Bkz . Azure İzleyici'de Kubernetes izlemesi için özel bağlantıyı etkinleştirme.

CLI ile etkinleştirme

Aşağıdaki komutlarda mevcut bir Azure İzleyici çalışma alanını belirtmezseniz, kaynak grubu için varsayılan çalışma alanı kullanılır. Kümenin bölgesinde varsayılan bir çalışma alanı henüz mevcut değilse, format olarak DefaultAzureMonitorWorkspace-<mapped_region> adıyla, DefaultRG-<cluster_region> adlı bir kaynak grubunda oluşturulacaktır.

Önkoşullar

  • 2.49.0 veya üzeri az CLI sürümü gereklidir.
  • aks-preview uzantısı, komutu kullanılarak AKS kümelerindenaz extension remove --name aks-preview.
  • k8s uzantısı uzantısı komutu az extension add --name k8s-extensionkullanılarak yüklenmelidir.
  • k8s uzantısı sürüm 1.4.1 veya üzeri gereklidir.

İsteğe bağlı parametreler

AKS ve Arc-Enabled Kubernetes komutlarının her biri aşağıdaki isteğe bağlı parametrelere izin verir. Parametre adı her biri için farklıdır, ancak bunların kullanımı aynıdır.

Parametre Ad ve Açıklama
Açıklama anahtarları AKS: --ksm-metric-annotations-allow-list
Ark: --AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList

Kaynağın kube_resource_annotations ölçümünde kullanılan Kubernetes ek açıklama anahtarlarının virgülle ayrılmış listesi. Örneğin, kube_pod_annotations, pod kaynağı için ek açıklamalar metriğidir. Varsayılan olarak, bu ölçüm yalnızca ad ve ad alanı etiketlerini içerir. Daha fazla ek açıklama eklemek için çoğul biçimindeki kaynak adlarının listesini ve bunlara izin vermek istediğiniz Kubernetes ek açıklama anahtarlarını sağlayın. Ek açıklamalara izin vermek için her kaynak için tek bir * kaynak sağlanabilir, ancak bunun performans açısından ciddi etkileri vardır. Örneğin, pods=[kubernetes.io/team,...],namespaces=[kubernetes.io/team],....
Etiket anahtarları AKS: --ksm-metric-labels-allow-list
Ark: --AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist

Kaynağın kube_resource_labels ölçümünde kullanılan daha fazla Kubernetes etiket anahtarını virgülle ayırarak listeleyin. Örneğin, kube_pod_labels, pod kaynağının etiket metriğidir. Varsayılan olarak bu ölçüm yalnızca ad ve ad alanı etiketlerini içerir. Daha fazla etiket eklemek için, çoğul biçimlerinde kaynak adlarının listesini ve bunlara izin vermek istediğiniz Kubernetes etiket anahtarlarını sağlayın Her kaynak için herhangi bir etikete izin vermek için tek bir * tane sağlanabilir, ancak bunun performans açısından ciddi etkileri vardır. Örneğin, pods=[app],namespaces=[k8s-label-1,k8s-label-n,...],....
Kayıt kuralları AKS: --enable-windows-recording-rules

Windows panolarının düzgün çalışması için gereken kayıt kuralı gruplarını etkinleştirmenize olanak tanır.

AKS kümesi

Prometheus ölçümlerini kazıyan ölçümler eklentisini yüklemek için, yeni bir küme oluşturup oluşturmadığınıza veya mevcut bir kümeyi güncellemenize bağlı olarak -enable-azure-monitor-metrics seçeneği az aks create veya az aks update seçeneğini kullanın.

### Use default Azure Monitor workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group>

### Use existing Azure Monitor workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --azure-monitor-workspace-resource-id <workspace-name-resource-id>

### Use an existing Azure Monitor workspace and link with an existing Grafana workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --azure-monitor-workspace-resource-id <azure-monitor-workspace-name-resource-id> --grafana-resource-id  <grafana-workspace-name-resource-id>

### Use optional parameters
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --ksm-metric-labels-allow-list "namespaces=[k8s-label-1,k8s-label-n]" --ksm-metric-annotations-allow-list "pods=[k8s-annotation-1,k8s-annotation-n]"

Arc özellikli küme

### Use default Azure Monitor workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics

## Use existing Azure Monitor workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id>

### Use an existing Azure Monitor workspace and link with an existing Grafana workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id> grafana-resource-id=<grafana-workspace-name-resource-id>

### Use optional parameters
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id> grafana-resource-id=<grafana-workspace-name-resource-id> AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList="pods=[k8s-annotation-1,k8s-annotation-n]" AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist "namespaces=[k8s-label-1,k8s-label-n]"

Azure Arc özellikli kümeler için aşağıdaki ek isteğe bağlı parametreler kullanılabilir:

Parametre Açıklama Varsayılan Kaynak Arc kümesi ayarı
ClusterDistribution Kümenin dağılımı. Azure.Cluster.Distribution evet
CloudEnvironment Küme için bulut ortamı. Azure.Cluster.Cloud evet
MountCATrustAnchorsDirectory CA güven kökleri dizininin monte edilip edilmeyeceği. true Hayır
MountUbuntuCACertDirectory Ubuntu CA sertifika dizininin monte edilip edilmeyeceği. true bir aks_edge dağıtımı olmadığı sürece. Hayır

Kapsayıcı içgörülerini etkinleştirme

Kümenizde Kapsayıcı içgörülerini etkinleştirmek için aşağıdaki yöntemlerden birini kullanın. Bu işlem tamamlandıktan sonra, gerekenden daha fazla veri toplamadığınızdan emin olmak üzere yapılandırmanızı özelleştirmek için Kapsayıcı içgörüleri için aracı veri koleksiyonunu yapılandırma konusuna bakın.

Önemli

AKS ve Arc özellikli kümelerinizin izlenmesini etkinleştirmek için aşağıdaki komutlardan birini kullanın. Mevcut bir Log Analytics çalışma alanını belirtmezseniz, kaynak grubu için varsayılan çalışma alanı kullanılır. Eğer kümenin bölgesinde varsayılan bir çalışma alanı zaten mevcut değilse, DefaultWorkspace-<GUID>-<Region> formatında bir adla yeni bir çalışma alanı oluşturulacaktır.

Önkoşullar

  • Azure CLI sürüm 2.43.0 veya üzeri
  • Yönetilen kimlik doğrulaması, varsayılan olarak CLI sürümü 2.49.0 veya üzeri için geçerlidir.
  • Azure k8s uzantısı sürüm 1.3.7 veya üzeri
  • Yönetilen kimlik doğrulaması, k8s-extension sürüm 1.43.0 veya üzeri sürümlerde varsayılandır.
  • ARO (Azure Red Hat Openshift) veya Windows düğümleri olan Arc özellikli Kubernetes kümeleri için yönetilen kimlik kimlik doğrulaması desteklenmez. Eski kimlik doğrulamasını kullanın.
  • CLI sürüm 2.54.0 veya üzeri için günlük şeması ConfigMap kullanılarak ContainerLogV2 olarak yapılandırılır.

Not

Bir kümeye ContainerLogV2 şemasını, kümenin Veri Toplama Kuralı (DCR) veya ConfigMap'i kullanarak etkinleştirebilirsiniz. Her iki ayar da etkinleştirilirse, ConfigMap öncelikli olur. Stdout ve stderr günlükleri yalnızca hem DCR hem de ConfigMap açıkça kapalı olarak ayarlandığında ContainerLog tablosuna alınır.

AKS kümesi

### Use default Log Analytics workspace
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name>

### Use existing Log Analytics workspace
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id>

### Use legacy authentication
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id> --enable-msi-auth-for-monitoring false

Örnek

az aks enable-addons --addon monitoring --name "my-cluster" --resource-group "my-resource-group" --workspace-resource-id "/subscriptions/my-subscription/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace"

Arc özellikli küme

### Use default Log Analytics workspace
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers

### Use existing Log Analytics workspace
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID=<workspace-resource-id>

### Use managed identity authentication (default as k8s-extension version 1.43.0)
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=true

### Use advanced configuration settings
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings  amalogs.resources.daemonset.limits.cpu=150m amalogs.resources.daemonset.limits.memory=600Mi amalogs.resources.deployment.limits.cpu=1 amalogs.resources.deployment.limits.memory=750Mi

### With custom mount path for container stdout & stderr logs
### Custom mount path not required for Azure Stack Edge version > 2318. Custom mount path must be /home/data/docker for Azure Stack Edge cluster with version <= 2318
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.logsettings.custommountpath=<customMountPath>

Kullanılabilir yapılandırma ayarları için Helm grafiğinin kaynak istekleri ve sınırları bölümüne bakın.

Örnek

az k8s-extension create --name azuremonitor-containers --cluster-name "my-cluster" --resource-group "my-resource-group" --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID="/subscriptions/my-subscription/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace"

İleri proxy'ye sahip Arc özellikli küme

Küme bir ileri proxy ile yapılandırılmışsa, proxy ayarları uzantıya otomatik olarak uygulanır. AMPLS + ara sunucu içeren bir küme söz konusu olduğunda, ara sunucu yapılandırması yoksayılmalıdır. Uzantıyı amalogs.ignoreExtensionProxySettings=true yapılandırma ayarıyla yükleme.

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.ignoreExtensionProxySettings=true

ARO, OpenShift veya Windows düğümlerine sahip arc özellikli küme

ARO (Azure Red Hat OpenShift) veya OpenShift veya Windows düğümlerine sahip Arc özellikli Kubernetes kümeleri için yönetilen kimlik kimlik doğrulaması desteklenmez. Bu örnekte amalogs.useAADAuth=false belirterek eski kimlik doğrulamayı kullanın.

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=false

Uzantı örneğini silme

Aşağıdaki komut yalnızca uzantı örneğini siler, ancak Log Analytics çalışma alanını silmez. Log Analytics kaynağındaki veriler olduğu gibi bırakılır.

az k8s-extension delete --name azuremonitor-containers --cluster-type connectedClusters --cluster-name <cluster-name> --resource-group <resource-group>

Azure portalı ile tam izlemeyi etkinleştirme

Yeni AKS kümesi (Prometheus, Container insights ve Grafana)

Azure portalında yeni bir AKS kümesi oluşturduğunuzda, İzleme sekmesinde Kapsayıcı Günlüklerini Etkinleştir, Prometheus ölçümlerini etkinleştir, Grafana'yı Etkinleştir ve Önerilen Uyarıları Etkinleştir onay kutuları varsayılan olarak denetlenir.

Yeni AKS kümesi için İzleme sekmesinin ekran görüntüsü.

Mevcut küme (Prometheus, Container insights ve Grafana)

  1. Azure portalında kümenize gidin.
  2. Hizmet menüsünde İzleyici>İzleyici Ayarları'nı seçin.
  3. Prometheus ölçümleri, Grafana ve Kapsayıcı Günlükleri ve olayları sizin için seçilir. Azure İzleyici çalışma alanınız, Grafana çalışma alanınız ve Log Analytics çalışma alanınız varsa bunlar sizin için seçilir.
  4. Alternatif çalışma alanları seçmek veya yenilerini oluşturmak istiyorsanız Gelişmiş ayarlar'ı seçin. Günlük profilleri ve Klasik profiller ayarı, izleme maliyetlerinizi azaltmak için varsayılan koleksiyon ayrıntılarını değiştirmenize olanak tanır. Ayrıntılar için Kapsayıcı Insights'ta maliyet optimizasyon ayarlarını etkinleştirme bölümüne bakın.
  5. Yapılandır öğesini seçin.

Windows ölçüm koleksiyonunu etkinleştirme (önizleme)

Not

windows-exporter-daemonset.yaml dosyasında CPU/Bellek sınırı olmadığı için Windows düğümlerinin aşırı yüklenmesine neden olabilir.
Daha fazla ayrıntı için bkz. Kaynak rezervasyonu

İş yüklerini dağıtırken kapsayıcılarda kaynak belleği ve CPU sınırları ayarlayın. Bu, NodeAllocatable'dan da çıkarılır ve küme genelinde zamanlayıcının hangi düğümlere hangi podları yerleştireceklerini belirlemesine yardımcı olur. Sınırsız pod zamanlama, Windows düğümlerini aşırı yükleyebilir ve aşırı durumlarda düğümlerin sağlıksız hale gelmesine neden olabilir.

Yönetilen Prometheus eklenti kapsayıcısının (prometheus_collector) 6.4.0-main-02-22-2023-3ee44b9e sürümünden itibaren AKS kümeleri için Windows ölçüm koleksiyonu etkinleştirilmiştir. Azure İzleyici Ölçümleri eklentisine ekleme, Windows DaemonSet podlarının düğüm havuzlarınızda çalışmaya başlamasını sağlar. Hem Windows Server 2019 hem de Windows Server 2022 desteklenir. Podların Windows düğüm havuzlarınızdan ölçüm toplamasını sağlamak için bu adımları izleyin.

  1. AKS düğümlerine Windows ölçümlerine erişmek için windows-exporter uygulamasını el ile yükleyin ve windows-exporter-daemonset YAML dosyasını dağıtın. Aşağıdaki toplayıcıları etkinleştirin:

    • [defaults]
    • container
    • memory
    • process
    • cpu_info

    Daha fazla toplayıcı için lütfen Windows ölçümleri için Prometheus exporter'a bakınız.

    windows-exporter-daemonset YAML dosyasını dağıtın. Düğüm üzerinde uygulanan herhangi bir leke (taint) varsa, uygun toleransları (toleration) uygulamanız gerektiğini unutmayın.

        kubectl apply -f windows-exporter-daemonset.yaml
    
  2. Kümenize ama-metrics-settings-configmap'i uygulayın. windowsexporter ve windowskubeproxy Booleans'ı true olarak ayarlayın. Daha fazla bilgi için Ölçüm eklentisi ayarları yapılandırma haritasına bakınız.

  3. Kutudan çıkan panolar için gereken kayıt kurallarını etkinleştirin.

    • CLI kullanılarak kurulum yapılıyorsa --enable-windows-recording-rules seçeneğini ekleyin.
    • ARM şablonu, Bicep veya Azure İlkesi kullanarak ekleniyorsanız, parametre dosyasında enableWindowsRecordingRules değerini true olarak ayarlayın.
    • Küme zaten eklendiyse, kural gruplarını oluşturmak için bu ARM şablonunu ve bu parametre dosyasını kullanın. Bu, gerekli kayıt kurallarını ekler ve küme üzerinde bir ARM işlemi değildir ve kümenin geçerli izleme durumunu etkilemez.
  4. [Yalnızca ARC özellikli kümelerdeki Windows düğümleri için] ARC özellikli bir küme için Yönetilen Prometheus'ı etkinleştiriyorsanız, Windows düğümlerinde çalışan uç noktalardan ölçümleri kazımak için küme içindeki bir Linux düğümünde çalışan Managed Prometheus'ı yapılandırabilirsiniz. Aşağıdaki kazıma işini ama-metrics-prometheus-config-configmap.yaml dosyasına ekleyin ve yapılandırma haritasını kümenize uygulayın.

  scrape_configs:
    - job_name: windows-exporter
      scheme: http
      scrape_interval: 30s
      label_limit: 63
      label_name_length_limit: 511
      label_value_length_limit: 1023
      tls_config:
        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        insecure_skip_verify: true
      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
      kubernetes_sd_configs:
      - role: node
      relabel_configs:
      - source_labels: [__meta_kubernetes_node_name]
        target_label: instance
      - action: keep
        source_labels: [__meta_kubernetes_node_label_kubernetes_io_os]
        regex: windows
      - source_labels:
        - __address__
        action: replace
        target_label: __address__
        regex: (.+?)(\:\d+)?
        replacement: $$1:9182
kubectl apply -f ama-metrics-prometheus-config-configmap.yaml

Dağıtımı doğrulayın

Aracının düzgün dağıtıldığını doğrulamak için kubectl komut satırı aracını kullanın.

Yönetilen Prometheus

DaemonSet'in Linux düğüm havuzlarına düzgün dağıtıldığını doğrulayın

kubectl get ds ama-metrics-node --namespace=kube-system

Pod sayısı, kümedeki Linux düğümlerinin sayısına eşit olmalıdır. Çıktı aşağıdaki örneğe benzemelidir:

User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME               DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ama-metrics-node   1         1         1       1            1           <none>          10h

Windows düğümlerinin düzgün dağıtıldığını doğrulayın

kubectl get ds ama-metrics-win-node --namespace=kube-system

Pod sayısı, kümedeki Windows düğümlerinin sayısına eşit olmalıdır. Çıktı aşağıdaki örneğe benzemelidir:

User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME                   DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ama-metrics-win-node   3         3         3       3            3           <none>          10h

Prometheus için iki ReplicaSet'in dağıtıldığını doğrulayın

kubectl get rs --namespace=kube-system

Çıktı aşağıdaki örneğe benzemelidir:

User@aksuser:~$kubectl get rs --namespace=kube-system
NAME                            DESIRED   CURRENT   READY   AGE
ama-metrics-5c974985b8          1         1         1       11h
ama-metrics-ksm-5fcf8dffcd      1         1         1       11h

Konteyner içgörüleri

DaemonSets'in Linux düğüm havuzlarına düzgün dağıtıldığını doğrulayın

kubectl get ds ama-logs --namespace=kube-system

Pod sayısı, kümedeki Linux düğümlerinin sayısına eşit olmalıdır. Çıktı aşağıdaki örneğe benzemelidir:

User@aksuser:~$ kubectl get ds ama-logs --namespace=kube-system
NAME       DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ama-logs   2         2         2         2            2           <none>          1d

Windows düğümlerinin düzgün dağıtıldığını doğrulayın

kubectl get ds ama-logs-windows --namespace=kube-system

Pod sayısı, kümedeki Windows düğümlerinin sayısına eşit olmalıdır. Çıktı aşağıdaki örneğe benzemelidir:

User@aksuser:~$ kubectl get ds ama-logs-windows --namespace=kube-system
NAME                   DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR     AGE
ama-logs-windows           2         2         2         2            2       <none>            1d

Kapsayıcı içgörüleri çözümünün dağıtımını doğrulayın

kubectl get deployment ama-logs-rs --namespace=kube-system

Çıktı aşağıdaki örneğe benzemelidir:

User@aksuser:~$ kubectl get deployment ama-logs-rs --namespace=kube-system
NAME          READY   UP-TO-DATE   AVAILABLE   AGE
ama-logs-rs   1/1     1            1           24d

CLI ile yapılandırmayı görüntüleme

Çözümün aks show etkinleştirilip etkinleştirilmediğini, Log Analytics çalışma alanı kaynak kimliğini ve küme hakkındaki özet bilgileri öğrenmek için komutunu kullanın.

az aks show --resource-group <resourceGroupofAKSCluster> --name <nameofAksCluster>

Komut, çözümle ilgili JSON biçimli bilgileri döndürür. Kısım addonProfiles, aşağıdaki örnekte olduğu gibi omsagent ile ilgili bilgileri içermelidir:

"addonProfiles": {
    "omsagent": {
        "config": {
            "logAnalyticsWorkspaceResourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
            "useAADAuth": "true"
        },
        "enabled": true,
        "identity": null
    },
}

Sağlanan kaynaklar

İzlemeyi etkinleştirdiğinizde aboneliğinizde aşağıdaki kaynaklar oluşturulur:

Kaynak Adı Kaynak Türü Kaynak Grubu Bölge/Konum Açıklama
MSCI-<aksclusterregion>-<clustername> Veri Toplama Kuralı Kümeyle aynı Log Analytics çalışma alanıyla aynı Bu veri toplama kuralı, Log Analytics çalışma alanını hedef olarak kullanan ve AKS kümesi kaynağıyla ilişkili olan Azure İzleyici aracısı tarafından günlük toplama içindir.
MSPROM-<aksclusterregion>-<clustername> Veri Toplama Kuralı Kümeyle aynı Azure İzleyici çalışma alanıyla aynı Bu veri toplama kuralı, Azure izleyici çalışma alanını hedef olarak seçen ve AKS kümesi kaynağıyla ilişkili olan ölçümler eklentisi tarafından prometheus ölçümlerini toplamak içindir.
MSPROM-<aksclusterregion>-<clustername> Veri Toplama uç noktası Kümeyle aynı Azure İzleyici çalışma alanıyla aynı Bu veri toplama uç noktası, yukarıdaki veri toplama kuralı tarafından ölçüm eklentisinden Prometheus ölçümlerini almak için kullanılır

Yeni bir Azure İzleyici çalışma alanı oluşturduğunuzda, bunun bir parçası olarak aşağıdaki ek kaynaklar oluşturulur

Kaynak Adı Kaynak Türü Kaynak Grubu Bölge/Konum Açıklama
<azuremonitor-workspace-name> Veri Toplama Kuralı <MA_azuremonitor-çalışmaalanı-adı>_<azuremonitor-çalışmaalanı-bölgesi>_yönetilen Azure İzleyici Çalışma Alanı ile aynı Azure İzleyici Çalışma Alanına Uzaktan Yazma için OSS Prometheus sunucusunu kullandığınızda oluşturulan DCR.
<azuremonitor-workspace-name> Veri Toplama Uç Noktası <MA_azuremonitor-çalışmaalanı-adı>_<azuremonitor-çalışmaalanı-bölgesi>_yönetilen Azure İzleyici Çalışma Alanı ile aynı Azure İzleyici Çalışma Alanına Uzaktan Yazma için OSS Prometheus sunucusunu kullandığınızda oluşturulan bir DCE.

Windows ve Linux kümeleri arasındaki farklar

Windows Server kümesini izleme ile Linux kümesi arasındaki temel farklar şunlardır:

  • Windows'un Bellek RSS ölçümü yoktur. Sonuç olarak, Windows düğümleri ve kapsayıcılar için kullanılamaz. Çalışma Kümesi ölçümü kullanılabilir.
  • Windows düğümleri için disk depolama kapasitesi bilgisi mevcut değil.
  • Docker ortamları değil yalnızca pod ortamları izlenir.
  • Önizleme sürümüyle birlikte en fazla 30 Windows Server kapsayıcısı desteklenir. Bu sınırlama Linux kapsayıcıları için geçerli değildir.

Not

Windows Server 2022 işletim sistemi için kapsayıcı içgörüleri desteği önizleme aşamasındadır.

Kapsayıcılı Linux aracısı (çoğaltma kümesi podu), düğüm ve kapsayıcı performansıyla ilgili ölçümleri toplamak için küme içindeki Kubelet güvenli bağlantı noktasındaki (10250) tüm Windows düğümlerine API çağrıları yapar. Kubelet güvenli portu (:10250) hem Windows düğümü hem de kapsayıcı performansına yönelik ölçüm verilerinin toplanabilmesi için kümenin sanal ağında hem gelen hem de giden yönlerde açık olmalıdır.

Windows düğümleri olan bir Kubernetes kümeniz varsa, Kubelet güvenli bağlantı noktasının (:10250) kümenin sanal ağında hem gelen hem de giden için açık olduğundan emin olmak için ağ güvenlik grubunu ve ağ ilkelerini gözden geçirin ve yapılandırın.

Sonraki adımlar

  • Çözümü eklemeye çalışırken sorunlarla karşılaşırsanız Sorun Giderme kılavuzunu gözden geçirin.
  • AKS kümenizin ve üzerinde çalışan iş yüklerinin sistem durumunu ve kaynak kullanımını toplamak için izleme etkinleştirildiğinde Kapsayıcı içgörülerini kullanmayı öğrenin.