Dela via


Använd Fleet Manager Managed Namespaces för multi-tenancy i flera kluster (förhandsversion)

Gäller för: ✔️ Fleet Manager med hubbkluster

Den här artikeln visar hur du använder Fleet Manager Managed Namespaces för att definiera resurskvoter och nätverksprinciper samt hur du delegerar användaråtkomst för namnområden i flera kluster.

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.

Innan du börjar

Viktigt!

Den här artikeln är avsedd för plattformsadministratörer som behöver skapa, konfigurera och hantera hanterade namnområden för flera kluster i en flotta. Om du är utvecklare eller teammedlem och vill se och komma åt befintliga hanterade namnområden, se Visa hanterade namnområden som du har åtkomst till.

  • Du behöver ett Azure-konto med en aktiv prenumeration. Skapa ett konto kostnadsfritt.

  • Du behöver en flotta med ett hubbkluster. Om du inte har ett kan du se skapa och ansluta minst ett AKS-kluster (Azure Kubernetes Service) till flottan.

  • Läs översikten över hanterade namnområden för flera kluster för att förstå begreppet hanterat namnområde.

  • Du behöver Azure CLI version 2.58.0 eller senare installerat för att slutföra den här artikeln. Information om hur du installerar eller uppgraderar finns i Installera Azure CLI.

  • Du behöver Azure CLI-tillägget fleet . Du kan installera den och uppdatera till den senaste versionen med hjälp av kommandona az extension add och az extension update .

    # Install the extension
    az extension add --name fleet
    
    # Update the extension
    az extension update --name fleet
    
  • Bekräfta att versionen av vagnparkstillägget är minst 1.7.0 med kommandot az extension show .

    az extension show --name fleet
    
  • Ange följande miljövariabler för ditt prenumerations-ID, resursgrupp, Fleet och Fleet Member:

    export SUBSCRIPTION_ID=<subscription-id>
    export GROUP=<resource-group-name>
    export FLEET=<fleet-name>
    export FLEET_ID=<fleet-id>
    
  • Ange standardprenumerationen för Azure med kommandot az account set .

    az account set --subscription ${SUBSCRIPTION_ID}
    

Skapa ett nytt hanterat namnområde för flera kluster

Viktigt!

En implementeringsprincip och en borttagningsprincip krävs när du skapar ett hanterat namnområde för flera kluster.

  • Skapa ett nytt hanterat namnområde för flera kluster med kommandot az fleet namespace create .

        az fleet namespace create \
            --resource-group $GROUP \
            --fleet-name $FLEET \
            --name my-managed-namespace \ 
            --annotations annotation1=value1 annotation2=value2 \
            --labels team=myTeam label2=value2 \
            --cpu-requests 1m \
            --cpu-limits 4m \
            --memory-requests 1Mi \
            --memory-limits 4Mi \
            --ingress-policy allowAll \
            --egress-policy allowAll \
            --delete-policy keep \
            --adoption-policy never
    

Viktigt!

När ett hanterat namnområde med flera kluster antar ett enda klusterhanterat namnområde eller vice versa kan det leda till att ägarskapet är i konflikt. Om du gör det använder du en borttagningsprincip keep för för att undvika att ta bort Kubernetes-resurser som fortfarande hanteras aktivt av antingen Fleet eller ett AKS-kluster.

Delegera åtkomst till en användare

Du kan nu tilldela åtkomst till en användare för det hanterade namnområdet mellan medlemskluster med någon av de inbyggda rollerna.

  • Skapa en rolltilldelning med kommandot az role assignment create . I följande exempel tilldelas rollen Azure Kubernetes Fleet Manager RBAC Writer för medlemskluster:

    az role assignment create --role "Azure Kubernetes Fleet Manager RBAC Writer for Member Clusters" --assignee <USER-ENTRA-ID> --scope $FLEET_ID/managedNamespaces/my-managed-namespace
    

Lägga till medlemskluster i ett hanterat namnområde

Du kan styra vilka medlemskluster som det hanterade namnområdet ska distribueras till genom att ange önskad lista över medlemsklusternamn. Alla ohanterade namnområden med samma namn i medlemskluster som inte finns i den angivna listan förblir orörda.

Viktigt!

Kontrollera att medlemskluster uppfyller följande krav:

  • Medlemskluster i ett hanterat namnområde måste ha en Kubernetes-målversion på minst 1.30.0. Kluster under den här versionen blockerar inte slutanvändare från att ändra de placerade resurserna.
  • De kluster som du anger måste vara medlemmar i flottan.
  • Ange den fullständiga listan över medlemskluster som du vill distribuera det hanterade namnområdet till med hjälp av az fleet namespace create kommandot med parametern --member-cluster-names . Namnområdet sprids till alla kluster i listan.

    I det här exemplet distribueras namnområdet till clusterA, clusterBoch clusterC.

    az fleet namespace create \
        --resource-group $GROUP \
        --fleet-name $FLEET \
        --name my-managed-namespace \
        --member-cluster-names clusterA clusterB clusterC
    

Ta bort medlemskluster från ett hanterat namnområde

Du kan ta bort medlemskluster från ett hanterat namnområde genom att ange listan över medlemskluster som du vill att namnområdet ska vara kvar på, exklusive alla kluster som du vill ta bort. Den här åtgärden tar bort namnområdet från de kluster som inte ingår i listan.

  • Ange listan över medlemskluster som du vill att det hanterade namnområdet ska vara kvar på med kommandot az fleet namespace create med parametern --member-cluster-names . Namnområdet tas bort från alla kluster som undantas från listan.

    I det här exemplet tas namnområdet bort från clusterC.

    az fleet namespace create \
        --resource-group $GROUP \
        --fleet-name $FLEET \
        --name my-managed-namespace \
        --member-cluster-names clusterA clusterB
    

Visa det hanterade namnområdet för flera kluster

  • Visa det hanterade namnområdet med kommandot az fleet namespace show .

    az fleet namespace show \
       --resource-group $GROUP \
       --fleet-name $FLEET \
       --name my-managed-namespace \
       -o table
    

    Dina utdata bör likna följande exempelutdata:

    AdoptionPolicy  DeletePolicy   ETag                                    Location   Name                  ProvisioningState   ResourceGroup
    --------------  ------------   -------------------------------------   --------   --------------------  -----------------   -------------
    Always          Delete         "aaaaaaaa-0b0b-1c1c-2d2d-333333333333   westus2    my-managed-namespace  Succeeded           test-rg
    

Ta bort ett hanterat namnområde för flera kluster

  • Ta bort ett hanterat namnområde för flera kluster med kommandot az fleet namespace delete .

    az fleet namespace delete \
        --resource-group $GROUP \
        --fleet-name $FLEET \
        --name my-managed-namespace \
    

Nästa steg