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
veyaunsecure port :10255
kümedeki tüm düğümlerde açılmasını gerektirir. Henüz yapılandırılmamışsasecure 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
veKUBERNETES_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:
Kapsayıcı içgörüleri çözümüyle Log Analytics çalışma alanınızı yapılandırın.
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:
- Kaynakları Resource Manager şablonları ve Azure PowerShell ile dağıtma
- Resource Manager şablonları ve Azure CLI ile kaynakları dağıtma
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.
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.
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>
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.
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": {} } } ] }
Bu dosyayı yerel bir klasöre containerSolution.json olarak kaydedin.
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>" } } }
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.
Bu dosyayı yerel bir klasöre containerSolutionParams.json olarak kaydedin.
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.
Ç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.
Ç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.Aşağıdaki komutu çalıştırarak Azure grafikleri deposunu yerel listenize ekleyin:
helm repo add microsoft https://microsoft.github.io/charts/repo
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 veyaunsecure 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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin