Aracılığıyla paylaş


Kapsayıcı içgörüleri ile karma Kubernetes kümelerini yapılandırma

Kapsayıcı içgörüleri, Azure Kubernetes Service (AKS) için zengin bir izleme deneyimi sağlar. Bu makalede, Azure dışında barındırılan Kubernetes kümelerinin izlenmesini etkinleştirme ve benzer bir izleme deneyimi elde etme açıklanmaktadır.

Desteklenen yapılandırmalar

Aşağıdaki yapılandırmalar, Kapsayıcı içgörüleri ile resmi olarak desteklenir. Kubernetes ve işletim sistemi sürümlerinin farklı bir sürümüne sahipseniz lütfen bir destek bileti açın...

  • Ortam:
    • Şirket içi Kubernetes.
    • OpenShift sürüm 4 ve üzeri, şirket içi veya diğer bulut ortamlarında.
  • Kubernetes ve destek ilkesi sürümleri, desteklenen AKS sürümleriyle aynıdır.
  • Aşağıdaki kapsayıcı çalışma zamanları desteklenir: CRI-O ve ContainerD gibi Moby ve CRI uyumlu çalışma zamanları.
  • Desteklenen ana ve çalışan düğümleri için Linux işletim sistemi sürümü Ubuntu (18.04 LTS ve 16.04 LTS) ve Red Hat Enterprise Linux CoreOS 43.81'tir.
  • Desteklenen Azure Erişim Denetimi hizmeti: Kubernetes rol tabanlı erişim denetimi (RBAC) ve RBAC olmayan.

Önkoşullar

Başlamadan önce aşağıdaki önkoşulları karşıladığınızdan emin olun:

  • Log Analytics çalışma alanınız var. Kapsayıcı içgörüleri, bölgeye göre Azure Ürünleri'nde listelenen bölgelerde log analytics çalışma alanını destekler. Azure Resource Manager, PowerShell veya Azure portalı aracılığıyla kendi çalışma alanınızı oluşturabilirsiniz.

    Not

    Aynı küme adına sahip birden çok kümenin aynı Log Analytics çalışma alanına izlenmesi desteklenmez. Küme adları benzersiz olmalıdır.

  • Kapsayıcı izlemeyi etkinleştirmek için Log Analytics katkıda bulunanı rolünün bir üyesisiniz. Log Analytics çalışma alanına erişimi denetleme hakkında daha fazla bilgi için bkz . Çalışma alanına ve günlük verilerine erişimi yönetme.

  • İzleme verilerini görüntülemek için Log Analytics çalışma alanında Kapsayıcı içgörüleri ile yapılandırılmış Log Analytics okuyucu rolüne sahip olmanız gerekir.

  • Belirtilen Kubernetes kümesi için Container insights grafiğini eklemek için bir Helm istemciniz var.

  • Linux için Log Analytics aracısının kapsayıcılı sürümünün Azure İzleyici ile iletişim kurması için aşağıdaki ara sunucu ve güvenlik duvarı yapılandırma bilgileri gereklidir:

    Aracı kaynağı Bağlantı noktaları
    *.ods.opinsights.azure.com Bağlantı Noktası 443
    *.oms.opinsights.azure.com Bağlantı Noktası 443
    *.dc.services.visualstudio.com Bağlantı Noktası 443
  • Kapsayıcılı aracı, performans ölçümlerini toplamak için Kubelet'in cAdvisor secure port: 10250 veya unsecure port :10255 kümedeki tüm düğümlerde açılmasını gerektirir. Henüz yapılandırılmamışsa secure port: 10250 Kubelet cAdvisor'da yapılandırmanızı öneririz.

  • Kapsayıcılı aracı, envanter verilerini toplamak üzere küme içindeki Kubernetes API hizmetiyle iletişim kurmak için kapsayıcıda aşağıdaki ortam değişkenlerinin belirtilmesi gerekir: KUBERNETES_SERVICE_HOST ve KUBERNETES_PORT_443_TCP_PORT.

Önemli

Karma Kubernetes kümelerini izlemek için desteklenen en düşük aracı sürümü ciprod10182019 veya üzeridir.

İzlemeyi etkinleştirme

