Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure CNI Powered by Cilium combineert het robuuste besturingsvlak van Azure CNI met het gegevensvlak van Cilium om krachtige netwerken en beveiliging te bieden.
Door gebruik te maken van eBPF-programma's die zijn geladen in de Linux-kernel en een efficiëntere API-objectstructuur, biedt Azure CNI Powered by Cilium de volgende voordelen:
Functionaliteit die gelijk is aan bestaande Azure CNI- en Azure CNI-overlay-invoegtoepassingen
Verbeterde serviceroutering
Efficiënter afdwingen van netwerkbeleid
Betere waarneembaarheid van clusterverkeer
Ondersteuning voor grotere clusters (meer knooppunten, pods en services)
IP-adresbeheer (IPAM) met Azure CNI Powered by Cilium
Azure CNI Powered by Cilium kan worden geïmplementeerd met behulp van twee verschillende methoden voor het toewijzen van POD-IP's:
IP-adressen toewijzen vanuit een overlaynetwerk (vergelijkbaar met azure CNI-overlaymodus)
IP-adressen toewijzen vanuit een virtueel netwerk (vergelijkbaar met bestaande Azure CNI met dynamische IP-toewijzing van pods)
Als u niet zeker weet welke optie u wilt selecteren, leest u 'Een netwerkmodel kiezen dat u wilt gebruiken'.
Versies
Kubernetes-versie | Minimumversie van Cilium |
---|---|
1.27 (LTS) | 1.13.18 |
1.28 (einde levensduur) | 1.13.18 |
1,29 | 1.14.19 |
1.30 (LTS) | 1.14.19 |
1.31 | 1.16.6 |
1.32 | 1.17.0 |
Zie Ondersteunde Kubernetes-versies voor meer informatie over AKS-versiebeheer en releasetijdlijnen.
Netwerkbeleidsafdwinging
Cilium dwingt netwerkbeleid af om verkeer tussen pods toe te staan of te weigeren. Met Cilium hoeft u geen afzonderlijke engine voor netwerkbeleid te installeren, zoals Azure Network Policy Manager of Calico.
Beperkingen
Azure CNI mogelijk gemaakt door Cilium heeft momenteel de volgende beperkingen:
Alleen beschikbaar voor Linux en niet voor Windows.
Netwerkbeleid kan
ipBlock
niet gebruiken om toegang te verlenen tot IP-adressen van knooppunten of pods. Zie veelgestelde vragen voor meer informatie en aanbevolen tijdelijke oplossing.Voor Cilium-versies 1.16 of eerder kunnen meerdere Kubernetes-services niet dezelfde hostpoort gebruiken met verschillende protocollen (bijvoorbeeld TCP of UDP) (Ciliumprobleem #14287).
Netwerkbeleid wordt niet toegepast op pods met behulp van hostnetwerken (
spec.hostNetwork: true
) omdat deze pods de hostidentiteit gebruiken in plaats van afzonderlijke identiteiten.Cilium Endpoint Slices worden ondersteund in Kubernetes versie 1.32 en hoger. Cilium Endpoint Slices bieden geen ondersteuning voor de configuratie van hoe Cilium-eindpunten worden gegroepeerd. Prioriteitsnaamruimten via
cilium.io/ces-namespace
worden niet ondersteund.
Overwegingen
Als u mogelijkheden wilt krijgen zoals waarneembaarheid in uw netwerkverkeer en beveiligingsfuncties zoals FQDN(Fully Qualified Domain Name) op basis van filteren en netwerkbeleid op basis van laag 7 op uw cluster, kunt u overwegen geavanceerde containernetwerkservices in te schakelen op uw clusters.
Voorwaarden
Azure CLI versie 2.48.1 of hoger. Voer deze
az --version
opdracht uit om de momenteel geïnstalleerde versie te zien. Als u Azure CLI wilt installeren of upgraden, raadpleegt u Azure CLI installeren.Als u ARM-sjablonen of de REST API gebruikt, moet de AKS-API-versie 2022-09-02-preview of hoger zijn.
Notitie
Vorige AKS API-versies (2022-09-02preview tot 2023-01-02preview) gebruikt het veld networkProfile.ebpfDataplane=cilium
. AKS API-versies sinds 2023-02-02preview gebruiken het veld networkProfile.networkDataplane=cilium
om Azure CNI Powered by Cilium in te schakelen.
Een nieuw AKS-cluster maken met Azure CNI Powered by Cilium
Optie 1: IP-adressen toewijzen vanuit een overlaynetwerk
Gebruik de volgende opdrachten om een cluster te maken met een overlaynetwerk en Cilium. Vervang de waarden voor <clusterName>
, <resourceGroupName>
en <location>
:
az aks create \
--name <clusterName> \
--resource-group <resourceGroupName> \
--location <location> \
--network-plugin azure \
--network-plugin-mode overlay \
--pod-cidr 192.168.0.0/16 \
--network-dataplane cilium \
--generate-ssh-keys
Notitie
De --network-dataplane cilium
vlag vervangt de afgeschafte --enable-ebpf-dataplane
vlag die wordt gebruikt in eerdere versies van de CLI-extensie aks-preview.
Optie 2: IP-adressen toewijzen vanuit een virtueel netwerk
Voer de volgende opdrachten uit om een resourcegroep en een virtueel netwerk te maken met een subnet voor knooppunten en een subnet voor pods.
# Create the resource group
az group create --name <resourceGroupName> --location <location>
# Create a virtual network with a subnet for nodes and a subnet for pods
az network vnet create --resource-group <resourceGroupName> --location <location> --name <vnetName> --address-prefixes <address prefix, example: 10.0.0.0/8> -o none
az network vnet subnet create --resource-group <resourceGroupName> --vnet-name <vnetName> --name nodesubnet --address-prefixes <address prefix, example: 10.240.0.0/16> -o none
az network vnet subnet create --resource-group <resourceGroupName> --vnet-name <vnetName> --name podsubnet --address-prefixes <address prefix, example: 10.241.0.0/16> -o none
Maak het cluster met behulp van --network-dataplane cilium
:
az aks create \
--name <clusterName> \
--resource-group <resourceGroupName> \
--location <location> \
--max-pods 250 \
--network-plugin azure \
--vnet-subnet-id /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>/subnets/nodesubnet \
--pod-subnet-id /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>/subnets/podsubnet \
--network-dataplane cilium \
--generate-ssh-keys
Optie 3: IP-adressen toewijzen vanuit het knooppuntsubnet
Notitie
Azure CLI versie 2.69.0 of hoger is vereist. Voer deze az --version
opdracht uit om de momenteel geïnstalleerde versie te zien. Als u Azure CLI wilt installeren of upgraden, raadpleegt u Azure CLI installeren.
Maak een cluster met behulp van een knooppuntsubnet met een Cilium-gegevensvlak:
az aks create \
--name <clusterName> \
--resource-group <resourceGroupName> \
--location <location> \
--network-plugin azure \
--network-dataplane cilium \
--generate-ssh-keys
Veelgestelde vragen
Kan ik de configuratie van Cilium aanpassen?
Nee, AKS beheert de Cilium-configuratie en kan niet worden gewijzigd. We raden klanten aan die meer controle nodig hebben , AKS BYO CNI te gebruiken en Cilium handmatig te installeren.
Kan ik aangepaste resources gebruiken
CiliumNetworkPolicy
in plaats van Kubernetes-resourcesNetworkPolicy
?Klanten kunnen FQDN-filters en laag 7-beleid gebruiken als onderdeel van de functiebundel Advanced Container Networking Services .
Kan ik gebruiken
ClusterwideCiliumNetworkPolicy
?ClusterwideCiliumNetworkPolicy
wordt niet ondersteund.Welke Cilium-functies worden ondersteund in door Azure beheerde CNI? Welke van deze vereisen Advanced Container Networking Services?
Ondersteunde functie zonder ACNS w/ ACNS Cilium-eindpuntdelen ✔️ ✔️ K8s-netwerkbeleid ✔️ ✔️ Cilium L3/L4-netwerkbeleid ✔️ ✔️ FQDN filtering ❌ ✔️ L7-netwerkbeleid (HTTP/gRPC/Kafka) ❌ ✔️ Waarneembaarheid van containernetwerk (metrische gegevens en stroomlogboeken) ❌ ✔️ Waarom wordt het verkeer geblokkeerd wanneer de
NetworkPolicy
eenipBlock
heeft die het IP-adres toestaat?Een beperking van Azure CNI Powered by Cilium is dat
NetworkPolicy
ipBlock
ip-adressen van pods of knooppunten niet kunnen worden geselecteerd.Dit
NetworkPolicy
heeft bijvoorbeeld eenipBlock
die alle uitgaande verbindingen naar0.0.0.0/0
toestaat:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: example-ipblock spec: podSelector: {} policyTypes: - Egress egress: - to: - ipBlock: cidr: 0.0.0.0/0 # This will still block pod and node IPs.
Wanneer dit
NetworkPolicy
echter wordt toegepast, blokkeert Cilium uitgaand verkeer naar pod- en knooppunt-IP-adressen, ook al bevinden de IP-adressen zich binnen deipBlock
CIDR.Als tijdelijke oplossing kunt u
namespaceSelector
enpodSelector
toevoegen aan select pods. In dit voorbeeld worden alle pods in alle naamruimten geselecteerd:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: example-ipblock spec: podSelector: {} policyTypes: - Egress egress: - to: - ipBlock: cidr: 0.0.0.0/0 - namespaceSelector: {} - podSelector: {}
Notitie
Het is momenteel niet mogelijk om een
NetworkPolicy
met eenipBlock
te gebruiken om verkeer naar IP-adressen van knooppunten toe te staan.Configureert AKS CPU- of geheugenlimieten op het Cilium
daemonset
?Nee, AKS configureert geen CPU- of geheugenlimieten op het Cilium
daemonset
, omdat Cilium een essentieel systeemonderdeel is voor podnetwerken en het afdwingen van netwerkbeleid.Maakt Azure CNI, aangedreven door Cilium, gebruik van Kube-Proxy?
Nee, AKS-clusters die zijn gemaakt met een netwerkgegevensvlak zoals Cilium, gebruiken geen Kube-Proxy. Als de AKS-clusters zich in Azure CNI Overlay of Azure CNI bevinden met dynamische IP-toewijzing en worden bijgewerkt naar AKS-clusters waarop Azure CNI wordt uitgevoerd met Cilium, worden er nieuwe werkbelastingen voor knooppunten gemaakt zonder kube-proxy. Oudere workloads worden ook gemigreerd om te worden uitgevoerd zonder kube-proxy als onderdeel van dit upgradeproces.
Volgende stappen
Meer informatie over netwerken in AKS vindt u in de volgende artikelen:
Azure Kubernetes Service