Monitorowanie klastra Nexus Kubernetes
Każdy klaster Kubernetes Nexus składa się z wielu warstw:
- Virtual Machines
- Warstwa kubernetes
- Zasobniki aplikacji
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:
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.