Udostępnij za pośrednictwem


Rozwiązywanie problemów z dodatkiem siatki usługi Istio MeshConfig

W tym artykule omówiono sposób rozwiązywania problemów występujących podczas używania narzędzia MeshConfig do konfigurowania dodatku siatki usługi Istio dla usługi Microsoft Azure Kubernetes Service (AKS).

Konfiguracja udostępnionego obiektu ConfigMap

Dodatek Istio MeshConfig umożliwia skonfigurowanie niektórych ustawień dotyczących całej siatki. W tym celu utworzysz lokalną ConfigMap w aks-istio-system przestrzeni nazw. Następnie płaszczyzna sterowania Istio scala tę ConfigMap z domyślną mapą ConfigMap. (Jeśli istnieje konflikt między ustawieniami, ustawienia domyślne mają pierwszeństwo). Takie podejście jest nazywane udostępnioną konfiguracją ConfigMap.

Utwórz ConfigMap o nazwie istio-shared-configmap-<asm-revision> w aks-istio-system przestrzeni nazw. Jeśli na przykład używasz poprawki asm-1-18, należy nazwać ConfigMap, istio-shared-configmap-asm-1-18. Następnie należy podać konfigurację siatki w mesh polu data sekcji, jak pokazano w następującym pliku YAML ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: istio-shared-configmap-asm-1-18
  namespace: aks-istio-system
data:
  mesh: |-
    accessLogFile: /dev/stdout
    defaultConfig:
      holdApplicationUntilProxyStarts: true

Wartości w defaultConfig polu to ustawienia całej siatki dla przyczepki Envoy.

Uaktualnienia kanary

Przed rozpoczęciem uaktualnienia kanargu postępuj zgodnie ze wskazówkami dotyczącymi konfiguracji i uaktualniania siatki, aby utworzyć drugą udostępnioną ConfigMap dla nowej poprawki płaszczyzny sterowania w aks-istio-system przestrzeni nazw.

Jeśli nowa mapa ConfigMap nie została utworzona przed rozpoczęciem uaktualniania, wszystkie funkcje skonfigurowane przez udostępnioną aplikację ConfigMap nie będą dostępne. Aby rozwiązać ten problem, utwórz brakującą ConfigMap dla odpowiedniej poprawki i skopiuj odpowiednie pola z poprzedniej udostępnionej mapy konfiguracji.

Aby uzyskać więcej informacji, zobacz Upgrade Istio-based service mesh add-on for Azure Kubernetes Service and Istio service mesh add-on minor revision upgrade troubleshooting (Uaktualnianie dodatku usługi Service Mesh opartego na technologii Istio dla usługi Azure Kubernetes Service ) i Istio service mesh add-on minor revision upgrade troubleshooting (Rozwiązywanie problemów z uaktualnianiem drobnych poprawek).

Dozwolone, obsługiwane i niedozwolone wartości

Dodatek Istio wyznacza pola MeshConfig jako dozwolone i , dozwolone, supportedale unsupportedi disallowed. Aby dowiedzieć się więcej o dozwolonych i obsługiwanych polach MeshConfig dla dodatku, a także zapoznać się z omówieniem różnych warstw pomocy technicznej, zobacz Konfigurowanie dodatku siatki usług opartej na istio dla usługi Azure Kubernetes Service. Jeśli pola wymienione w dokumentacji nadrzędnej istio nie są wyświetlane na liście dozwolonych dodatku, te pola są niedozwolone.

Lista kontrolna rozwiązywania problemów

Krok 1. Upewnij się, że edytujesz poprawną ConfigMap

  • Upewnij się, że konfigurujesz udostępnioną ConfigMap (na przykład istio-shared-configmap-asm-1-17) i nie edytujesz domyślnej mapy konfiguracji (na przykład istio-asm-1-17).
  • Upewnij się, że współużytkowany element ConfigMap wskazuje poprawną poprawkę w tytule.

Krok 2. Usuwanie wcięcia kart z definicji meshConfigMap

W definicji MeshConfig w udostępnionej ConfigMap (w obszarze data.mesh) upewnij się, że używasz spacji zamiast kart. Usuń wszystkie znaki tabulacji, które znajdziesz.

Krok 3. Upewnij się, że pola MeshConfig są prawidłowe

Jeśli pola są nierozpoznane lub nie są uwzględnione na liście dozwolonych meshConfig, aktualizacje usługi MeshConfig są odrzucane. Sprawdź, czy żądane pola MeshConfig są dozwolone i upewnij się, że pola są poprawnie napisane.

Krok 4. Unikanie przeciążenia sieci CoreDNS

Problemy związane z przeciążeniem CoreDNS mogą wymagać zmiany niektórych ustawień dns istio, takich jak dnsRefreshRate pole w definicji Istio MeshConfig.

Krok 5. Rozwiązywanie problemów z zużyciem pamięci

Jeśli w aplikacji Envoy występuje wysokie użycie pamięci, sprawdź ustawienia usługi Envoy pod kątem zbierania danych statystycznych. W przypadku dostosowywania metryk Istio za pomocą polecenia MeshConfig należy pamiętać, że niektóre metryki mogą mieć wysoką kardynalność i w związku z tym spowodować większe zużycie pamięci.

Zalecamy użycie discoverySelectors pola w definicji MeshConfig w celu zmniejszenia zużycia pamięci dla funkcji Istiod i Envoy. Aby uzyskać więcej informacji, zobacz Ogólne rozwiązywanie problemów z dodatkiem siatki usługi Istio.

Krok 6. Wolne rdzenie procesora CPU

Jeśli wszystkie rdzenie procesora CPU są używane, concurrency pole w definicji MeshConfig może zostać nieprawidłowo skonfigurowane. Jeśli to pole ma wartość zero, usługa Envoy używa wszystkich rdzeni procesora CPU. W takiej sytuacji usuń element concurrency z definicji MeshConfig. concurrency Jeśli pole nie jest skonfigurowane, żądania procesora CPU i limity określają liczbę używanych rdzeni procesora CPU.

Krok 7. Napraw warunki wyścigu zasobnika i przyczepki

Jeśli zasobnik aplikacji zostanie uruchomiony przed uruchomieniem przyczepki usługi Envoy, aplikacja może nie odpowiadać lub może zostać uruchomiona ponownie. Aby uzyskać instrukcje dotyczące sposobu uniknięcia tego problemu, zobacz Zasobnik lub kontenery zaczynają się od problemów z siecią, jeśli serwer istio-proxy nie jest gotowy. W szczególności możesz ustawić holdApplicationUntilProxyStarts pole MeshConfig, defaultConfig aby true zapobiec tym warunkom wyścigu.

Informacje

Zastrzeżenie dotyczące innych firm

Produkty innych firm omówione w tym artykule są wytwarzane przez producentów niezależnych od firmy Microsoft. Firma Microsoft nie udziela żadnych gwarancji, dorozumianych ani żadnego innego rodzaju, w odniesieniu do wydajności lub niezawodności tych produktów.

Wyłączenie odpowiedzialności za kontakty z osobami trzecimi

Firma Microsoft udostępnia informacje kontaktowe innych firm, aby uzyskać dodatkowe informacje na temat tego tematu. Informacje te mogą zostać zmienione bez powiadomienia. Firma Microsoft nie gwarantuje dokładności informacji kontaktowych innych firm.

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.