Planeringskrav för IP-adresser
Gäller för: Azure Local, version 23H2
IP-adressplanering för AKS som aktiveras av Azure Arc omfattar utformning av ett nätverk som stöder program, nodpooler, poddnätverk, tjänstkommunikation och extern åtkomst. Den här artikeln beskriver några viktiga överväganden för effektiv IP-adressplanering och det minsta antal IP-adresser som krävs för att distribuera AKS i produktion. Läs begrepp och krav för AKS-nätverk innan du läser den här artikeln.
Enkel IP-adressplanering för Kubernetes-kluster och -program
I följande scenarios genomgång reserverar du IP-adresser från ett enda nätverk för dina Kubernetes-kluster och -tjänster. Det här exemplet är det enklaste och enklaste scenariot för IP-adresstilldelning.
KRAV för IP-adress | Minsta antal IP-adresser | Hur och var du gör den här reservationen |
---|---|---|
IP-adresser för virtuella AKS Arc-datorer | Reservera en IP-adress för varje arbetsnod i ditt Kubernetes-kluster. Om du till exempel vill skapa 3 nodpooler med 3 noder i varje nodpool behöver du 9 IP-adresser i DIN IP-pool. | Reservera IP-adresser via IP-pooler i det logiska Arc VM-nätverket. |
AKS Arc K8s-versionsuppgraderings-IP-adresser | Eftersom AKS Arc utför löpande uppgraderingar reserverar du en IP-adress för varje AKS Arc-kluster för uppgraderingsåtgärder för Kubernetes-versioner. | Reservera IP-adresser via IP-pooler i det logiska Arc VM-nätverket. |
Ip-adress för kontrollplan | Reservera en IP-adress för varje Kubernetes-kluster i din miljö. Om du till exempel vill skapa totalt 5 kluster reserverar du 5 IP-adresser, en för varje Kubernetes-kluster. | Reservera IP-adresser via IP-pooler i det logiska Arc VM-nätverket. |
IP-adresser för lastbalanserare | Antalet reserverade IP-adresser beror på programdistributionsmodellen. Som utgångspunkt kan du reservera en IP-adress för varje Kubernetes-tjänst. | Reservera IP-adresser i samma undernät som det logiska arc-VM-nätverket, men utanför IP-poolen. |
Exempel på genomgång för IP-adressreservation för Kubernetes-kluster och -program
Jane är IT-administratör och har precis börjat med AKS aktiverat av Azure Arc. Jane vill distribuera två Kubernetes-kluster: Kubernetes-kluster A och Kubernetes-kluster B i Azure Local-klustret. Jane vill också köra ett röstningsprogram ovanpå kluster A. Det här programmet har tre instanser av klientdelsgränssnittet som körs i de två klustren och en instans av serverdelsdatabasen. Alla AKS-kluster och -tjänster körs i ett enda nätverk med ett enda undernät.
- Kubernetes-kluster A har 3 kontrollplansnoder och 5 arbetsnoder.
- Kubernetes-kluster B har 1 kontrollplansnod och 3 arbetsnoder.
- 3 instanser av klientdelsgränssnittet (port 443).
- 1 instans av serverdelsdatabasen (port 80).
Baserat på föregående tabell måste Jane reservera totalt 19 IP-adresser i Janes undernät:
- 8 IP-adresser för de virtuella AKS Arc-noddatorerna i kluster A (en VIRTUELL IP-adress per K8-nod).
- 4 IP-adresser för de virtuella AKS Arc-noddatorerna i kluster B (en VIRTUELL IP-adress per K8-nod).
- 2 IP-adresser för att köra AKS Arc-uppgraderingsåtgärden (en IP-adress per AKS Arc-kluster).
- 2 IP-adresser för AKS Arc-kontrollplanet (en IP-adress per AKS Arc-kluster)
- 3 IP-adresser för Kubernetes-tjänsten (en IP-adress per instans av klientdelsgränssnittet, eftersom alla använder samma port. Serverdelsdatabasen kan använda någon av de tre IP-adresserna så länge den använder en annan port).
Om du fortsätter med det här exemplet och lägger till det i följande tabell får du:
Parameter | Antal IP-adresser | Hur och var du gör den här reservationen |
---|---|---|
AKS Arc VMs, K8s version upgrade and control plane IP | Reservera 16 IP-adresser | Gör den här reservationen via IP-pooler i det lokala logiska Azure-nätverket. |
IP-adresser för lastbalanserare | 3 IP-adress för Kubernetes-tjänster för Janes röstningsprogram. | Dessa IP-adresser används när du installerar en lastbalanserare i kluster A. Du kan använda MetalLB Arc-tillägget eller ta med din egen lastbalanserare från tredje part. Kontrollera att den här IP-adressen finns i samma undernät som det logiska Arc-nätverket, men utanför IP-poolen som definierats i det logiska arc-VM-nätverket. |
Exempel på CLI-kommandon för IP-adressreservation för Kubernetes-kluster och -program
I det här avsnittet beskrivs uppsättningen kommandon som Jane kör för sitt scenario. Skapa först ett logiskt nätverk med en IP-pool som har minst 16 IP-adresser. Vi skapade IP-poolen med 20 IP-adresser för att ge möjlighet att skala på dag N. Detaljerad information om parameteralternativ i logiska nätverk finns az stack-hci-vm network lnet create
i :
$ipPoolStart = "10.220.32.18"
$ipPoolEnd = "10.220.32.37"
az stack-hci-vm network lnet create --subscription $subscription --resource-group $resource_group --custom-location $customLocationID --name $lnetName --vm-switch-name $vmSwitchName --ip-allocation-method "Static" --address-prefixes $addressPrefixes --gateway $gateway --dns-servers $dnsServers --ip-pool-start $ipPoolStart --ip-pool-end $ipPoolEnd
Skapa sedan ett AKS Arc-kluster med det tidigare logiska nätverket:
az aksarc create -n $aksclustername -g $resource_group --custom-location $customlocationID --vnet-ids $lnetName --aad-admin-group-object-ids $aadgroupID --generate-ssh-keys
Nu kan du aktivera MetalLB-lastbalanserare med en IP-pool med 3 IP-adresser i samma undernät som det logiska arc-VM-nätverket. Du kan lägga till fler IP-pooler senare om programmet behöver ökas. Detaljerade krav finns i översikten över MetalLB Arc-tillägget.
az k8s-runtime load-balancer create --load-balancer-name $lbName --resource-uri subscriptions/$subscription/resourceGroups/$resource_group/providers/Microsoft.Kubernetes/connectedClusters/metallb-demo --addresses 10.220.32.47-10.220.32.49 --advertise-mode ARP
LNETs-överväganden för AKS-kluster och virtuella Arc-datorer
Logiska nätverk på Azure Local används av både AKS-kluster och virtuella Arc-datorer. Du kan konfigurera logiska nätverk på något av följande två sätt:
- Dela ett logiskt nätverk mellan virtuella AKS- och Arc-datorer.
- Definiera separata logiska nätverk för AKS-kluster och virtuella Arc-datorer.
Genom att dela ett logiskt nätverk mellan virtuella AKS- och Arc-datorer på Azure Local kan du dra nytta av effektiv kommunikation, kostnadsbesparingar och förenklad nätverkshantering. Den här metoden medför dock även potentiella utmaningar som resurskonkurrering, säkerhetsrisker och komplexitet i felsökningen.
Villkor | Dela ett logiskt nätverk | Definiera separata logiska nätverk |
---|---|---|
Konfigurationskomplexitet | Enklare konfiguration med ett enda nätverk, vilket minskar konfigurationskomplexiteten. | Mer komplex konfiguration eftersom du behöver konfigurera flera logiska nätverk för virtuella datorer och AKS-kluster. |
Skalbarhet | Potentiella skalbarhetsbegränsningar eftersom både virtuella Arc-datorer och AKS-kluster delar nätverksresurser. | Mer skalbar eftersom nätverksresurser separeras och kan skalas separat. |
Hantering av nätverksprinciper | Enklare att hantera med en uppsättning nätverksprinciper, men svårare att isolera arbetsbelastningar. | Enklare att isolera arbetsbelastningar eftersom separata principer kan tillämpas per logiskt nätverk. |
Säkerhetsöverväganden | Ökad risk för sårbarheter för korskommunikation om den inte segmenteras korrekt. | Bättre säkerhet eftersom varje nätverk kan segmenteras och isoleras striktare. |
Påverkan av nätverksfel | Ett fel i det delade nätverket kan påverka både virtuella AKS- och Arc-datorer samtidigt. | Ett fel i ett nätverk påverkar endast arbetsbelastningarna i nätverket, vilket minskar den totala risken. |
Ip-adressintervallallokering för podd-CIDR och tjänst-CIDR
I det här avsnittet beskrivs DE IP-adressintervall som används av Kubernetes för podd- och tjänstkommunikation i ett kluster. Dessa IP-adressintervall definieras under processen för att skapa AKS-kluster och används för att tilldela unika IP-adresser till poddar och tjänster i klustret.
Poddnätverks-CIDR
Poddnätverks-CIDR är ett intervall med IP-adresser som används av Kubernetes för att tilldela unika IP-adresser till de enskilda poddar som körs i ett Kubernetes-kluster. Varje podd får en egen IP-adress inom det här intervallet, vilket gör att poddar kan kommunicera med varandra och med tjänster i klustret. I AKS tilldelas podd-IP-adresser via Calico CNI i VXLAN-läge. Calico VXLAN hjälper till att skapa Overlay-nätverk, där IP-adresserna för poddar (från poddnätverkets CIDR) virtualiseras och tunneleras via det fysiska nätverket. I det här läget tilldelas varje podd en IP-adress från poddnätverkets CIDR, men den här IP-adressen kan inte dirigeras direkt i det fysiska nätverket. I stället kapslas den in i nätverkspaketen och skickas via det underliggande fysiska nätverket för att nå målpodden på en annan nod.
AKS tillhandahåller ett standardvärde på 10.244.0.0/16 för poddnätverkets CIDR. AKS stöder anpassningar för poddnätverkets CIDR. Du kan ange ett eget värde med hjälp av parametern --pod-cidr
när du skapar AKS-klustret. Se till att CIDR IP-intervallet är tillräckligt stort för att rymma det maximala antalet poddar per nod och över Kubernetes-klustret.
Tjänstnätverks-CIDR
CIDR för tjänstnätverk är intervallet med IP-adresser som är reserverade för Kubernetes-tjänster som LoadBalancers, ClusterIP och NodePort i ett kluster. Kubernetes stöder följande tjänsttyper:
- ClusterIP: Standardtjänsttypen, som exponerar tjänsten i klustret. IP-adressen som tilldelats från tjänstnätverkets CIDR är endast tillgänglig i Kubernetes-klustret.
- NodePort: Exponerar tjänsten på en specifik port på varje nods IP-adress. ClusterIP används fortfarande internt, men extern åtkomst sker via nod-IP-adresser och en specifik port.
- LoadBalancer: Den här typen skapar en molnleverantörshanterad lastbalanserare och exponerar tjänsten externt. Molnleverantören hanterar vanligtvis den externa IP-tilldelningen, medan den interna ClusterIP finns kvar i tjänstnätverkets CIDR.
AKS tillhandahåller ett standardvärde på 10.96.0.0/12 för tjänstnätverkets CIDR. AKS stöder inte anpassningar för tjänstnätverkets CIDR idag.
Nästa steg
Skapa logiska nätverk för Kubernetes-kluster på Azure Local, version 23H2