Not
Å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.
Gäller för: ✔️ AKS Automatic ✔️ AKS Standard
När du hanterar kluster i Azure Kubernetes Service (AKS) måste du ofta isolera team och arbetsbelastningar. Med logisk isolering kan du använda ett enda AKS-kluster för flera arbetsbelastningar, team eller miljöer. Kubernetes-namnområden utgör den logiska isoleringsgränsen för arbetsbelastningar och resurser. Att utföra logisk isolering innebär att implementera skript och processer för att skapa namnområden, ange resursgränser, tillämpa nätverksprinciper och bevilja teamåtkomst via rollbaserad åtkomstkontroll. Lär dig hur du använder hanterade namnområden i Azure Kubernetes Service (AKS) för att förenkla hantering av namnområden, kluster för flera innehavare och resursisolering.
Logisk separation av kluster ger vanligtvis en högre podddensitet än fysiskt isolerade kluster, med mindre överskott av beräkningskapacitet som ligger inaktiv i klustret. När du kombinerar med autoskalning av kluster eller automatisk nodetablering kan du skala upp eller ned antalet noder för att uppfylla kraven. Den här bästa metoden minimerar kostnaderna genom att bara köra det antal noder som krävs.
Nätverksprinciper
Nätverksprinciper är Kubernetes-resurser som du kan använda för att styra trafikflödet mellan poddar, namnområden och externa slutpunkter. Med nätverksprinciper kan du definiera regler för inkommande (inkommande) och utgående (utgående) trafik, vilket säkerställer att endast auktoriserad kommunikation tillåts. Genom att tillämpa nätverksprinciper kan du förbättra säkerheten och isoleringen av arbetsbelastningar i klustret.
Anmärkning
Standardregeln för ingressnätverksprinciper för Tillåt samma namnområde väljer en säker som standardinställning. Om du behöver att dina Kubernetes-tjänster, ingresser eller gatewayer ska vara tillgängliga utanför namnområdet där de distribueras, till exempel från en ingresskontrollant som distribueras i ett separat namnområde, måste du välja Tillåt alla. Du kan sedan använda din egen nätverksprincip för att begränsa ingress till att endast komma från det namnområdet.
Hanterade namnområden levereras med en uppsättning inbyggda principer.
- Tillåt alla: Tillåter all nätverkstrafik.
- Tillåt samma namnområde: Tillåter all nätverkstrafik inom samma namnområde.
- Neka alla: Nekar all nätverkstrafik.
Du kan tillämpa någon av de inbyggda principerna på både ingress - och utgående regler och de har följande standardvärden.
| Riktlinje | Standardvärde |
|---|---|
| Inledning | Tillåt samma namnområde |
| Utgång | Tillåt alla |
Anmärkning
Användare med en Microsoft.ContainerService/managedClusters/networking.k8s.io/networkpolicies/write åtgärd, till exempel Azure Kubernetes Service RBAC Writer, på den Microsoft Entra-ID-roll som de tilldelas kan lägga till fler nätverksprinciper via Kubernetes-API:et.
Om en administratör till exempel tillämpar en Deny All princip för ingress/utgående och en användare tillämpar en Allow princip för ett namnområde via Kubernetes-API:et Allow prioriteras principen framför Deny All principen och trafiken tillåts flöda för namnområdet.
Resurskvoter
Resurskvoter är Kubernetes-resurser som används för att hantera och begränsa resursförbrukningen för namnområden i ett kluster. De gör det möjligt för administratörer att definiera begränsningar för mängden processor, minne, lagring eller andra resurser som används av arbetsbelastningar i ett namnområde. Genom att tillämpa resurskvoter kan du säkerställa rättvis resursdistribution, förhindra resursöveranvändning och upprätthålla klusterstabilitet.
Hanterade namnområden kan skapas med följande resurskvoter:
- CPU-begäranden och -gränser: Definiera den minsta och högsta mängd cpu-resurser som arbetsbelastningar i namnområdet kan begära eller använda. Kvoten säkerställer att arbetsbelastningarna har tillräckligt med CPU-resurser för att fungera samtidigt som överanvändning som kan påverka andra namnområden förhindras. Kvoten definieras i milliCPU-formuläret.
-
Minnesbegäranden och gränser: Ange den minsta och högsta mängden minnesresurser som arbetsbelastningar i namnområdet kan begära eller använda. Kvoten hjälper till att upprätthålla stabiliteten genom att undvika minnesövertagande och säkerställa rättvis resursallokering mellan namnområden. Kvoten definieras i power-of-two-ekvivalenter, till exempel
Ei,Pi,Ti,Gi,Mi,Ki.
Etiketter och anteckningar
Kubernetes-etiketter och anteckningar är metadata som är kopplade till Kubernetes-objekt, till exempel namnområden, för att ge ytterligare information. Etiketter är nyckel/värde-par som används för att organisera och välja resurser, vilket möjliggör effektiv gruppering och frågor. Anteckningar lagrar ickeidentifierande metadata, till exempel konfigurationsinformation eller driftsinstruktioner, som används av verktyg eller system.
Du kan också ange kubernetes-etiketter och anteckningar som ska tillämpas på namnområdet.
Implementeringsprincip
Implementeringsprincipen avgör hur ett befintligt namnområde i Kubernetes hanteras när ett hanterat namnområde skapas.
Varning
Registrering av ett befintligt namnområde som ska hanteras kan orsaka avbrott. Om resurskvoten som tillämpas är mindre än vad som redan begärs av poddar nekas nya distributioner och poddar som överskrider kvoten. Befintliga distributioner påverkas inte, men skalning är inte tillåten. Att tillämpa nätverksprinciper på ett befintligt namnområde kan påverka befintlig trafik. Se till att principerna testas och verifieras för att undvika oavsiktliga avbrott i kommunikationen mellan poddar eller externa slutpunkter.
Följande alternativ är tillgängliga:
- Aldrig: Om namnområdet redan finns i klustret, misslyckas försöken att skapa namnområdet som ett hanterat namnområde.
- IfIdentical: Ta över det befintliga namnområdet som ska hanteras, förutsatt att det inte finns några skillnader mellan det befintliga namnområdet och den önskade konfigurationen.
- Alltid: Ta alltid över det befintliga namnområdet som ska hanteras, även om vissa fält i namnområdet kan skrivas över.
Ta bort princip
Borttagningsprincipen anger hur Kubernetes-namnområdet hanteras när den hanterade namnområdesresursen tas bort.
Varning
Om du tar bort ett hanterat namnområde med principen Ta bort tas alla resurser i namnområdet bort, till exempel Distributioner, tjänster, ingresser och andra Kubernetes-objekt. Se till att du säkerhetskopierar eller migrerar kritiska resurser innan du fortsätter.
Följande alternativ är tillgängliga:
-
Behåll: Ta bara bort resursen för det hanterade namnområdet samtidigt som Kubernetes-namnområdet hålls intakt. Dessutom
ManagedByARMtas etiketten bort från namnområdet. - Ta bort: Ta bort både den hanterade namnområdesresursen och Kubernetes-namnområdet tillsammans.
Inbyggda roller för hanterade namnområden
Hanterade namnområden använder följande inbyggda roller för kontrollplanet.
| Befattning | Beskrivning |
|---|---|
| Azure Kubernetes-tjänstnamnområdesdeltagare | Ger åtkomst till att skapa, uppdatera och ta bort hanterade namnområden i ett kluster. |
| Azure Kubernetes-tjänstnamnområdesanvändare | Tillåter skrivskyddad åtkomst till ett hanterat namnområde i ett kluster. Tillåter åtkomst till listautentiseringsuppgifter i namnområdet. |
Hanterade namnområden använder följande inbyggda roller för dataplanet.
| Befattning | Beskrivning |
|---|---|
| RBAC-läsare för Azure Kubernetes Service | Tillåter läsåtkomst för att se de flesta objekt i en namnrymd. Det tillåter inte visning av roller eller rollbindningar. Den här rollen tillåter inte visning av hemligheter eftersom läsning av innehållet i Hemligheter ger åtkomst till ServiceAccount-autentiseringsuppgifter i namnområdet, vilket skulle tillåta API-åtkomst som alla ServiceAccount i namnområdet (en form av eskalering av privilegier). |
| Azure Kubernetes Service RBAC-skribent | Tillåter läs-/skrivåtkomst till de flesta objekt i ett namnområde. Den här rollen tillåter inte visning eller ändring av roller eller rollbindningar. Den här rollen tillåter dock åtkomst till Secrets och att köra Pods som vilket ServiceAccount som helst i namnområdet, så den kan användas för att få API-åtkomstnivåer för alla ServiceAccounts i namnområdet. |
| RBAC-administratör för Azure Kubernetes Service | Tillåter läs-/skrivåtkomst till de flesta resurser i ett namnområde, inklusive möjligheten att skapa roller och rollbindningar i namnområdet. Den här rollen tillåter inte skrivåtkomst till resurskvoten eller till själva namnområdet. |
Användningsfall för hanterade namnområden
Korrekt konfiguration av namnområden med associerade kvoter eller nätverksprinciper kan vara komplext och tidskrävande. Med hanterade namnområden kan du konfigurera förkonfigurerade namnområden i dina AKS-kluster som du kan interagera med med azure CLI.
I följande avsnitt beskrivs några vanliga användningsfall för hanterade namnområden.
Hantera team och resurser på AKS
Anta att du är systemadministratör på ett litet startupföretag. Du har ett AKS-kluster etablerat och vill konfigurera namnområden för utvecklare från dina ekonomi-, juridiska och designteam . När du konfigurerar företagets miljö vill du se till att åtkomsten är strikt kontrollerad, att resurserna är begränsade och att miljöerna är ordnade på rätt sätt.
Ekonomiteamet tar in formulär och filer från team över hela företaget, men de har känslig information som helst inte bör lämna deras miljö. Deras program och arbetsflöden är lättare på datorsidan men förbrukar mycket minne. Därför bestämmer du dig för att konfigurera ett namnområde som tillåter all inkommande nätverkstrafik, men begränsar utgående nätverkstrafik till endast deras eget namnområde och anpassar resurserna därefter. En etikett till namnområdet hjälper dig att enkelt identifiera vilket team som använder den.
az aks namespace add \ --name $FINANCE_NAMESPACE \ --cluster-name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --cpu-request 250m \ --cpu-limit 500m \ --memory-request 512Mi \ --memory-limit 2Gi \ --ingress-policy AllowAll \ --egress-policy AllowSameNamespace \ --labels team=financeDet juridiska teamet hanterar främst känsliga data. Deras program använder en hel del minne men kräver lite beräkningsresurser. Du bestämmer dig för att konfigurera ett namnområde som är extremt restriktivt för både ingress- och egresspolicier och utforma deras resurskvoter i enlighet med dessa.
az aks namespace add \ --name $LEGAL_NAMESPACE \ --cluster-name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --cpu-request 250m \ --cpu-limit 500m \ --memory-request 2Gi \ --memory-limit 5Gi \ --ingress-policy DenyAll \ --egress-policy DenyAll \ --labels team=legalDesignteamet behöver möjligheten att fritt flöda data för att visa upp sitt arbete i hela företaget. De uppmuntrar också team att skicka innehåll som referens till dem. Deras program är intensiva och kräver en stor mängd minne och PROCESSOR. Du bestämmer dig för att konfigurera dem med ett minimalt restriktivt namnområde och allokera en betydande mängd resurser för dem.
az aks namespace add \ --name $DESIGN_NAMESPACE \ --cluster-name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --cpu-request 2000m \ --cpu-limit 2500m \ --memory-request 5Gi \ --memory-limit 8Gi \ --ingress-policy AllowAll \ --egress-policy AllowAll \ --labels team=design
Med dessa namnområden konfigurerade har du nu miljöer för de tre teamen i din organisation som bör göra det möjligt för varje team att komma igång i en miljö som bäst passar deras behov. Administratörer kan använda Azure CLI-anrop för att uppdatera namnrymderna när behoven ändras.
Visa hanterade namnområden
När antalet team som du hanterar ökar, eller när din organisation växer, kanske du behöver granska de namnområden som du har konfigurerat.
Anta att du vill granska namnrymderna i klustret från föregående avsnitt för att säkerställa att det finns tre namnområden.
az aks namespace list Använd kommandot för att granska dina namnområden.
az aks namespace list \
--cluster-name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP \
--output table
Ditt resultat ska likna följande exempelresultat:
Name ResourceGroup Location
------------------ --------------- ----------
$CLUSTER_NAME/$DESIGN_NAMESPACE $RESOURCE_GROUP <LOCATION>
$CLUSTER_NAME/$LEGAL_NAMESPACE $RESOURCE_GROUP <LOCATION>
$CLUSTER_NAME/$FINANCE_NAMESPACE $RESOURCE_GROUP <LOCATION>
Kontrollera åtkomsten till hanterade namnområden
Du kan ytterligare använda Azure RBAC-roller, begränsade till varje namnområde, för att avgöra vilka användare som har åtkomst till vissa åtgärder i namnområdet. Med rätt konfiguration kan du se till att användarna har all åtkomst de behöver inom namnområdet, samtidigt som de begränsar sin åtkomst till andra namnområden eller klusteromfattande resurser.
Nästa steg
- Lär dig hur du skapar och använder hanterade namnområden i Azure Kubernetes Service (AKS).
- Lär dig mer om hanterade namnområden med flera kluster med Azure Kubernetes Fleet Manager.
Azure Kubernetes Service