Karma Kubernetes kümesi için Kapsayıcı içgörülerini etkinleştirmek için:

  1. Kapsayıcı içgörüleri çözümüyle Log Analytics çalışma alanınızı yapılandırın.

  2. Log Analytics çalışma alanıyla Kapsayıcı içgörüleri Helm grafiğini etkinleştirin.

Azure İzleyici'deki izleme çözümleri hakkında daha fazla bilgi için bkz . Azure İzleyici'de izleme çözümleri.

Azure İzleyici Kapsayıcıları çözümünü ekleme

Çözümü sağlanan Azure Resource Manager şablonuyla Azure PowerShell cmdlet'ini New-AzResourceGroupDeployment veya Azure CLI'yi kullanarak dağıtabilirsiniz.

Kaynakları şablon kullanarak dağıtma kavramını bilmiyorsanız bkz:

Azure CLI'yı kullanmayı seçerseniz, önce CLI'yi yerel olarak yüklemeniz ve kullanmanız gerekir. Azure CLI 2.0.59 veya sonraki bir sürümünü çalıştırıyor olmanız gerekir. Sürümünüzü tanımlamak için komutunu çalıştırın az --version. Azure CLI'yı yüklemeniz veya yükseltmeniz gerekiyorsa bkz . Azure CLI'yi yükleme.

Bu yöntem iki JSON şablonu içerir. Bir şablon izlemeyi etkinleştirmek için yapılandırmayı belirtir. Diğer şablon, belirtmek üzere yapılandırdığınız parametre değerlerini içerir:

  • workspaceResourceId: Log Analytics çalışma alanınızın tam kaynak kimliği.
  • workspaceRegion: Çalışma alanının oluşturulduğu bölgedir ve azure portalından görüntülediğinizde çalışma alanı özelliklerinde Konum olarak da adlandırılır.

İlk olarak containerSolutionParams.json dosyasındaki parametre değeri için gereken Log Analytics çalışma alanınızın tam kaynak kimliğini belirlemek için workspaceResourceId aşağıdaki adımları gerçekleştirin. Ardından çözümü eklemek için PowerShell cmdlet'ini veya Azure CLI komutunu çalıştırın.

  1. Aşağıdaki komutu kullanarak erişiminiz olan tüm abonelikleri listeleyin:

    az account list --all -o table
    

    Çıkış aşağıdaki örneğe benzer:

    Name                                  CloudName    SubscriptionId                        State    IsDefault
    ------------------------------------  -----------  ------------------------------------  -------  -----------
    Microsoft Azure                       AzureCloud   0fb60ef2-03cc-4290-b595-e71108e8f4ce  Enabled  True
    

    SubscriptionId değerini kopyalayın.

  2. Aşağıdaki komutu kullanarak Log Analytics çalışma alanını barındıran aboneliğe geçin:

    az account set -s <subscriptionId of the workspace>
    
  3. Aşağıdaki örnek, aboneliklerinizdeki çalışma alanlarının listesini varsayılan JSON biçiminde görüntüler:

    az resource list --resource-type Microsoft.OperationalInsights/workspaces -o json
    

    Çıktıda çalışma alanı adını bulun. Ardından bu Log Analytics çalışma alanının tam kaynak kimliğini alan kimliği altına kopyalayın.

  4. Aşağıdaki JSON söz dizimini kopyalayıp dosyanıza yapıştırın:

    {
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "workspaceResourceId": {
            "type": "string",
            "metadata": {
                "description": "Azure Monitor Log Analytics Workspace Resource ID"
            }
        },
        "workspaceRegion": {
            "type": "string",
            "metadata": {
                "description": "Azure Monitor Log Analytics Workspace region"
            }
        }
    },
    "resources": [
        {
            "type": "Microsoft.Resources/deployments",
            "name": "[Concat('ContainerInsights', '-',  uniqueString(parameters('workspaceResourceId')))]",
            "apiVersion": "2017-05-10",
            "subscriptionId": "[split(parameters('workspaceResourceId'),'/')[2]]",
            "resourceGroup": "[split(parameters('workspaceResourceId'),'/')[4]]",
            "properties": {
                "mode": "Incremental",
                "template": {
                    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                    "contentVersion": "1.0.0.0",
                    "parameters": {},
                    "variables": {},
                    "resources": [
                        {
                            "apiVersion": "2015-11-01-preview",
                            "type": "Microsoft.OperationsManagement/solutions",
                            "location": "[parameters('workspaceRegion')]",
                            "name": "[Concat('ContainerInsights', '(', split(parameters('workspaceResourceId'),'/')[8], ')')]",
                            "properties": {
                                "workspaceResourceId": "[parameters('workspaceResourceId')]"
                            },
                            "plan": {
                                "name": "[Concat('ContainerInsights', '(', split(parameters('workspaceResourceId'),'/')[8], ')')]",
                                "product": "[Concat('OMSGallery/', 'ContainerInsights')]",
                                "promotionCode": "",
                                "publisher": "Microsoft"
                            }
                        }
                    ]
                },
                "parameters": {}
            }
         }
      ]
    }
    
  5. Bu dosyayı yerel bir klasöre containerSolution.json olarak kaydedin.

  6. Aşağıdaki JSON söz dizimini dosyanıza yapıştırın:

    {
      "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "workspaceResourceId": {
          "value": "<workspaceResourceId>"
      },
      "workspaceRegion": {
        "value": "<workspaceRegion>"
      }
     }
    }
    
  7. 3. adımda kopyaladığınız değeri kullanarak workspaceResourceId değerlerini düzenleyin. workspaceRegion için az monitor log-analytics workspace show Azure CLI komutunu çalıştırdıktan sonra Region değerini kopyalayın.

  8. Bu dosyayı yerel bir klasöre containerSolutionParams.json olarak kaydedin.

  9. Bu şablonu dağıtmaya hazırsınız.

    • Azure PowerShell ile dağıtmak için şablonu içeren klasörde aşağıdaki komutları kullanın:

      # configure and login to the cloud of Log Analytics workspace.Specify the corresponding cloud environment of your workspace to below command.
      Connect-AzureRmAccount -Environment <AzureCloud | AzureChinaCloud | AzureUSGovernment>
      
      # set the context of the subscription of Log Analytics workspace
      Set-AzureRmContext -SubscriptionId <subscription Id of Log Analytics workspace>
      
      # execute deployment command to add Container Insights solution to the specified Log Analytics workspace
      New-AzureRmResourceGroupDeployment -Name OnboardCluster -ResourceGroupName <resource group of Log Analytics workspace> -TemplateFile .\containerSolution.json -TemplateParameterFile .\containerSolutionParams.json
      

      Yapılandırma değişikliğinin tamamlanması birkaç dakika sürebilir. tamamlandığında, aşağıdaki örneğe benzer bir ileti şu sonucu içerir:

      provisioningState       : Succeeded
      
    • Azure CLI ile dağıtmak için aşağıdaki komutları çalıştırın:

      az login
      az account set --name <AzureCloud | AzureChinaCloud | AzureUSGovernment>
      az login
      az account set --subscription "Subscription Name"
      # execute deployment command to add container insights solution to the specified Log Analytics workspace
      az deployment group create --resource-group <resource group of log analytics workspace> --name <deployment name> --template-file  ./containerSolution.json --parameters @./containerSolutionParams.json
      

      Yapılandırma değişikliğinin tamamlanması birkaç dakika sürebilir. tamamlandığında, aşağıdaki örneğe benzer bir ileti şu sonucu içerir:

      provisioningState       : Succeeded
      

      İzlemeyi etkinleştirdikten sonra kümenin sistem durumu ölçümlerini görüntülemeniz yaklaşık 15 dakika sürebilir.

Helm grafiğini yükleme

