Udostępnij za pośrednictwem


Monitorowanie klastra Nexus Kubernetes

Każdy klaster Kubernetes Nexus składa się z wielu warstw:

  • Virtual Machines
  • Warstwa kubernetes
  • Zasobniki aplikacji

Zrzut ekranu przedstawiający przykładowy klaster Kubernetes Nexus.

Rysunek: Przykładowy klaster Kubernetes Nexus

W wystąpieniu klastry Nexus Kubernetes są dostarczane z opcjonalnym rozwiązaniem do obserwacji usługi Container Insights. Usługa Container Insights przechwytuje dzienniki i metryki z klastrów i obciążeń Nexus Kubernetes. To wyłącznie twoja swoboda, czy włączyć to narzędzie, czy wdrożyć własny stos telemetrii.

Klaster Nexus Kubernetes z narzędziem do monitorowania platformy Azure wygląda następująco:

Zrzut ekranu przedstawiający klaster Nexus Kubernetes z narzędziami do monitorowania.

Rysunek: klaster Nexus Kubernetes z narzędziami do monitorowania

Dołączanie rozszerzenia za pomocą interfejsu wiersza polecenia przy użyciu uwierzytelniania tożsamości zarządzanej

Dokumentacja dotycząca rozpoczynania pracy z interfejsem wiersza polecenia platformy Azure, sposobu instalowania jej w wielu systemach operacyjnych oraz instalowania rozszerzeń interfejsu wiersza polecenia.

Zainstaluj najnowszą wersję niezbędnych rozszerzeń interfejsu wiersza polecenia.

Monitorowanie klastra Nexus Kubernetes

Ten przewodnik z instrukcjami zawiera kroki umożliwiające agentom monitorowania zbieranie dzienników systemu z tych maszyn wirtualnych przy użyciu agenta monitorowania platformy Azure. Dalsze instrukcje zawierają szczegółowe informacje na temat konfigurowania zbierania danych dzienników w obszarze roboczym usługi Log Analytics.

Wymagania wstępne

  • Dostęp administratora klastra do klastra Nexus Kubernetes.

  • Aby użyć serwerów z obsługą usługi Azure Arc, zarejestruj następujących dostawców zasobów platformy Azure w ramach subskrypcji:

    • Microsoft.HybridCompute
    • Microsoft.GuestConfiguration
    • Microsoft.HybridConnectivity

Zarejestruj tych dostawców zasobów, jeśli nie zostało to zrobione wcześniej:

az account set --subscription "{the Subscription Name}"
az provider register --namespace 'Microsoft.HybridCompute'
az provider register --namespace 'Microsoft.GuestConfiguration'
az provider register --namespace 'Microsoft.HybridConnectivity'
  • W razie potrzeby przypisz jednostkę usługi platformy Azure do następujących wbudowanych ról platformy Azure. Przypisz jednostkę usługi do grupy zasobów platformy Azure, która ma maszyny do połączenia:
Rola Wymagane do
Administrator lub współautor zasobów połączonej maszyny platformy Azure Łączenie serwera maszyny wirtualnej klastra Kubernetes z włączoną usługą Arc w grupie zasobów i instalowanie agenta monitorowania platformy Azure (AMA)
Współautor lub współautor monitorowania Utwórz regułę zbierania danych (DCR) w grupie zasobów i skojarz z nią serwery z obsługą usługi Arc
Administrator dostępu użytkowników i współautor zasad zasobów Wymagane, jeśli chcesz używać przypisań zasad platformy Azure, aby upewnić się, że kontroler domeny jest skojarzony z maszynami z obsługą usługi Arc
Współautor rozszerzenia Kubernetes Wymagane do wdrożenia rozszerzenia K8s dla usługi Container Insights

Monitorowanie klastra Nexus Kubernetes

Wymagania wstępne

Operator powinien mieć pewne wymagania wstępne, aby skonfigurować narzędzia do monitorowania w klastrach Kubernetes Nexus.

Usługa Container Insights przechowuje swoje dane w obszarze roboczym usługi Log Analytics. Dane dziennika przepływają do obszaru roboczego, którego identyfikator zasobu podany podczas instalacji rozszerzenia Container Insights. W przeciwnym razie lejki danych do domyślnego obszaru roboczego w grupie Zasobów skojarzonej z subskrypcją (na podstawie lokalizacji platformy Azure).

Przykład dla wschodnich stanów USA może wyglądać następująco:

  • Nazwa obszaru roboczego usługi Log Analytics: DefaultWorkspace-GUID-EUS<>
  • Nazwa grupy zasobów: DefaultResourceGroup-EUS

Uruchom następujące polecenie, aby uzyskać wcześniej istniejący identyfikator zasobu obszaru roboczego usługi Log Analytics:

az login

az account set --subscription "<Subscription Name or ID the Log Analytics workspace is in>"

az monitor log-analytics workspace show --workspace-name "<Log Analytics workspace Name>" \
  --resource-group "<Log Analytics workspace Resource Group>" \
  -o tsv --query id

Aby wdrożyć usługę Container Insights i wyświetlić dane w odpowiednim obszarze roboczym usługi Log Analytics, wymagane są pewne przypisania ról na twoim koncie. Na przykład przypisanie roli "Współautor". Zapoznaj się z instrukcjami dotyczącymi przypisywania wymaganych ról:

  • Rola współautora usługi Log Analytics: niezbędne uprawnienia do włączania monitorowania kontenerów w klastrze CNF (aprowizowany).
  • Rola czytelnika usługi Log Analytics: członkowie roli Współautor usługi Log Analytics otrzymują uprawnienia do wyświetlania danych w obszarze roboczym usługi Log Analytics po włączeniu monitorowania kontenerów.

