Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Nätverksprinciper är viktiga för att skydda Kubernetes-kluster genom att definiera och kontrollera poddkommunikation. De minimerar obehörig åtkomst och potentiella säkerhetsöverträdelser genom att reglera trafikflödet. Advanced Container Networking Services stärker säkerheten med FQDN-baserade nätverksprinciper. Advanced Container Networking Services utökar den här grunden och tillhandahåller nu stöd för L7-principer, vilket möjliggör detaljerad kontroll och hantering av trafik på programnivå. Detta förbättrar både säkerheten och effektiviteten för nätverkskommunikation i AKS-kluster. Erbjudandet innehåller omfattande stöd för allmänt antagna protokoll, inklusive HTTP, gRPC och Kafka.
Komponenter i L7-policy
Envoy proxy: Envoy, en del av ACNS-säkerhetsagenten, fungerar som genomdrivningspunkt för L7-principer. En TPROXY inspekterar programtrafiken och jämför den med de definierade L7-principerna. För att förbättra skalbarheten och resurshanteringen distribueras Envoy som en separat DaemonSet, frikopplad från Cilium-agenten.
Så här fungerar L7-principen
När L7-principtillämpning är aktiverat för ett program eller en podd utvärderas först utgående nätverkstrafik för att fastställa efterlevnaden av de konfigurerade reglerna på programnivå. eBPF-sonden som är kopplad till källpoddens nätverksgränssnitt markerar paket, vilka sedan omdirigeras till en nod-lokal Envoy-proxy. Den här omdirigeringen sker endast för poddar som tillämpar L7-principer, vilket säkerställer att principtillämpning tillämpas selektivt.
Envoy-proxyn, utökad med Cilium-nätverksfilter, bestämmer sedan om trafiken ska vidarebefordras till målpodden baserat på principkriterier. Om det tillåts fortsätter trafiken; annars returnerar Envoy en lämplig felkod till den ursprungliga pod. Vid lyckad auktorisering underlättar Envoy-proxyn trafikflödet, vilket ger synlighet och kontroll på programnivå. På så sätt kan Cilium-agenten framtvinga detaljerade nätverksprinciper i principmotorn. Följande diagram illustrerar det övergripande flödet av L7-principframtvingande.
Övervaka L7-trafik med Hubble och Grafana
För att få insikter om L7-trafikflöden, särskilt HTTP, gRPC och Kafka, använder Azure CNI Powered by Cilium Hubble-agenten, som är aktiverad som standard med Advanced Container Networking Services. Hubble tillhandahåller detaljerade mått på flödesnivå.
För att förenkla analysen av dessa L7-mått tillhandahåller vi förkonfigurerade Azure Managed Grafana-instrumentpaneler. Du hittar dem under mappen Instrumentpaneler > i Azure Managed Prometheus , med filnamn som "Kubernetes/Networking/L7 (Namnområde)" och "Kubernetes/Networking/L7 (arbetsbelastning)".
Dessa instrumentpaneler ger detaljerad insyn i L7-flödesdata på kluster-, namnrymds- och arbetsbelastningsnivåer.
Anmärkning
Dessa instrumentpaneler visar endast data om du har den här funktionen aktiverad i klustret och har relevanta principer tillämpade. Dessutom krävs inte övervakningsmåtten för att flöda via Envoy, en komponent i ACNS-säkerhetsagenten. I stället samlas dessa mått in av Hubble-agenten, som är installerad i klustret som en del av advanced container networking-tjänstens observerbarhetsfunktion.
Viktiga fördelar
Detaljerad Application-Level Kontroll: L7-principer möjliggör detaljerad kontroll över nätverkstrafik baserat på programspecifika attribut, till exempel HTTP-metoder, gRPC-sökvägar och Kafka-ämnen. Detta sträcker sig bortom den grundläggande IP-adressen och portbaserad kontroll över traditionella nätverksprinciper.
Förbättrad säkerhet: Genom att inspektera trafik på programnivå kan L7-principer förhindra attacker som utnyttjar sårbarheter på programnivå. Detta omfattar blockering av obehörig åtkomst till specifika API:er eller tjänster. Dessutom är L7-principer en viktig komponent i en nollförtroendesäkerhetsstrategi, vilket gör det möjligt att tillämpa principen om lägsta behörighet på programnivån.
Korrekt felhantering: Till skillnad från L3/L4-principer som vanligtvis släpper obehörig trafik tyst kan L7-principer returnera felkoder på programnivå (till exempel HTTP 403, Kafka-auktoriseringsfel), vilket gör att program kan hantera fel på ett mer smidigt sätt.
Observerbarhet: Med observerbarhet aktiverat för Advanced Container Networking Services och L7-principer som tillämpas på ditt AKS-kluster kan du övervaka trafik- och principeffektivitet med hjälp av Grafana-instrumentpaneler.
Begränsningar och överväganden
- Det aktuella funktionsstödet förlitar sig på Ciliums Layer 7-principframtvingande baserat på HTTP, HTTPS, gRPC och Kafka.
- I förhandsversionen är den maximala klusterstorleken som stöds upp till 1 000 noder eller 40 000 poddar, beroende på vilket som är störst.
- Trafik som passerar Envoy-proxyservrar kommer med svarstid. Användare kan uppleva märkbar fördröjningsförsämring utöver 3 000 begäranden per sekund.
- Som en del av vår observability-lösning tillhandahåller vi mätvärden för envoy_http_rq_total. Dessa mått ger det totala antalet förfrågningar, som kan användas för att härleda begäranden per sekund (rps).
- Under en Cilium-uppgradering eller distribution kan befintliga sessioner stängas på ett smidigt sätt. Program förväntas hantera dessa avbrott på ett korrekt sätt, vanligtvis genom att implementera mekanismer för återförsök på anslutningsnivå eller begärandenivå. Nya anslutningar som initierades under distributionen påverkas inte.
- L7-principen via Advanced Container Networking Services (ACNS) är inte kompatibel med L7-principer som implementeras via alternativa metoder som Istio. I följande tabell sammanfattas de scenarier som stöds.
| Funktion/komponent | L7-principer med HJÄLP av AKS, Istio – Hanterat tillägg |
|---|---|
| K8s-nätverksprinciper från Azure CNI som drivs av Cilium | Understödd |
| L4-principer (FQDN) från Azure CNI som drivs av Cilium och ACNS | Understödd |
| L7-principer (HTTP(s)/GRPC/Kafka) från Azure CNI som drivs av Cilium och ACNS | Stöds inte |
Prissättning
Viktigt!
Avancerade nätverkstjänster för containrar är ett avgiftsbelagt erbjudande. Mer information om priser finns i Advanced Container Networking Services – Prissättning.
Nästa steg
Lär dig hur du tillämpar L7-principer på AKS.
Utforska hur communityn med öppen källkod skapar Cilium-nätverksprinciper.
Mer information om Advanced Container Networking Services för Azure Kubernetes Service (AKS) finns i Vad är Advanced Container Networking Services för Azure Kubernetes Service (AKS)?.
Utforska funktioner för containernätverksobservabilitet i Advanced Container Networking Services i Vad är containernätverksobservabilitet?.
Azure Kubernetes Service