Rollbaserad åtkomstkontroll i Kubernetes på din Azure Stack Edge Pro GPU-enhet
GÄLLER FÖR: Azure Stack Edge Pro – GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure 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.
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
, ns2
respektive 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 somiotedge
(IoT Edge-namnområde) ochazure-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 annattest-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.