Konfigurace hybridních clusterů Kubernetes pomocí Přehledů kontejnerů
Container Insights poskytuje bohaté prostředí pro monitorování služby Azure Kubernetes Service (AKS). Tento článek popisuje, jak povolit monitorování clusterů Kubernetes hostovaných mimo Azure a dosáhnout podobného prostředí monitorování.
Podporované konfigurace
Služba Container Insights oficiálně podporuje následující konfigurace. Pokud máte jinou verzi Kubernetes a verze operačního systému, otevřete lístek podpory.
- Prostředí:
- Místní Kubernetes
- OpenShift verze 4 a vyšší, místní nebo v jiných cloudových prostředích.
- Verze Kubernetes a zásady podpory jsou stejné jako podporované verze AKS.
- Podporují se následující moduly runtime kontejnerů: Moby a CRI kompatibilní moduly runtime, jako jsou CRI-O a ContainerD.
- Verze operačního systému Linux pro hlavní a pracovní uzly podporovaná jsou Ubuntu (18.04 LTS a 16.04 LTS) a Red Hat Enterprise Linux CoreOS 43.81.
- Podporovaná služba Řízení přístupu Azure: Řízení přístupu na základě role (RBAC) Kubernetes a jiné než RBAC.
Požadavky
Než začnete, ujistěte se, že splňujete následující požadavky:
Máte pracovní prostor služby Log Analytics. Container Insights podporuje pracovní prostor služby Log Analytics v oblastech uvedených v produktech Azure v jednotlivých oblastech. Vlastní pracovní prostor můžete vytvořit prostřednictvím Azure Resource Manageru, PowerShellu nebo webu Azure Portal.
Poznámka:
Povolení monitorování více clusterů se stejným názvem clusteru do stejného pracovního prostoru služby Log Analytics se nepodporuje. Názvy clusterů musí být jedinečné.
Jste členem role přispěvatele Log Analytics, abyste povolili monitorování kontejnerů. Další informace o tom, jak řídit přístup k pracovnímu prostoru služby Log Analytics, najdete v tématu Správa přístupu k pracovnímu prostoru a datům protokolu.
Pokud chcete zobrazit data monitorování, musíte mít v pracovním prostoru služby Log Analytics nakonfigurovanou roli čtenáře Log Analytics s nakonfigurovanou službou Container Insights.
Máte klienta Helm pro onboarding chartu Container Insights pro zadaný cluster Kubernetes.
Pro kontejnerizovanou verzi agenta Log Analytics pro Linux ke komunikaci se službou Azure Monitor se vyžadují následující informace o konfiguraci proxy serveru a brány firewall:
Prostředek agenta Porty *.ods.opinsights.azure.com
Port 443 *.oms.opinsights.azure.com
Port 443 *.dc.services.visualstudio.com
Port 443 Kontejnerizovaný agent vyžaduje, aby kubelet
cAdvisor secure port: 10250
nebounsecure port :10255
byl otevřen na všech uzlech v clusteru, aby se shromáždily metriky výkonu. Doporučujeme, abyste na webu Kubelet cAdvisor nakonfigurovalisecure port: 10250
, pokud ještě není nakonfigurovaný.Kontejnerizovaný agent vyžaduje, aby v kontejneru byly zadány následující proměnné prostředí, aby komunikovali se službou Rozhraní API Kubernetes v clusteru za účelem shromažďování dat inventáře:
KUBERNETES_SERVICE_HOST
aKUBERNETES_PORT_443_TCP_PORT
.
Důležité
Minimální verze agenta podporovaná pro monitorování hybridních clusterů Kubernetes je ciprod10182019 nebo novější.
Povolení monitorování
Povolení služby Container Insights pro hybridní cluster Kubernetes:
Nakonfigurujte pracovní prostor služby Log Analytics pomocí řešení Container Insights.
Povolte chart Helm služby Container Insights s pracovním prostorem služby Log Analytics.
Další informace o řešeních monitorování ve službě Azure Monitor najdete v tématu Monitorování řešení ve službě Azure Monitor.
Přidání řešení Azure Monitor Containers
Řešení můžete nasadit pomocí poskytnuté šablony Azure Resource Manageru pomocí rutiny New-AzResourceGroupDeployment
Azure PowerShellu nebo pomocí Azure CLI.
Pokud neznáte koncept nasazení prostředků pomocí šablony, přečtěte si téma:
- Nasazení prostředků pomocí šablon Resource Manageru a Azure PowerShellu
- Nasazení prostředků pomocí šablon Resource Manageru a Azure CLI
Pokud se rozhodnete použít Azure CLI, musíte nejdřív nainstalovat a používat rozhraní příkazového řádku místně. Musíte používat Azure CLI verze 2.0.59 nebo novější. Pokud chcete zjistit svou verzi, spusťte az --version
příkaz . Pokud potřebujete nainstalovat nebo upgradovat Azure CLI, přečtěte si téma Instalace Azure CLI.
Tato metoda obsahuje dvě šablony JSON. Jedna šablona určuje konfiguraci pro povolení monitorování. Druhá šablona obsahuje hodnoty parametrů, které konfigurujete pro zadání:
workspaceResourceId
: Úplné ID prostředku pracovního prostoru služby Log Analytics.workspaceRegion
: Oblast, ve které se pracovní prostor vytvoří, se při zobrazení z webu Azure Portal označuje také jako umístění ve vlastnostech pracovního prostoru.
Pokud chcete nejprve identifikovat úplné ID prostředku pracovního prostoru služby Log Analytics, který je nutný pro workspaceResourceId
hodnotu parametru v souboru containerSolutionParams.json , proveďte následující kroky. Pak spuštěním rutiny PowerShellu nebo příkazu Azure CLI přidejte řešení.
Pomocí následujícího příkazu vypíšete všechna předplatná, ke kterým máte přístup:
az account list --all -o table
Výstup bude vypadat podobně jako v následujícím příkladu:
Name CloudName SubscriptionId State IsDefault ------------------------------------ ----------- ------------------------------------ ------- ----------- Microsoft Azure AzureCloud 0fb60ef2-03cc-4290-b595-e71108e8f4ce Enabled True
Zkopírujte hodnotu SubscriptionId.
Pomocí následujícího příkazu přepněte do předplatného hostujícího pracovní prostor služby Log Analytics:
az account set -s <subscriptionId of the workspace>
Následující příklad zobrazí seznam pracovních prostorů ve vašich předplatných ve výchozím formátu JSON:
az resource list --resource-type Microsoft.OperationalInsights/workspaces -o json
Ve výstupu vyhledejte název pracovního prostoru. Pak zkopírujte celé ID prostředku tohoto pracovního prostoru služby Log Analytics pod ID pole.
Zkopírujte a vložte do souboru následující syntaxi JSON:
{ "$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": {} } } ] }
Uložte tento soubor jako containerSolution.json do místní složky.
Do souboru vložte následující syntaxi JSON:
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "workspaceResourceId": { "value": "<workspaceResourceId>" }, "workspaceRegion": { "value": "<workspaceRegion>" } } }
Upravte hodnoty pro workspaceResourceId pomocí hodnoty, kterou jste zkopírovali v kroku 3. V případě oblasti pracovního prostoru zkopírujte hodnotu Oblast po spuštění příkazu Azure CLI az monitor log-analytics workspace show.
Uložte tento soubor jako containerSolutionParams.json do místní složky.
Jste připraveni k nasazení této šablony.
K nasazení pomocí Azure PowerShellu použijte následující příkazy ve složce, která obsahuje šablonu:
# 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
Dokončení změny konfigurace může trvat několik minut. Po dokončení zpráva podobná následujícímu příkladu obsahuje tento výsledek:
provisioningState : Succeeded
Pokud chcete provést nasazení pomocí Azure CLI, spusťte následující příkazy:
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
Dokončení změny konfigurace může trvat několik minut. Po dokončení zpráva podobná následujícímu příkladu obsahuje tento výsledek:
provisioningState : Succeeded
Po povolení monitorování může trvat přibližně 15 minut, než budete moct zobrazit metriky stavu clusteru.
Instalace chartu Helm
V této části nainstalujete kontejnerizovaného agenta pro Container Insights. Než budete pokračovat, identifikujte ID pracovního prostoru požadované pro amalogsagent.secret.wsid
parametr a primární klíč požadovaný pro amalogsagent.secret.key
parametr. Pokud chcete tyto informace identifikovat, postupujte podle těchto kroků a potom spusťte příkazy pro instalaci agenta pomocí chartu Helm.
Spuštěním následujícího příkazu identifikujte ID pracovního prostoru:
az monitor log-analytics workspace list --resource-group <resourceGroupName>
Ve výstupu vyhledejte název pracovního prostoru pod názvem pole. Potom zkopírujte ID pracovního prostoru tohoto pracovního prostoru služby Log Analytics pod polem customerID.
Spuštěním následujícího příkazu identifikujte primární klíč pracovního prostoru:
az monitor log-analytics workspace get-shared-keys --resource-group <resourceGroupName> --workspace-name <logAnalyticsWorkspaceName>
Ve výstupu vyhledejte primární klíč v poli primarySharedKey a zkopírujte hodnotu.
Poznámka:
Následující příkazy platí jenom pro Helm verze 2. Použití parametru
--name
se nevztahuje na Helm verze 3.Pokud váš cluster Kubernetes komunikuje prostřednictvím proxy serveru, nakonfigurujte parametr
amalogsagent.proxy
s adresou URL proxy serveru. Pokud cluster nekomunikuje přes proxy server, nemusíte tento parametr zadávat. Další informace najdete v části Konfigurace koncového bodu proxy serveru dále v tomto článku.Spuštěním následujícího příkazu přidejte úložiště Azure Charts do místního seznamu:
helm repo add microsoft https://microsoft.github.io/charts/repo
Nainstalujte graf spuštěním následujícího příkazu:
$ helm install --name myrelease-1 \ --set amalogsagent.secret.wsid=<logAnalyticsWorkspaceId>,amalogsagent.secret.key=<logAnalyticsWorkspaceKey>,amalogsagent.env.clusterName=<my_prod_cluster> microsoft/azuremonitor-containers
Pokud je pracovní prostor služby Log Analytics v Azure China 21Vianet, spusťte následující příkaz:
$ 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
Pokud je pracovní prostor služby Log Analytics ve službě Azure US Government, spusťte následující příkaz:
$ 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
Povolení chartu Helm pomocí modelu rozhraní API
Doplněk můžete zadat v souboru JSON specifikace clusteru modulu AKS, který se také označuje jako model rozhraní API. V tomto doplňku zadejte verzi WorkspaceGUID
s kódováním Base64 a WorkspaceKey
pracovní prostor služby Log Analytics, kde jsou uložena shromážděná data monitorování. Postup 1 a 2 najdete WorkspaceGUID
WorkspaceKey
v předchozí části.
Podporované definice rozhraní API pro cluster Azure Stack Hub najdete v příkladu kubernetes-container-monitoring_existing_workspace_id_and_key.json. Konkrétně vyhledejte vlastnost addons v kubernetesConfig:
"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>"
}
}
]
}
Konfigurace shromažďování dat agenta
Počínaje grafem verze 1.0.0 se nastavení shromažďování dat agenta řídí z objektu ConfigMap. Další informace o nastavení shromažďování dat agenta najdete v tématu Konfigurace shromažďování dat agenta pro Container Insights.
Po úspěšném nasazení grafu můžete zkontrolovat data pro váš hybridní cluster Kubernetes v Přehledech kontejnerů na webu Azure Portal.
Poznámka:
Latence příjmu dat je přibližně 5 až 10 minut od agenta k potvrzení v pracovním prostoru služby Log Analytics. Stav clusteru zobrazuje hodnotu Žádná data nebo Neznámý , dokud nebudou v Azure Monitoru k dispozici všechna požadovaná data monitorování.
Konfigurace koncového bodu proxy serveru
Počínaje grafem verze 2.7.1 bude graf podporovat zadání koncového bodu proxy pomocí parametru amalogsagent.proxy
grafu. Tímto způsobem může komunikovat přes proxy server. Komunikace mezi agentem Container Insights a Azure Monitorem může být proxy server HTTP nebo HTTPS. Podporují se anonymní i základní ověřování pomocí uživatelského jména a hesla.
Hodnota konfigurace proxy serveru má syntaxi [protocol://][user:password@]proxyhost[:port]
.
Poznámka:
Pokud proxy server nevyžaduje ověření, musíte stále zadat pseudo uživatelské jméno a heslo. Může to být jakékoli uživatelské jméno nebo heslo.
Vlastnost | Popis |
---|---|
protokol | HTTP nebo HTTPS |
user | Volitelné uživatelské jméno pro ověřování proxy serveru |
Heslo | Volitelné heslo pro ověřování proxy serveru |
proxyhost | Adresa nebo plně kvalifikovaný název domény proxy serveru |
port | Volitelné číslo portu pro proxy server |
Příklad: amalogsagent.proxy=http://user01:password@proxy01.contoso.com:8080
.
Pokud zadáte protokol jako http, požadavky HTTP se vytvoří pomocí zabezpečeného připojení SSL/TLS. Váš proxy server musí podporovat protokoly SSL/TLS.
Řešení problému
Pokud při pokusu o povolení monitorování hybridního clusteru Kubernetes dojde k chybě, použijte skript PowerShellu TroubleshootError_nonAzureK8s.ps1 , který vám pomůže rozpoznat a opravit problémy, se kterými se setkáte. Je navržená k detekci a pokusu o opravu následujících problémů:
- Zadaný pracovní prostor služby Log Analytics je platný.
- Pracovní prostor Služby Log Analytics je nakonfigurovaný s řešením Container Insights. Pokud ne, nakonfigurujte pracovní prostor.
- Jsou spuštěné pody repliky agenta služby Azure Monitor.
- Jsou spuštěné pody démona agenta služby Azure Monitor.
- Služba Azure Monitor Agent Health je spuštěná.
- ID a klíč pracovního prostoru služby Log Analytics nakonfigurovaný v kontejnerizovaném agentu odpovídají pracovnímu prostoru, se kterým je přehled nakonfigurovaný.
- Ověřte, že všechny pracovní uzly Linuxu mají
kubernetes.io/role=agent
popisek podu plánovačů. Pokud neexistuje, přidejte ho. - Identifikujte podmínky, které můžou znamenat
cAdvisor secure port:10250
nebounsecure port: 10255
nejsou otevřeny na všech uzlech v clusteru.
Ke spuštění pomocí Azure PowerShellu použijte následující příkazy ve složce, která obsahuje skript:
.\TroubleshootError_nonAzureK8s.ps1 - azureLogAnalyticsWorkspaceResourceId </subscriptions/<subscriptionId>/resourceGroups/<resourcegroupName>/providers/Microsoft.OperationalInsights/workspaces/<workspaceName> -kubeConfig <kubeConfigFile> -clusterContextInKubeconfig <clusterContext>
Další kroky
Teď, když je monitorování povolené ke shromažďování stavu a využití prostředků hybridních clusterů Kubernetes a úloh na nich spuštěných, zjistíte , jak používat Přehledy kontejnerů.