Bu bölümde, Kapsayıcı içgörüleri için kapsayıcılı aracıyı yüklersiniz. Devam etmeden önce, parametre için amalogsagent.secret.wsid gereken çalışma alanı kimliğini ve parametre için amalogsagent.secret.key gereken birincil anahtarı belirleyin. Bu bilgileri tanımlamak için bu adımları izleyin ve ardından Helm grafiğini kullanarak aracıyı yüklemek için komutlarını çalıştırın.

  1. Çalışma alanı kimliğini belirlemek için aşağıdaki komutu çalıştırın:

    az monitor log-analytics workspace list --resource-group <resourceGroupName>

    Çıktıda, alan adının altında çalışma alanı adını bulun. Ardından bu Log Analytics çalışma alanının çalışma alanı kimliğini customerID alanının altına kopyalayın.

  2. Çalışma alanının birincil anahtarını belirlemek için aşağıdaki komutu çalıştırın:

    az monitor log-analytics workspace get-shared-keys --resource-group <resourceGroupName> --workspace-name <logAnalyticsWorkspaceName>

    Çıktıda primarySharedKey alanının altında birincil anahtarı bulun ve değeri kopyalayın.

    Not

    Aşağıdaki komutlar yalnızca Helm sürüm 2 için geçerlidir. Parametresinin --name kullanımı Helm sürüm 3 ile geçerli değildir.

    Kubernetes kümeniz bir ara sunucu üzerinden iletişim kurarsa, parametreyi amalogsagent.proxy ara sunucunun URL'si ile yapılandırın. Küme bir ara sunucu üzerinden iletişim kurmazsa bu parametreyi belirtmeniz gerekmez. Daha fazla bilgi için bu makalenin devamında Yer alan Proxy uç noktasını yapılandırma bölümüne bakın.

  3. Aşağıdaki komutu çalıştırarak Azure grafikleri deposunu yerel listenize ekleyin:

    helm repo add microsoft https://microsoft.github.io/charts/repo
    
  4. Aşağıdaki komutu çalıştırarak grafiği yükleyin:

    $ helm install --name myrelease-1 \
    --set amalogsagent.secret.wsid=<logAnalyticsWorkspaceId>,amalogsagent.secret.key=<logAnalyticsWorkspaceKey>,amalogsagent.env.clusterName=<my_prod_cluster> microsoft/azuremonitor-containers
    

    Log Analytics çalışma alanı Azure China 21Vianet'teyse aşağıdaki komutu çalıştırın:

    $ helm install --name myrelease-1 \
     --set amalogsagent.domain=opinsights.azure.cn,amalogsagent.secret.wsid=<logAnalyticsWorkspaceId>,amalogsagent.secret.key=<logAnalyticsWorkspaceKey>,amalogsagent.env.clusterName=<your_cluster_name> incubator/azuremonitor-containers
    

    Log Analytics çalışma alanı Azure US Government'daysa aşağıdaki komutu çalıştırın:

    $ helm install --name myrelease-1 \
    --set amalogsagent.domain=opinsights.azure.us,amalogsagent.secret.wsid=<logAnalyticsWorkspaceId>,amalogsagent.secret.key=<logAnalyticsWorkspaceKey>,amalogsagent.env.clusterName=<your_cluster_name> incubator/azuremonitor-containers
    

API modelini kullanarak Helm grafiğini etkinleştirme

AKS Altyapısı küme belirtimi JSON dosyasında api modeli olarak da adlandırılan bir eklenti belirtebilirsiniz. Bu eklentide, toplanan izleme verilerinin depolandığı Log Analytics çalışma alanının ve WorkspaceKey base64 kodlu sürümünü WorkspaceGUID sağlayın. Ve'yi WorkspaceKey önceki bölümdeki 1. ve 2. adımları kullanarak bulabilirsinizWorkspaceGUID.

Azure Stack Hub kümesi için desteklenen API tanımları örnek kubernetes-container-monitoring_existing_workspace_id_and_key.json bulunabilir. Özellikle, kubernetesConfig içinde addons özelliğini bulun:

"orchestratorType": "Kubernetes",
       "kubernetesConfig": {
         "addons": [
           {
             "name": "container-monitoring",
             "enabled": true,
             "config": {
               "workspaceGuid": "<Azure Log Analytics Workspace Id in Base-64 encoded>",
               "workspaceKey": "<Azure Log Analytics Workspace Key in Base-64 encoded>"
             }
           }
         ]
       }

Aracı veri toplamayı yapılandırma

Grafik sürümü 1.0.0'dan başlayarak aracı veri toplama ayarları ConfigMap'ten denetleniyor. Aracı veri toplama ayarları hakkında daha fazla bilgi için bkz . Kapsayıcı içgörüleri için aracı veri toplamayı yapılandırma.

