Dela via


Rollbaserad åtkomstkontroll i Kubernetes på din Azure Stack Edge Pro GPU-enhet

GÄLLER FÖR: Ja för Pro GPU SKUAzure Stack Edge Pro – GPUJa för Pro 2 SKUAzure Stack Edge Pro 2Ja för Pro R SKUAzure Stack Edge Pro RJa för Mini R SKUAzure Stack Edge Mini R

När du konfigurerar beräkningsrollen på din Azure Stack Edge Pro-enhet skapas ett Kubernetes-kluster. Du kan använda rollbaserad åtkomstkontroll i Kubernetes (Kubernetes RBAC) för att begränsa åtkomsten till klusterresurserna på enheten.

Den här artikeln innehåller en översikt över Kubernetes RBAC-systemet som tillhandahålls av Kubernetes och hur Kubernetes RBAC implementeras på din Azure Stack Edge Pro-enhet.

Kubernetes RBAC

Med Kubernetes RBAC kan du tilldela användare eller grupper av användare behörighet att göra saker som att skapa eller ändra resurser eller visa loggar från programarbetsbelastningar som körs. Dessa behörigheter kan begränsas till ett enda namnområde eller beviljas i hela klustret.

När du konfigurerar Kubernetes-klustret skapas en enskild användare som motsvarar det här klustret och kallas klusteradministratörsanvändare. En kubeconfig fil är associerad med klusteradministratörsanvändaren. Filen kubeconfig är en textfil som innehåller all konfigurationsinformation som krävs för att ansluta till klustret för att autentisera användaren.

Namnområdestyper

Kubernetes-resurser, till exempel poddar och distributioner, grupperas logiskt i ett namnområde. Dessa grupperingar är ett sätt att logiskt dela upp ett Kubernetes-kluster och begränsa åtkomsten till att skapa, visa eller hantera resurser. Användare kan bara interagera med resurser inom sina tilldelade namnområden.

Namnområden är avsedda att användas i miljöer där många användare är spridda över flera team eller projekt. Mer information finns i Kubernetes-namnområden.

Din Azure Stack Edge Pro-enhet har följande namnområden:

  • Systemnamnområde – Det här namnområdet är där kärnresurser finns, till exempel nätverksfunktioner som DNS och proxy eller Kubernetes-instrumentpanelen. Vanligtvis distribuerar du inte dina egna program till det här namnområdet. Använd det här namnområdet för att felsöka problem med Kubernetes-kluster.

    Det finns flera systemnamnområden på enheten och namnen som motsvarar dessa systemnamnområden är reserverade. Här är en lista över de reserverade systemnamnrymderna:

    • kube-system
    • metallb-system
    • dbe-namespace
    • standard
    • kubernetes-dashboard
    • kube-node-lease
    • kube-public

    Se till att inte använda några reserverade namn för de användarnamnområden som du skapar.

  • Användarnamnområde – det här är de namnområden som du kan skapa via kubectl eller via PowerShell-gränssnittet på enheten för att distribuera program lokalt.

  • IoT Edge-namnområde – Du ansluter till det här iotedge namnområdet för att hantera program som distribuerats via IoT Edge.

  • Azure Arc-namnområde – Du ansluter till det här azure-arc namnområdet för att hantera program som distribuerats via Azure Arc. Med Azure Arc kan du även distribuera program i andra användarnamnsområden.

Namnområden och användare

I verkligheten är det viktigt att dela upp klustret i flera namnområden.

  • Flera användare: Om du har flera användare tillåter flera namnområden dessa användare att distribuera sina program och tjänster i sina specifika namnområden isolerat från varandra.
  • Enskild användare: Även om det finns en enda användare skulle flera namnområden göra det möjligt för användaren att köra flera versioner av programmen i samma Kubernetes-kluster.

Roller och rollbindningar

Kubernetes har begreppet roll- och rollbindning som gör att du kan ge behörighet till användare eller resurser på namnområdesnivå och på klusternivå.

  • Roller: Du kan definiera behörigheter för användare som en roll och sedan använda Roller för att bevilja behörigheter inom ett namnområde.
  • RoleBindings: När du har definierat rollerna kan du använda RoleBindings för att tilldela roller för ett givet namnområde.

Med den här metoden kan du logiskt separera ett enskilt Kubernetes-kluster, där användarna bara kan komma åt programresurserna i sitt tilldelade namnområde.

Kubernetes RBAC på Azure Stack Edge Pro

I den aktuella implementeringen av Kubernetes RBAC kan du med Azure Stack Edge Pro utföra följande åtgärder från ett begränsat PowerShell-körningsutrymme:

  • Skapa namnområden.
  • Skapa ytterligare användare.
  • Ge administratörsåtkomst till de namnområden som du skapade. Tänk på att du inte har åtkomst till klusteradministratörsrollen eller en vy över de klusteromfattande resurserna.
  • Hämta kubeconfig filen med information för att komma åt Kubernetes-klustret.

Azure Stack Edge Pro-enheten har flera systemnamnområden och du kan skapa användarnamnområden med kubeconfig filer för att få åtkomst till dessa namnområden. Användarna har fullständig kontroll över dessa namnområden och kan skapa eller ändra användare eller ge användarna åtkomst. Endast klusteradministratören har fullständig åtkomst till systemnamnområden och klusteromfattande resurser. En aseuser har skrivskyddad åtkomst till systemnamnområden.

Här är ett diagram som visar implementeringen av Kubernetes RBAC på Azure Stack Edge Pro-enheten.

Kubernetes RBAC på Azure Stack Edge Pro-enhet

I det här diagrammet har Alice, Bob och Chuck endast åtkomst till tilldelade användarnamnområden, som i det här fallet är ns1, ns2respektive ns3 . Inom dessa namnområden har de administratörsåtkomst. Klusteradministratören har å andra sidan administratörsåtkomst till systemnamnområden och klusteromfattande resurser.

Som användare kan du skapa namnområden och användare, tilldela användare till namnområden eller ladda ned kubeconfig filer. Detaljerade stegvisa instruktioner finns i Åtkomst till Kubernetes-kluster via kuebctl på Azure Stack Edge Pro.

När du arbetar med namnområden och användare på dina Azure Stack Edge Pro-enheter gäller följande varningar:

  • Du får inte utföra några åtgärder som att skapa användare, bevilja eller återkalla namnområdesåtkomst till användaren för något av systemnamnrymderna. Exempel på systemnamnområden är kube-system, metallb-system, kubernetes-dashboard, default, , kube-node-lease, kube-public. Systemnamnområden innehåller även de namnområden som är reserverade för distributionstyper som iotedge (IoT Edge-namnområde) och azure-arc (Azure Arc-namnområde).
  • Du kan skapa användarnamnrymder och inom dessa namnområden skapa ytterligare användare och bevilja eller återkalla namnområdesåtkomst till dessa användare.
  • Du får inte skapa några namnområden med namn som är identiska med dem för något systemnamnområde. Namnen på systemnamnområden är reserverade.
  • Du får inte skapa några användarnamnrymder med namn som redan används av andra användarnamnområden. Om du till exempel har en test-ns som du har skapat kan du inte skapa ett annat test-ns namnområde.
  • Du får inte skapa användare med namn som redan är reserverade. Till exempel aseuser är en reserverad användare och kan inte användas.

Nästa steg

Information om hur du kan skapa en användare, skapa ett namnområde och ge användaren åtkomst till namnområdet finns i Komma åt ett Kubernetes-kluster via kubectl.