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.
Den här artikeln beskriver API:et ResourcePlacement , som möjliggör detaljerad kontroll över kubernetes-resurser med namnområdesomfång i medlemskluster med Azure Kubernetes Fleet Manager.
Viktigt!
Förhandsversionsfunktionerna i Azure Kubernetes Fleet Manager är tillgängliga via självbetjäning och opt-in. Förhandsversioner tillhandahålls "i befintligt skick" och "i mån av tillgång," och de är undantagna från servicenivåavtal och begränsad garanti. Förhandsversioner av Azure Kubernetes Fleet Manager omfattas delvis av kundsupport på bästa sätt. Därför är dessa funktioner inte avsedda för produktionsanvändning.
Översikt
ResourcePlacement är ett API inom ett namnområde som möjliggör dynamisk urval och spridning av resurser över flera kluster inom namnområden. Den ger detaljerad kontroll över hur specifika resurser i ett namnområde distribueras mellan medlemskluster i en flotta.
Viktigt!
ResourcePlacement använder API-versionen placement.kubernetes-fleet.io/v1beta1 och är för närvarande i förhandsversion. Vissa funktioner som visas i den här artikeln, till exempel selectionScope i ClusterResourcePlacement, är också en del av v1beta1-API:et och är inte tillgängliga i v1-API:et.
Viktiga egenskaper:
-
Namnområdesomfång: Både objektet
ResourcePlacementoch de resurser som det hanterar finns inom samma namnområde. - Selektiv: Kan rikta specifika resurser efter typ, namn eller etiketter i stället för hela namnområden.
-
Deklarativ: Använder samma placeringsmönster som
ClusterResourcePlacementför konsekvent beteende.
A ResourcePlacement består av tre kärnkomponenter:
- Resursväljare: Definiera vilka namnområdesomfångsresurser som ska inkluderas.
-
Placeringsprincip: Fastställa målkluster med hjälp av
PickAll,PickFixedellerPickNstrategier. - Distributionsstrategi: Styr hur ändringar sprids över valda kluster.
När du ska använda ResourcePlacement
ResourcePlacement är perfekt för scenarier som kräver detaljerad kontroll över namnområdesomfångsresurser:
- Selektiv resursdistribution: Distribuera specifika ConfigMaps, hemligheter eller tjänster utan att påverka hela namnområdet.
- Miljöer med flera klientorganisationer: Tillåt att olika team hanterar sina resurser oberoende av varandra i delade namnområden.
- Konfigurationshantering: Distribuera miljöspecifika konfigurationer i olika klustermiljöer.
- Efterlevnad och styrning: Tillämpa olika principer på olika resurstyper inom samma namnområde.
- Progressiva distributioner: Distribuera resursuppdateringar på ett säkert sätt mellan kluster med strategier för noll stilleståndstid.
I miljöer med flera kluster består arbetsbelastningar ofta av både klusteromfattande och namnområdesomfångsbegränsade resurser som måste distribueras över olika kluster. Även om ClusterResourcePlacement (CRP) hanterar resurser med klusteromfattning effektivt, hela namnområden och deras innehåll, finns det scenarier där du behöver mer detaljerad kontroll över namnområdesomfångsresurser inom befintliga namnområden.
ResourcePlacement (RP) utformades för att åtgärda denna lucka genom att tillhandahålla följande:
- Resurshantering med namnområdesomfång: Rikta in sig på specifika resurser i ett namnområde utan att påverka hela namnområdet.
- Driftflexitet: Gör det möjligt för team att hantera olika resurser inom samma namnområde oberoende av varandra.
- Kompletterande funktioner: Arbeta tillsammans med CRP för att tillhandahålla en komplett resurshanteringslösning för flera kluster.
Anmärkning
ResourcePlacement kan användas tillsammans med ClusterResourcePlacement i namnområdesläge. Du kan till exempel använda CRP för att distribuera namnområdet, samtidigt som du använder RP för detaljerad hantering av specifika resurser som miljöspecifika ConfigMaps eller hemligheter inom det namnområdet.
Användningsmönster för verkliga namnområden
Crp förutsätter att namnområden representerar programgränser, men verkliga användningsmönster är ofta mer komplexa. Organisationer använder ofta namnområden som gruppgränser snarare än programgränser, vilket leder till flera utmaningar som ResourcePlacement direkt åtgärdar:
Namnområden för flera program: I många organisationer innehåller ett enda namnområde flera oberoende program som ägs av samma team. Dessa program kan ha:
- Olika livscykelkrav (ett program kan behöva frekventa uppdateringar medan ett annat förblir stabilt).
- Olika klusterplaceringsbehov (utveckling jämfört med produktionsprogram).
- Oberoende skalning och resurskrav.
- Separata efterlevnads- eller styrningskrav.
Beslut om individuell schemaläggning: Många arbetsbelastningar, särskilt AI/ML-jobb, kräver individuella schemaläggningsbeslut:
- AI-jobb: Maskininlärningsarbetsbelastningar består ofta av kortvariga, resursintensiva jobb som måste schemaläggas baserat på klusterresurstillgänglighet, GPU-tillgänglighet eller datalokalitet.
- Batcharbetsbelastningar: Olika batchjobb inom samma namnområde kan rikta in sig på olika klustertyper baserat på beräkningskrav.
Fullständig kontroll över programteamet: ResourcePlacement Ger programteam direkt kontroll över sin resursplacering utan att behöva vidta åtgärder för plattformsteamet:
- Självbetjäningsåtgärder: Teams kan hantera sina egna strategier för resursdistribution.
- Oberoende distributionscykler: Olika program inom ett namnområde kan ha oberoende distributionsscheman.
- Granulära åsidosättningsmöjligheter: Team kan skräddarsy resurskonfigurationer per kluster utan att påverka andra applikationer i namnrymden.
Den här detaljerade metoden säkerställer att den kan anpassas till olika organisationsstrukturer och arbetsbelastningsmönster samtidigt som ResourcePlacement enkelheten och kraften i fleet-schemaläggningsramverket bibehålls.
Viktiga skillnader mellan ResourcePlacement och ClusterResourcePlacement
I följande tabell visas de viktigaste skillnaderna mellan ResourcePlacement och ClusterResourcePlacement:
| Aspekt | ResourcePlacement (RP) | ClusterResourcePlacement (CRP) |
|---|---|---|
| Scope | Endast resurser med namnområdesscope | Klusteromfångsresurser (särskilt namnområden och deras innehåll) |
| Resource | API-objekt som är namnområdesspecifikt | API-objekt med klusteromfattning |
| Markeringsgräns | Begränsat till resurser inom samma namnområde som RP | Kan välja valfri klusteromfattningsresurs |
| Vanliga användningsfall | AI/ML-jobb, enskilda arbetsbelastningar, specifika ConfigMaps/Hemligheter som behöver oberoende placeringsbeslut | Programpaket, hela namnområden, klusteromfattande principer |
| Teamägarskap | Kan hanteras av namnområdesägare/utvecklare | Hanteras vanligtvis av plattformsoperatorer |
Både ResourcePlacement och ClusterResourcePlacement delar samma kärnfunktioner för alla andra aspekter som inte visas i tabellen med skillnader.
Arbeta med ClusterResourcePlacement
ResourcePlacement är utformad för att fungera i samordning med ClusterResourcePlacement (CRP) för att tillhandahålla en komplett resurshanteringslösning för flera kluster. Att förstå den här relationen är avgörande för effektiv hantering av flottan.
Krav för namnområde
Viktigt!
ResourcePlacement kan bara placera namnområdesomfångsresurser till kluster som redan har målnamnområdet. Vi rekommenderar att du använder ClusterResourcePlacement för namnområdesetablering.
Typiskt arbetsflöde:
-
Plattformsadministratör: Används
ClusterResourcePlacementför att distribuera namnområden i hela flottan. -
Programteam: Använd
ResourcePlacementför att hantera specifika resurser inom de etablerade namnrymderna.
Följande exempel visar hur du samordnar CRP och RP:
Anmärkning
I följande exempel används API-versionen placement.kubernetes-fleet.io/v1beta1 . Fältet selectionScope: NamespaceOnly är en förhandsgranskningsfunktion som är tillgänglig i v1beta1 och är inte tillgänglig i v1-API:et.
Plattformsadministratör: Skapa först namnområdet med hjälp av ClusterResourcePlacement:
apiVersion: placement.kubernetes-fleet.io/v1beta1
kind: ClusterResourcePlacement
metadata:
name: app-namespace-crp
spec:
resourceSelectors:
- group: ""
kind: Namespace
name: my-app
version: v1
selectionScope: NamespaceOnly # only namespace itself is placed, no resources within the namespace
policy:
placementType: PickAll # If placement type is not PickAll, the application teams needs to know what are the clusters they can place their applications.
Programteam: Hantera sedan specifika resurser i namnområdet med hjälp av ResourcePlacement:
apiVersion: placement.kubernetes-fleet.io/v1beta1
kind: ResourcePlacement
metadata:
name: app-configs-rp
namespace: my-app
spec:
resourceSelectors:
- group: ""
kind: ConfigMap
version: v1
labelSelector:
matchLabels:
app: my-application
policy:
placementType: PickFixed
clusterNames:
- cluster1
- cluster2
Metodtips
När du använder ResourcePlacement med ClusterResourcePlacementföljer du dessa metodtips:
-
Upprätta namnområden först: Kontrollera alltid att namnrymder distribueras via CRP innan du skapar
ResourcePlacementobjekt. - Övervaka beroenden: Använd fleetövervakning för att säkerställa att CRP:er på namnområdesnivå är felfria innan du distribuerar beroende RP:er.
- Koordinatprinciper: Justera CRP- och RP-placeringsprinciper för att undvika konflikter (till exempel om CRP placerar namnrymd på kluster A, B, C, RP kan rikta sig mot alla delmängder av dessa kluster).
- Gruppgränser: Använd CRP för plattformshanterade resurser (namnområden, RBAC) och RP för programhanterade resurser (appkonfigurationer, hemligheter).
Den här samordnade metoden säkerställer att ger den flexibilitet som ResourcePlacement teamen behöver samtidigt som den grundläggande infrastrukturen som hanteras av plattformsoperatörer upprätthålls.
Resursval, placering och distribution
ResourcePlacement använder samma placeringsmönster som ClusterResourcePlacement:
-
Placeringstyper:
PickAll,PickFixedochPickNstrategier fungerar identiskt för båda API:erna. - Distributionsstrategi: Kontrollera hur uppdateringar sprids mellan kluster med samma mekanismer för löpande uppdatering.
-
Status och observerbarhet: Övervaka distributionsförloppet med hjälp av
kubectl describe resourceplacement <name> -n <namespace>. - Avancerade funktioner: Använd toleranser, resurs åsidosättningar, begränsningar för topologispridning och tillhörighetsregler.
Den viktigaste skillnaden är omfånget för resursval . Medan ClusterResourcePlacement vanligtvis väljer hela namnområden och deras innehåll, ger ResourcePlacement detaljerad kontroll över enskilda resurser som omfattas av namnområden.
Fullständig information om dessa funktioner finns i dokumentationen om ClusterResourcePlacement.
Nästa steg
- Använd ResourcePlacement för att distribuera namnområdesomfångsbegränsade resurser i flera kluster
- Använda ClusterResourcePlacement för att distribuera klusteromfattningsresurser
- Resursplacering med flera kluster med hjälp av klusterresursplacering
- Använda åsidosättningar för att anpassa namnområdesomfångsresurser
- Definiera en distributionsstrategi för resursplacering
- Vanliga frågor och svar om placering av klusterresurser
Azure Kubernetes Service