Grafiği başarıyla dağıttıktan sonra Azure portalından Kapsayıcı içgörüleri bölümünde karma Kubernetes kümenizin verilerini gözden geçirebilirsiniz.

Not

Veri alımı gecikme süresi, aracıdan Log Analytics çalışma alanına işlemeye kadar yaklaşık 5 ila 10 dakikadır. Kümenin durumu, Gerekli tüm izleme verileri Azure İzleyici'de kullanılabilir olana kadar Veri yok veya Bilinmiyor değerini gösterir.

Proxy uç noktasını yapılandırma

Grafik 2.7.1 sürümünden itibaren grafik, grafik parametresiyle ara sunucu uç noktasını belirtmeyi amalogsagent.proxy destekleyecektir. Bu şekilde, proxy sunucunuz üzerinden iletişim kurabilir. Container insights aracısı ile Azure İzleyici arasındaki iletişim bir HTTP veya HTTPS proxy sunucusu olabilir. Kullanıcı adı ve parola ile hem anonim hem de temel kimlik doğrulaması desteklenir.

Ara sunucu yapılandırma değerinin söz dizimi [protocol://][user:password@]proxyhost[:port]vardır.

Not

Proxy sunucunuz kimlik doğrulaması gerekmiyorsa, yine de sahte bir kullanıcı adı ve parola belirtmeniz gerekir. Herhangi bir kullanıcı adı veya parola olabilir.

Özellik Açıklama
protokol HTTP veya HTTPS
kullanıcı Proxy kimlik doğrulaması için isteğe bağlı kullanıcı adı
password Proxy kimlik doğrulaması için isteğe bağlı parola
proxyhost Proxy sunucusunun adresi veya FQDN'si
port Ara sunucu için isteğe bağlı bağlantı noktası numarası

amalogsagent.proxy=http://user01:password@proxy01.contoso.com:8080 bunun bir örneğidir.

Protokolü http olarak belirtirseniz, HTTP istekleri SSL/TLS güvenli bağlantısı kullanılarak oluşturulur. Proxy sunucunuzun SSL/TLS protokollerini desteklemesi gerekir.

Sorun giderme

Karma Kubernetes kümeniz için izlemeyi etkinleştirmeye çalışırken bir hatayla karşılaşırsanız karşılaştığınız sorunları algılamanıza ve çözmenize yardımcı olması için TroubleshootError_nonAzureK8s.ps1 PowerShell betiğini kullanın. Aşağıdaki sorunları algılamak ve düzeltmeye çalışmak için tasarlanmıştır:

  • Belirtilen Log Analytics çalışma alanı geçerli.
  • Log Analytics çalışma alanı Kapsayıcı içgörüleri çözümüyle yapılandırılır. Aksi takdirde çalışma alanını yapılandırın.
  • Azure İzleyici Aracısı çoğaltma kümesi podları çalışıyor.
  • Azure İzleyici Aracısı daemonset podları çalışıyor.
  • Azure İzleyici Aracısı Sistem Durumu hizmeti çalışıyor.
  • Kapsayıcılı aracıda yapılandırılan Log Analytics çalışma alanı kimliği ve anahtarı, içgörülerin yapılandırıldığı çalışma alanıyla eşleşmektedir.
  • Tüm Linux çalışan düğümlerinin zamanlayıcılar podunun kubernetes.io/role=agent etiketine sahip olduğunu doğrulayın. Yoksa ekleyin.
  • Kümedeki tüm düğümlerde açık cAdvisor secure port:10250 olabilecek veya unsecure port: 10255 açılmayan koşulları belirleyin.

Azure PowerShell ile yürütmek için betiği içeren klasörde aşağıdaki komutları kullanın:

.\TroubleshootError_nonAzureK8s.ps1 - azureLogAnalyticsWorkspaceResourceId </subscriptions/<subscriptionId>/resourceGroups/<resourcegroupName>/providers/Microsoft.OperationalInsights/workspaces/<workspaceName> -kubeConfig <kubeConfigFile> -clusterContextInKubeconfig <clusterContext>

Sonraki adımlar

Artık hibrit Kubernetes kümelerinizin ve iş yüklerinizin sistem durumunu ve kaynak kullanımını toplamak için izleme etkinleştirildiğine göre Kapsayıcı içgörülerini kullanmayı öğrenin.