Udostępnij za pośrednictwem


Rozwiązywanie problemów z dodawaniem bramy ruchu przychodzącego w usłudze Istio service mesh

W tym artykule omówiono sposób rozwiązywania problemów z bramą ruchu przychodzącego w dodatku siatki usługi Istio dla usługi Azure Kubernetes Service (AKS). Brama ruchu przychodzącego Istio jest zwrotnym serwerem proxy opartym na usłudze Envoy, którego można użyć do kierowania ruchu przychodzącego do obciążeń w siatce.

W przypadku dodatku usługi opartej na protokole Istio oferujemy następujące opcje bramy ruchu przychodzącego:

  • Wewnętrzna brama ruchu przychodzącego korzystająca z prywatnego adresu IP.

  • Zewnętrzna brama ruchu przychodzącego, która używa publicznie dostępnego adresu IP.

Uwaga 16.

Firma Microsoft nie obsługuje dostosowywania adresu IP dla wewnętrznych lub zewnętrznych bram ruchu przychodzącego. Wszelkie zmiany dostosowywania adresu IP dodatku siatki usługi Istio zostaną przywrócone.

Dodatek wdraża zasobniki i wdrożenia bramy ruchu przychodzącego Istio na wersję. Jeśli przeprowadzasz uaktualnienie kanary i masz dwie poprawki płaszczyzny sterowania zainstalowane w klastrze, może być konieczne rozwiązywanie problemów z wieloma zasobnikami bramy ruchu przychodzącego w obu poprawkach.

Lista kontrolna rozwiązywania problemów

Krok 1. Upewnij się, że żadne reguły zapory lub sieciowej grupy zabezpieczeń nie blokują bramy ruchu przychodzącego

Sprawdź, czy nie masz reguł zapory ani sieciowej grupy zabezpieczeń, które blokują ruch do bramy ruchu przychodzącego. Musisz jawnie dodać regułę tłumaczenia adresów sieciowych (DNAT), aby zezwolić na ruch przychodzący przez usługę Azure Firewall do bramy ruchu przychodzącego.

Krok 2. Prawidłowe konfigurowanie bram, usług wirtualnych i reguł docelowych

Podczas konfigurowania bram, usług wirtualnych i reguł docelowych dla routingu ruchu przez bramę ruchu przychodzącego wykonaj następujące kroki:

  1. Upewnij się, że selektor bramy ruchu przychodzącego w zasobie bramy jest ustawiony na jedną z następujących wartości tekstowych, jeśli używasz odpowiednio bramy zewnętrznej lub wewnętrznej:

    • istio: aks-istio-ingressgateway-external
    • istio: aks-istio-ingressgateway-internal
  2. Upewnij się, że porty są poprawnie ustawione w bramach i usługach wirtualnych. W przypadku bramy port powinien być ustawiony na 80 wartość lub http 443 dla https. W przypadku usługi wirtualnej port powinien być ustawiony na port, na który nasłuchuje odpowiednia usługa dla aplikacji.

  3. Sprawdź, czy usługa jest uwidoczniona w hosts specyfikacji zarówno dla bramy, jak i usługi wirtualnej. Jeśli wystąpią problemy związane z nagłówkiem Host w żądaniach, spróbuj dodać do listy dozwolonych wszystkie hosty zawierające symbol wieloznaczny gwiazdki ("*"), na przykład w tej przykładowej konfiguracji bramy. Zalecamy jednak, aby lista dozwolonych nie zmieniała się jako praktyka produkcyjna. Ponadto należy jawnie skonfigurować specyfikacjęhosts.

Krok 3. Naprawienie kondycji zasobnika bramy ruchu przychodzącego

Jeśli zasobnik bramy ruchu przychodzącego ulega awarii lub nie jest wyświetlany w stanie gotowości, sprawdź, czy zasobnik płaszczyzny sterowania Istio (istiod) jest w stanie gotowości. Brama ruchu przychodzącego istiod zależy od gotowości wydania.

istiod Jeśli zasobnik nie jest wyświetlany w stanie gotowości, upewnij się, że niestandardowe definicje zasobów (CRD) istio i base wykres Helm jest poprawnie zainstalowany. Aby to zrobić, uruchom następujące polecenie:

helm ls --all --all-namespaces

Może wystąpić szerszy błąd, w którym instalacja dodatku nie została skonfigurowana specjalnie do bramy ruchu przychodzącego.

istiod Jeśli zasobnik jest w dobrej kondycji, ale zasobniki bramy ruchu przychodzącego nie odpowiadają, sprawdź następujące zasoby bramy ruchu przychodzącego w aks-istio-ingress przestrzeni nazw, aby zebrać więcej informacji:

  • Wydanie programu Helm
  • Wdrożenie
  • Usługa

Ponadto więcej informacji na temat debugowania bramy i przyczepki można znaleźć w artykule Ogólne rozwiązywanie problemów z dodatkiem siatki usługi Istio.

Krok 4. Konfigurowanie wykorzystania zasobów

Wysokie wykorzystanie zasobów występuje, gdy domyślne ustawienia minimalnej/maksymalnej repliki dla istiod i bramy nie są wystarczające. W takim przypadku zmień konfiguracje automatycznego skalowania zasobników w poziomie.

Krok 5. Rozwiązywanie problemów z bezpieczną bramą ruchu przychodzącego

Jeśli zewnętrzna brama ruchu przychodzącego jest skonfigurowana do uwidaczniania bezpiecznej usługi HTTPS przy użyciu prostego lub wzajemnego protokołu TLS, wykonaj następujące kroki rozwiązywania problemów:

  1. Sprawdź, czy wartości INGRESS_HOST_EXTERNAL zmiennych środowiskowych i SECURE_INGRESS_PORT_EXTERNAL są prawidłowe na podstawie danych wyjściowych następującego polecenia:

    kubectl -n aks-istio-ingress get service aks-istio-ingressgateway-external
    
  2. Sprawdź komunikaty o błędach w dziennikach kontrolera bramy:

    kubectl logs -n aks-istio-ingress <gateway-service-pod>
    
  3. Sprawdź, czy wpisy tajne są tworzone w aks-istio-ingress przestrzeni nazw:

    kubectl -n aks-istio-ingress get secrets
    

Na przykład w artykule Secure ingress gateway for Istio service mesh add-on for Azure Kubernetes Service (Zabezpieczanie bramy ruchu przychodzącego dla dodatku usługi Istio Service mesh dla usługi Azure Kubernetes Serviceproductpage-credential) powinien zostać wyświetlony wpis tajny.

Po włączeniu dodatku dostawcy wpisów tajnych usługi Azure Key Vault musisz udzielić dostępu dla tożsamości zarządzanej przypisanej przez użytkownika dodatku do usługi Azure Key Vault. Niepoprawne skonfigurowanie dostępu do usługi Azure Key Vault uniemożliwi utworzenie wpisu tajnego productpage-credential .

Po utworzeniu SecretProviderClass zasobu w celu zapewnienia synchronizacji wpisów tajnych z usługi Azure Key Vault z klastrem upewnij się, że przykładowy zasobnik secrets-store-sync-productpage odwołujący się do tego zasobu został pomyślnie wdrożony.

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.