Udostępnij za pośrednictwem


Dodatek siatki usług oparty na Istio dla usługi Azure Kubernetes Service

Istio rozwiązuje wyzwania, przed którymi stoją deweloperzy i operatorzy, za pomocą architektury rozproszonej lub mikrousług. Dodatek siatki usług oparty na technologii Istio zapewnia oficjalnie obsługiwaną i przetestowaną integrację z usługą Azure Kubernetes Service (AKS).

Co to jest usługa Service Mesh?

Nowoczesne aplikacje są zwykle tworzone jako rozproszone kolekcje mikrousług, z każdą kolekcją mikrousług wykonujących dyskretną funkcję biznesową. Siatka usług to dedykowana warstwa infrastruktury, którą można dodać do aplikacji. Umożliwia ona przezroczyste dodawanie funkcji, takich jak możliwość obserwowania, zarządzanie ruchem i zabezpieczenia, bez dodawania ich do własnego kodu. Termin siatka usług opisuje zarówno typ oprogramowania używanego do implementowania tego wzorca, jak i domenę zabezpieczeń lub sieci, która jest tworzona podczas korzystania z tego oprogramowania.

W miarę jak wdrażanie usług rozproszonych, takich jak w systemie opartym na platformie Kubernetes, rośnie rozmiar i złożoność, coraz trudniej jest zrozumieć i zarządzać nimi. Może być konieczne zaimplementowanie funkcji, takich jak odnajdywanie, równoważenie obciążenia, odzyskiwanie po awarii, metryki i monitorowanie. Siatka usług może również spełniać bardziej złożone wymagania operacyjne, takie jak testowanie A/B, wdrożenia kanary, ograniczanie szybkości, kontrola dostępu, szyfrowanie i kompleksowe uwierzytelnianie.

Komunikacja między usługami umożliwia aplikację rozproszoną. Routing tej komunikacji, zarówno w klastrach aplikacji, jak i w klastrach aplikacji, staje się coraz bardziej złożony w miarę wzrostu liczby usług. Istio pomaga zmniejszyć tę złożoność, jednocześnie zmniejszając obciążenie zespołów programistycznych.

Co to jest Istio?

Istio to siatka usług typu open source, która w sposób przezroczysty nakłada się na istniejące aplikacje rozproszone. Zaawansowane funkcje istio zapewniają jednolity i wydajniejszy sposób zabezpieczania, łączenia i monitorowania usług. Istio umożliwia równoważenie obciążenia, uwierzytelnianie między usługami i monitorowanie — z niewielką liczbą zmian w kodzie usługi lub bez nich. Jego potężna płaszczyzna sterowania przynosi istotne funkcje, w tym:

  • Zabezpieczanie komunikacji między usługami w klastrze przy użyciu szyfrowania TLS (Transport Layer Security), silnego uwierzytelniania opartego na tożsamościach i autoryzacji.
  • Automatyczne równoważenie obciążenia dla ruchu HTTP, gRPC, WebSocket i TCP.
  • Szczegółowa kontrola zachowania ruchu przy użyciu zaawansowanych reguł routingu, ponownych prób, przełączeń w tryb failover i iniekcji błędów.
  • Podłączany interfejs API warstwy zasad i konfiguracji obsługujący kontrole dostępu, limity szybkości i limity przydziału.
  • Automatyczne metryki, dzienniki i ślady dla całego ruchu w klastrze, w tym ruch przychodzący i wychodzący klastra.

Czym różni się dodatek od istio typu open source?

Ten dodatek usługi mesh używa i opiera się na istio typu open source. Dodatek zapewnia następujące dodatkowe korzyści:

  • Wersje istio są testowane i weryfikowane pod kątem zgodności z obsługiwanymi wersjami usługi Azure Kubernetes Service.
  • Firma Microsoft obsługuje skalowanie i konfigurację płaszczyzny sterowania Istio
  • Firma Microsoft dostosowuje skalowanie składników usługi AKS, takich jak coredns po włączeniu funkcji Istio.
  • Firma Microsoft udostępnia zarządzany cykl życia (uaktualnienia) składników istio po wyzwoleniu przez użytkownika.
  • Zweryfikowano konfigurację ruchu przychodzącego zewnętrznego i wewnętrznego.
  • Zweryfikowano, aby pracować z usługą zarządzaną Azure Monitor dla rozwiązań Prometheus i Azure Managed Grafana.
  • Oficjalny pomoc techniczna platformy Azure udostępniony dla dodatku.

Ograniczenia

Dodatek siatki usług oparty na Istio dla usługi AKS ma następujące ograniczenia:

  • Dodatek nie działa w klastrach usługi AKS korzystających z dodatku otwartej siatki usług dla usługi AKS.

  • Dodatek nie działa w klastrach usługi AKS z własnymi instalacjami istio.

  • Dodatek nie obsługuje dodawania zasobników skojarzonych z węzłami wirtualnymi, które mają być dodawane pod siatką.

  • Dodatek nie obsługuje jeszcze bram ruchu wychodzącego dla kontroli ruchu wychodzącego.

  • Dodatek nie obsługuje jeszcze trybu otoczenia bez przyczepki. Firma Microsoft obecnie współtworzenia przepływu pracy otoczenia w rozwiązaniu Istio open source. Integracja produktu dla trybu otoczenia jest w harmonogramie działania i jest stale oceniana w miarę rozwoju przepływu pracy otoczenia.

  • Dodatek nie obsługuje jeszcze wdrożeń obejmujących wiele klastrów.

  • Dodatek nie obsługuje jeszcze kontenerów systemu Windows Server. Kontenery systemu Windows Server nie są jeszcze obsługiwane w środowisku Istio typu open source. Problem ze śledzeniem tej funkcji można znaleźć tutaj.

  • Dostosowywanie siatki za pomocą następujących zasobów niestandardowych jest obecnie zablokowane — ProxyConfig, WorkloadEntry, WorkloadGroup, IstioOperator, WasmPlugin.

  • Dodatek umożliwia korzystanie z następujących EnvoyFilter typów filtrów z zablokowanymi innymi typami filtrów:

    • Lua (type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua).
    • Kompresor (type.googleapis.com/envoy.extensions.filters.http.compressor.v3.Compressor)
    • Lokalny limit szybkości (type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit)

    Uwaga

    Chociaż te EnvoyFilters są dozwolone, wszelkie problemy wynikające z nich (na przykład z scipt Lua lub z biblioteki kompresji) znajdują się poza zakresem pomocy technicznej dodatku Istio. Zobacz dokument dotyczący zasad pomocy technicznej, aby uzyskać więcej informacji na temat kategorii pomocy technicznej dla funkcji dodatków Istio i opcji konfiguracji.

  • Interfejs API bramy dla bramy ruchu przychodzącego Istio lub zarządzanie ruchem siatki (GAMMA) nie jest jeszcze obsługiwany za pomocą dodatku Istio. Jednak interfejs API bramy dla zarządzania ruchem przychodzącym istio jest obecnie aktywnie opracowywany dla dodatku. Chociaż dodatek obsługuje dostosowywanie adnotacji dla bram ruchu przychodzącego Istio dla adresów IP i tagów usługi, konfiguracja portu lub protokołu nie jest obecnie obsługiwana.

Opinie i pytania dotyczące funkcji

Opinie i prośba o dodanie funkcji istio mogą być udostępniane przez utworzenie problemów z etykietą "service-mesh" w repozytorium GitHub usługi AKS.

Następne kroki