Hibrid Kubernetes-fürtök konfigurálása Container Insights használatával
A Container Insights gazdag monitorozási élményt nyújt az Azure Kubernetes Service (AKS) számára. Ez a cikk azt ismerteti, hogyan engedélyezheti az Azure-on kívül üzemeltetett Kubernetes-fürtök monitorozását, és hogyan érhet el hasonló monitorozási élményt.
Supported configurations
A Container Insights az alábbi konfigurációkat hivatalosan is támogatja. Ha a Kubernetes és az operációs rendszer más verziójával rendelkezik, nyisson meg egy támogatási jegyet.
- Környezetben:
- Kubernetes helyszíni.
- OpenShift 4-es és újabb verzió, helyszíni vagy más felhőkörnyezetekben.
- A Kubernetes és a támogatási szabályzat verziói megegyeznek az AKS támogatott verzióival.
- A következő tároló-futtatókörnyezetek támogatottak: Moby és CRI kompatibilis futtatókörnyezetek, például CRI-O és ContainerD.
- A linuxos operációs rendszer fő és feldolgozó csomópontokhoz támogatott kiadása az Ubuntu (18.04 LTS és 16.04 LTS) és a Red Hat Enterprise Linux CoreOS 43.81.
- Az Azure Access Control szolgáltatás támogatott: Kubernetes szerepköralapú hozzáférés-vezérlés (RBAC) és nem RBAC.
Előfeltételek
Mielőtt hozzákezd, győződjön meg arról, hogy megfelel az alábbi előfeltételeknek:
Log Analytics-munkaterülete van. A Container Insights egy Log Analytics-munkaterületet támogat az Azure-termékek régiónkénti listájában. Saját munkaterületet az Azure Resource Manager, a PowerShell vagy az Azure Portal használatával hozhat létre.
Megjegyzés:
Az azonos fürtnévvel rendelkező fürtök monitorozásának engedélyezése ugyanazon Log Analytics-munkaterületen nem támogatott. A fürtneveknek egyedinek kell lenniük.
Ön a Log Analytics közreműködői szerepkörének tagja a tárolófigyelés engedélyezéséhez. A Log Analytics-munkaterülethez való hozzáférés szabályozásáról további információt a munkaterülethez és a naplóadatokhoz való hozzáférés kezelése című témakörben talál.
A figyelési adatok megtekintéséhez a Log Analytics-olvasó szerepkörrel kell rendelkeznie a Log Analytics-munkaterületen, amely tárolóelemzésekkel van konfigurálva.
A Megadott Kubernetes-fürt Container Insights-diagramjának előkészítéséhez helm-ügyfél szükséges.
A linuxos Log Analytics-ügynök tárolóalapú verziójához az alábbi proxy- és tűzfalkonfigurációs információk szükségesek az Azure Monitorral való kommunikációhoz:
Ügynök erőforrása Ports *.ods.opinsights.azure.com 443-as port *.oms.opinsights.azure.com 443-as port *.dc.services.visualstudio.com 443-as port A tárolóalapú ügynökhöz a Kubeletre
cAdvisor secure port: 10250
van szükség, vagyunsecure port :10255
a fürt összes csomópontján meg kell nyitni a teljesítménymetrikák gyűjtéséhez. Javasoljuk, hogy konfiguráljasecure port: 10250
a Kubelet cAdvisort, ha még nincs konfigurálva.A tárolóalapú ügynöknek a következő környezeti változókat kell megadnia a tárolón a kubernetes API szolgáltatással való kommunikációhoz a fürtben a leltáradatok gyűjtéséhez:
KUBERNETES_SERVICE_HOST
ésKUBERNETES_PORT_443_TCP_PORT
.
Fontos
A hibrid Kubernetes-fürtök monitorozásához támogatott minimális ügynökverzió a ciprod10182019 vagy újabb.
Monitorozás engedélyezése
A Container Insights engedélyezése a hibrid Kubernetes-fürthöz:
A Log Analytics-munkaterület konfigurálása a Container Insights megoldással.
Engedélyezze a Container Insights Helm-diagramot egy Log Analytics-munkaterülettel.
Az Azure Monitorban található monitorozási megoldásokkal kapcsolatos további információkért lásd az Azure Monitor monitorozási megoldásait.
Az Azure Monitor Containers-megoldás hozzáadása
A megoldást az Azure PowerShell-parancsmaggal New-AzResourceGroupDeployment
vagy az Azure CLI-vel telepítheti a megadott Azure Resource Manager-sablonnal.
Ha nem ismeri az erőforrások sablonnal történő üzembe helyezésének fogalmát, tekintse meg a következőt:
- Erőforrások üzembe helyezése Resource Manager-sablonokkal és az Azure PowerShell-lel
- Erőforrások üzembe helyezése Resource Manager-sablonokkal és az Azure CLI-vel
Ha az Azure CLI használata mellett dönt, először helyileg kell telepítenie és használnia a parancssori felületet. Az Azure CLI 2.0.59-es vagy újabb verzióját kell futtatnia. A verzió azonosításához futtassa a következőt az --version
: . Ha telepítenie vagy frissítenie kell az Azure CLI-t, olvassa el az Azure CLI telepítését.
Ez a módszer két JSON-sablont tartalmaz. Egy sablon határozza meg a monitorozás engedélyezésének konfigurációját. A másik sablon az alábbi paraméterek megadására konfigurált paraméterértékeket tartalmazza:
workspaceResourceId
: A Log Analytics-munkaterület teljes erőforrás-azonosítója.workspaceRegion
: Az a régió, amelyben a munkaterület létrejön, amelyet a munkaterület tulajdonságainak helyének is nevezünk, amikor az Azure Portalról tekinti meg őket.
A Log Analytics-munkaterület teljes erőforrás-azonosítójának azonosításához, amely a containerSolutionParams.json fájl paraméterértékéhez workspaceResourceId
szükséges, hajtsa végre az alábbi lépéseket. Ezután futtassa a PowerShell-parancsmagot vagy az Azure CLI-parancsot a megoldás hozzáadásához.
Az alábbi paranccsal listázhatja az összes előfizetést, amelyhez hozzáférése van:
az account list --all -o table
A kimenet a következő példához fog hasonlítni:
Name CloudName SubscriptionId State IsDefault ------------------------------------ ----------- ------------------------------------ ------- ----------- Microsoft Azure AzureCloud 0fb60ef2-03cc-4290-b595-e71108e8f4ce Enabled True
Másolja ki az SubscriptionId értékét.
Váltson a Log Analytics-munkaterületet üzemeltető előfizetésre az alábbi paranccsal:
az account set -s <subscriptionId of the workspace>
Az alábbi példa az előfizetések munkaterületeinek listáját jeleníti meg alapértelmezett JSON formátumban:
az resource list --resource-type Microsoft.OperationalInsights/workspaces -o json
A kimenetben keresse meg a munkaterület nevét. Ezután másolja a Log Analytics-munkaterület teljes erőforrás-azonosítóját a mezőazonosító alá.
Másolja és illessze be a következő JSON-szintaxist a létrehozott fájlba:
{ "$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": {} } } ] }
Mentse ezt a fájlt containerSolution.json fájlként egy helyi mappába.
Illessze be a következő JSON-szintaxist a fájlba:
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "workspaceResourceId": { "value": "<workspaceResourceId>" }, "workspaceRegion": { "value": "<workspaceRegion>" } } }
Szerkessze a workspaceResourceId értékeit a 3. lépésben másolt értékkel. A WorkspaceRegion esetében másolja ki a Régió értéket az Azure CLI-parancs futtatása után az monitor log-analytics workspace show.
Mentse a fájlt containerSolutionParams.json fájlként egy helyi mappába.
Most már készen áll a sablon üzembe helyezésére.
Az Azure PowerShell-lel való üzembe helyezéshez használja a következő parancsokat a sablont tartalmazó mappában:
# 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
A konfiguráció módosítása eltarthat néhány percig. Ha elkészült, az alábbi példához hasonló üzenet tartalmazza ezt az eredményt:
provisioningState : Succeeded
Az Azure CLI-vel való üzembe helyezéshez futtassa a következő parancsokat:
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
A konfiguráció módosítása eltarthat néhány percig. Ha elkészült, az alábbi példához hasonló üzenet tartalmazza ezt az eredményt:
provisioningState : Succeeded
A figyelés engedélyezése után körülbelül 15 percig tarthat, amíg megtekintheti a fürt állapotmetrikáit.
A Helm-diagram telepítése
Ebben a szakaszban a Container Insights tárolóalapú ügynökét telepíti. A folytatás előtt azonosítsa a paraméterhez amalogsagent.secret.wsid
szükséges munkaterület-azonosítót és a paraméterhez amalogsagent.secret.key
szükséges elsődleges kulcsot. Az információk azonosításához kövesse az alábbi lépéseket, majd futtassa a parancsokat az ügynök Helm-diagram használatával történő telepítéséhez.
Futtassa a következő parancsot a munkaterület azonosítójának azonosításához:
az monitor log-analytics workspace list --resource-group <resourceGroupName>
A kimenetben keresse meg a munkaterület nevét a mezőnév alatt. Ezután másolja az adott Log Analytics-munkaterület munkaterület-azonosítóját a customerID mező alá.
Futtassa a következő parancsot a munkaterület elsődleges kulcsának azonosításához:
az monitor log-analytics workspace get-shared-keys --resource-group <resourceGroupName> --workspace-name <logAnalyticsWorkspaceName>
A kimenetben keresse meg az elsődleges kulcsot a primarySharedKey mező alatt, majd másolja ki az értéket.
Megjegyzés:
Az alábbi parancsok csak a Helm 2-es verziójára vonatkoznak. A paraméter használata nem alkalmazható a
--name
Helm 3-ra.Ha a Kubernetes-fürt proxykiszolgálón keresztül kommunikál, konfigurálja a paramétert
amalogsagent.proxy
a proxykiszolgáló URL-címével. Ha a fürt nem proxykiszolgálón keresztül kommunikál, nem kell megadnia ezt a paramétert. További információ: A proxyvégpont konfigurálása a cikk későbbi részében.Adja hozzá az Azure-diagramok adattárát a helyi listához az alábbi parancs futtatásával:
helm repo add microsoft https://microsoft.github.io/charts/repo
Telepítse a diagramot a következő parancs futtatásával:
$ helm install --name myrelease-1 \ --set amalogsagent.secret.wsid=<logAnalyticsWorkspaceId>,amalogsagent.secret.key=<logAnalyticsWorkspaceKey>,amalogsagent.env.clusterName=<my_prod_cluster> microsoft/azuremonitor-containers
Ha a Log Analytics-munkaterület az Azure China 21Vianetben található, futtassa a következő parancsot:
$ 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
Ha a Log Analytics-munkaterület az Azure US Governmentben található, futtassa a következő parancsot:
$ 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
A Helm-diagram engedélyezése az API-modell használatával
Az AKS Engine-fürt specifikációjához tartozó JSON-fájlban megadhat egy bővítményt, amelyet API-modellnek is neveznek. Ebben a bővítményben adja meg annak a Log Analytics-munkaterületnek WorkspaceGUID
a base64 kódolású verzióját, WorkspaceKey
ahol az összegyűjtött monitorozási adatok tárolása történik. Az előző szakaszban található 1. és 2. lépéssel.WorkspaceGUID
WorkspaceKey
Az Azure Stack Hub-fürt támogatott API-definíciói a kubernetes-container-monitoring_existing_workspace_id_and_key.json példában találhatók. Pontosabban keresse meg az addons tulajdonságot a KubernetesConfigban:
"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>"
}
}
]
}
Ügynökadatok gyűjtésének konfigurálása
A diagram 1.0.0-s verziójától kezdve az ügynök adatgyűjtési beállításait a ConfigMap szabályozza. Az ügynökadat-gyűjtési beállításokról további információt a Container Insights ügynökadat-gyűjtésének konfigurálása című témakörben talál.
A diagram sikeres üzembe helyezése után áttekintheti a hibrid Kubernetes-fürt adatait a Container Insightsban az Azure Portalról.
Megjegyzés:
A betöltési késés körülbelül 5–10 perc az ügynöktől a Log Analytics-munkaterületen való véglegesítéshez. A fürt állapota a Nincs vagyismeretlen értéket jeleníti meg, amíg az összes szükséges monitorozási adat el nem érhető az Azure Monitorban.
A proxyvégpont konfigurálása
A diagram 2.7.1-es verziójától kezdve a diagram támogatja a proxyvégpont megadását a amalogsagent.proxy
diagramparaméterrel. Ily módon a proxykiszolgálón keresztül kommunikálhat. A Container Insights-ügynök és az Azure Monitor közötti kommunikáció lehet HTTP- vagy HTTPS-proxykiszolgáló. A felhasználónévvel és jelszóval rendelkező névtelen és alapszintű hitelesítés egyaránt támogatott.
A proxykonfigurációs érték szintaxisa [protocol://][user:password@]proxyhost[:port]
.
Megjegyzés:
Ha a proxykiszolgáló nem igényel hitelesítést, akkor is meg kell adnia egy álnevet és jelszót. Ez lehet bármilyen felhasználónév vagy jelszó.
Property | Leírás |
---|---|
Protokoll | HTTP vagy HTTPS |
user | Nem kötelező felhasználónév proxyhitelesítéshez |
jelszó | Nem kötelező jelszó proxyhitelesítéshez |
proxyhost | A proxykiszolgáló címe vagy teljes tartományneve |
kikötő | A proxykiszolgáló opcionális portszáma |
Például: amalogsagent.proxy=http://user01:password@proxy01.contoso.com:8080
.
Ha http-ként adja meg a protokollt, a HTTP-kérések SSL/TLS biztonságos kapcsolat használatával jönnek létre. A proxykiszolgálónak támogatnia kell az SSL/TLS protokollokat.
Hibaelhárítás
Ha hibát tapasztal a hibrid Kubernetes-fürt figyelésének engedélyezése közben, a PowerShell-szkripttel TroubleshootError_nonAzureK8s.ps1 segítségével észlelheti és kijavíthatja a felmerülő problémákat. A következő problémák észlelésére és elhárítására szolgál:
- A megadott Log Analytics-munkaterület érvényes.
- A Log Analytics-munkaterület a Container Insights-megoldással van konfigurálva. Ha nem, konfigurálja a munkaterületet.
- Az Azure Monitor-ügynök replikakészlet-podjai futnak.
- Az Azure Monitor Agent démonkészlet-podjai futnak.
- Az Azure Monitor Agent Health szolgáltatás fut.
- A Tárolóalapú ügynökön konfigurált Log Analytics-munkaterület azonosítója és kulcsa megegyezik azzal a munkaterülettel, amellyel az elemzés konfigurálva van.
- Ellenőrizze, hogy az összes Linux-feldolgozó csomópont rendelkezik-e az
kubernetes.io/role=agent
ütemezők podjának címkével. Ha nem létezik, adja hozzá. - Azonosítsa azokat a feltételeket, amelyek jelezhetik
cAdvisor secure port:10250
vagyunsecure port: 10255
nem nyithatóak meg a fürt összes csomópontján.
Az Azure PowerShell-lel való végrehajtáshoz használja a következő parancsokat a szkriptet tartalmazó mappában:
.\TroubleshootError_nonAzureK8s.ps1 - azureLogAnalyticsWorkspaceResourceId </subscriptions/<subscriptionId>/resourceGroups/<resourcegroupName>/providers/Microsoft.OperationalInsights/workspaces/<workspaceName> -kubeConfig <kubeConfigFile> -clusterContextInKubeconfig <clusterContext>
További lépések
Most, hogy a figyelés lehetővé teszi a hibrid Kubernetes-fürtök és számítási feladatok állapotának és erőforrás-kihasználtságának gyűjtését, megtudhatja , hogyan használhatja a Container Insightst.