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:
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
Upewnij się, że porty są poprawnie ustawione w bramach i usługach wirtualnych. W przypadku bramy port powinien być ustawiony na
80
wartość lubhttp
443
dlahttps
. W przypadku usługi wirtualnej port powinien być ustawiony na port, na który nasłuchuje odpowiednia usługa dla aplikacji.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łówkiemHost
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:
Sprawdź, czy wartości
INGRESS_HOST_EXTERNAL
zmiennych środowiskowych iSECURE_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
Sprawdź komunikaty o błędach w dziennikach kontrolera bramy:
kubectl logs -n aks-istio-ingress <gateway-service-pod>
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.