Instalowanie rozszerzenia klastra

Zaloguj się do usługi Azure Cloud Shell, aby uzyskać dostęp do klastra:

az login

az account set --subscription "<Subscription Name or ID the Provisioned Cluster is in>"

Teraz wdróż rozszerzenie Container Insights w aprowizowanego klastra Nexus Kubernetes przy użyciu jednego z dwóch następnych poleceń:

W przypadku wstępnie utworzonego obszaru roboczego usługi Log Analytics przez klienta

az k8s-extension create --name azuremonitor-containers \
  --cluster-name "<Nexus Kubernetes cluster Name>" \
  --resource-group "<Nexus Kubernetes cluster Resource Group>" \
  --cluster-type connectedClusters \
  --extension-type Microsoft.AzureMonitor.Containers \
  --release-train preview \
  --configuration-settings logAnalyticsWorkspaceResourceID="<Log Analytics workspace Resource ID>" \
  amalogsagent.useAADAuth=true

Korzystanie z domyślnego obszaru roboczego usługi Log Analytics

az k8s-extension create --name azuremonitor-containers \
  --cluster-name "<Nexus Kubernetes cluster Name>" \
  --resource-group "<Nexus Kubernetes cluster Resource Group>" \
  --cluster-type connectedClusters \
  --extension-type Microsoft.AzureMonitor.Containers \
  --release-train preview \
  --configuration-settings amalogsagent.useAADAuth=true

Weryfikowanie rozszerzenia klastra

Zweryfikuj pomyślne wdrożenie włączania agentów monitorowania w klastrach Kubernetes Nexus przy użyciu następującego polecenia:

az k8s-extension show --name azuremonitor-containers \
  --cluster-name "<Nexus Kubernetes cluster Name>" \
  --resource-group "<Nexus Kubernetes cluster Resource Group>" \
  --cluster-type connectedClusters

Poszukaj stanu aprowizacji "Powodzenie" dla rozszerzenia. Polecenie "k8s-extension create" mogło również zwrócić stan.

Dostosowywanie kolekcji dzienników i metryk

Usługa Container Insights zapewnia użytkownikom końcowym funkcjonalność, aby dostosować kolekcję dzienników i metryk z klastrów Kubernetes Nexus. Aby uzyskać więcej informacji, zobacz instrukcje dotyczące konfigurowania zbierania danych agenta usługi Container Insights.

Uwaga

Usługa Container Insights domyślnie nie zbiera dzienników z kube-system przestrzeni nazw. Aby zbierać dzienniki z kube-system przestrzeni nazw, należy skonfigurować agenta w celu zbierania kube-system dzienników z przestrzeni nazw. Można to zrobić, usuwając kube-system przestrzeń nazw z excludedNamespaces pola w ConfigMap zgodnie z podejściem configMap configuraiton .

[log_collection_settings]
  [log_collection_settings.stdout]
    # In the absense of this configmap, default value for enabled is true
    enabled = true
    # exclude_namespaces setting holds good only if enabled is set to true
    # kube-system,gatekeeper-system log collection are disabled by default in the absence of 'log_collection_settings.stdout' setting. If you want to enable kube-system,gatekeeper-system, remove them from the following setting.
    # If you want to continue to disable kube-system,gatekeeper-system log collection keep the namespaces in the following setting and add any other namespace you want to disable log collection to the array.
    # In the absense of this configmap, default value for exclude_namespaces = ["kube-system","gatekeeper-system"]
    exclude_namespaces = ["gatekeeper-system"]
    # If you want to collect logs from only selective pods inside system namespaces add them to the following setting. Provide namepace:controllerName of the system pod. NOTE: this setting is only for pods in system namespaces
    # Valid values for system namespaces are: kube-system, azure-arc, gatekeeper-system, kube-public, kube-node-lease, calico-system. The system namespace used should not be present in exclude_namespaces
    # collect_system_pod_logs = ["kube-system:coredns"]

  [log_collection_settings.stderr]
    # Default value for enabled is true
    enabled = true
    # exclude_namespaces setting holds good only if enabled is set to true
    # kube-system,gatekeeper-system log collection are disabled by default in the absence of 'log_collection_settings.stderr' setting. If you want to enable kube-system,gatekeeper-system, remove them from the following setting.
    # If you want to continue to disable kube-system,gatekeeper-system log collection keep the namespaces in the following setting and add any other namespace you want to disable log collection to the array.
    # In the absense of this configmap, default value for exclude_namespaces = ["kube-system","gatekeeper-system"]
    exclude_namespaces = ["gatekeeper-system"]
    # If you want to collect logs from only selective pods inside system namespaces add them to the following setting. Provide namepace:controllerName of the system pod. NOTE: this setting is only for pods in system namespaces
    # Valid values for system namespaces are: kube-system, azure-arc, gatekeeper-system, kube-public, kube-node-lease, calico-system. The system namespace used should not be present in exclude_namespaces
    # collect_system_pod_logs = ["kube-system:coredns"]

Dodatkowe zasoby

  • Przejrzyj dokumentację skoroszytów, a następnie możesz użyć przykładowych skoroszytów operatorów Nexus operatora Nexus.
  • Przejrzyj alerty usługi Azure Monitor, jak utworzyć reguły alertów usługi Azure Monitor i użyć przykładowych szablonów alertów operatora Nexus.