Udostępnij przez


Używanie zarządzanych przestrzeni nazw w usłudze Azure Kubernetes Service (AKS)

Dotyczy: ✔️ AKS Automatic AKS Standard ✔️

Zarządzane przestrzenie nazw w usłudze Azure Kubernetes Service (AKS) umożliwiają logiczne izolowanie obciążeń i zespołów w klastrze. Ta funkcja umożliwia administratorom wymuszanie przydziałów zasobów, stosowanie zasad sieciowych i zarządzanie kontrolą dostępu na poziomie przestrzeni nazw. Aby zapoznać się ze szczegółowym omówieniem zarządzanych przestrzeni nazw, zobacz omówienie zarządzanych przestrzeni nazw.

Zanim rozpoczniesz

Wymagania wstępne

Warunek wstępny Notatki
Interfejs wiersza polecenia platformy Azure 2.80.0 zainstalowany lub nowszy. Aby znaleźć wersję interfejsu wiersza polecenia, uruchom az --version. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
Wersja interfejsu API usługi AKS 2025-09-01 lub nowszy.
Wymagane uprawnienia Microsoft.ContainerService/managedClusters/managedNamespaces/* lub Azure Kubernetes Service Namespace Contributor wbudowana rola. Microsoft.Resources/deployments/* w grupie zasobów zawierającej klaster. Aby uzyskać więcej informacji, zobacz Wbudowane role przestrzeni nazw zarządzanych.

Ograniczenia

  • Próba wejścia w pokładowe przestrzenie nazw systemu, takie jak kube-system, app-routing-system, istio-system, gatekeeper-systemitp., nie jest dozwolona.
  • Gdy przestrzeń nazw jest zarządzaną przestrzenią nazw, zmiany przestrzeni nazw za pośrednictwem interfejsu API Kubernetes są blokowane.
  • Wyświetlanie listy istniejących przestrzeni nazw do konwersji w portalu nie działa z klastrami prywatnymi. Możesz dodać nowe przestrzenie nazw.

Tworzenie zarządzanej przestrzeni nazw w klastrze i przypisywanie użytkowników

Uwaga / Notatka

Podczas tworzenia zarządzanej przestrzeni nazw składnik jest instalowany w klastrze w celu uzgodnienia przestrzeni nazw ze stanem w usłudze Azure Resource Manager. Ten składnik blokuje zmiany w polach zarządzanych i zasobach z interfejsu API Kubernetes, zapewniając spójność z żądaną konfiguracją.

W poniższym przykładzie Bicep pokazano, jak utworzyć zarządzaną przestrzeń nazw jako podźródło klastra zarządzanego. Upewnij się, że wybrano odpowiednią wartość dla defaultNetworkPolicywartości , adoptionPolicyi deletePolicy. Aby uzyskać więcej informacji na temat znaczenia tych parametrów, zobacz Omówienie zarządzanych przestrzeni nazw.

resource existingCluster 'Microsoft.ContainerService/managedClusters@2024-03-01' existing = {
  name: 'contoso-cluster'
}

resource managedNamespace 'Microsoft.ContainerService/managedClusters/managedNamespaces@2025-09-01' = {
  parent: existingCluster
  name: 'retail-team'
  location: location
  properties: {
    defaultResourceQuota: {
      cpuRequest: '1000m'
      cpuLimit: '2000m'
      memoryRequest: '512Mi'
      memoryLimit: '1Gi'
    }
    defaultNetworkPolicy: {
      ingress: 'AllowSameNamespace'
      egress: 'AllowAll'
    }
    adoptionPolicy: 'IfIdentical'
    deletePolicy: 'Keep'
    labels: {
      environment: 'dev'
    }
    annotations: {
      owner: 'retail'
    }
  }
}

Zapisz plik Bicep managedNamespace.bicep na komputerze lokalnym.

Wdróż plik Bicep przy użyciu interfejsu wiersza polecenia platformy Azure.

az deployment group create --resource-group <resource-group> --template-file managedNamespace.bicep

Definiowanie zmiennych

Zdefiniuj następujące zmienne, które mają być używane w kolejnych krokach.

RG_NAME=cluster-rg
CLUSTER_NAME=contoso-cluster
NAMESPACE_NAME=retail-team
LABELS="environment=dev"
ANNOTATIONS="owner=retail"

Tworzenie zarządzanej przestrzeni nazw

Aby dostosować konfigurację, zarządzane przestrzenie nazw mają różne opcje parametrów do wyboru podczas tworzenia. Upewnij się, że wybrano odpowiednią wartość dla ingress-network-policywartości , , egress-network-policyadoption-policyi delete-policy. Aby uzyskać więcej informacji na temat znaczenia tych parametrów, zobacz Omówienie zarządzanych przestrzeni nazw.

az aks namespace add \
    --name ${NAMESPACE_NAME} \
    --cluster-name ${CLUSTER_NAME} \
    --resource-group ${RG_NAME} \
    --cpu-request 1000m \
    --cpu-limit 2000m \
    --memory-request 512Mi \
    --memory-limit 1Gi \
    --ingress-policy [AllowSameNamespace|AllowAll|DenyAll] \
    --egress-policy [AllowSameNamespace|AllowAll|DenyAll] \
    --adoption-policy [Never|IfIdentical|Always] \
    --delete-policy [Keep|Delete] \
    --labels ${LABELS} \
    --annotations ${ANNOTATIONS}

Przypisywanie roli

Po utworzeniu przestrzeni nazw można przypisać jedną z wbudowanych ról płaszczyzny sterowania i płaszczyzny danych.

ASSIGNEE="user@contoso.com"
NAMESPACE_ID=$(az aks namespace show --name ${NAMESPACE_NAME} --cluster-name ${CLUSTER_NAME} --resource-group ${RG_NAME} --query id -o tsv)

Przypisz rolę płaszczyzny sterowania, aby móc wyświetlać zarządzaną przestrzeń nazw w portalu, dane wyjściowe interfejsu wiersza polecenia platformy Azure i usługę Azure Resource Manager. Ta rola umożliwia również użytkownikowi pobranie poświadczeń w celu nawiązania połączenia z tą przestrzenią nazw.

az role assignment create \
  --assignee ${ASSIGNEE} \
  --role "Azure Kubernetes Service Namespace User" \
  --scope ${NAMESPACE_ID}

Przypisz rolę płaszczyzny danych, aby uzyskać dostęp do tworzenia zasobów w przestrzeni nazw przy użyciu interfejsu API platformy Kubernetes.

az role assignment create \
  --assignee ${ASSIGNEE} \
  --role "Azure Kubernetes Service RBAC Writer" \
  --scope ${NAMESPACE_ID}
  1. Zaloguj się do witryny Azure Portal.
  2. Na stronie głównej witryny Azure Portal wybierz pozycję Utwórz zasób.
  3. W sekcji Kategorie wybierz pozycję Zarządzane przestrzenie nazw kubernetes.
  4. Na karcie Podstawowe w obszarze Szczegóły projektu skonfiguruj następujące ustawienia:
    1. Wybierz klaster docelowy, aby utworzyć przestrzeń nazw.
    2. Jeśli tworzysz nową przestrzeń nazw, pozostaw wartość domyślną utwórz nową, a w przeciwnym razie wybierz zmianę istniejącej na zarządzaną , aby przekonwertować istniejącą przestrzeń nazw.
  5. Skonfiguruj zasady sieci , które mają być stosowane w przestrzeni nazw.
  6. Skonfiguruj żądania zasobów i limity dla przestrzeni nazw.
  7. Wybierz członków (użytkowników lub grupy) i ich rolę.
    1. Przypisz rolę użytkownika przestrzeni nazw usługi Azure Kubernetes Service , aby przyznać im dostęp do wyświetlania zarządzanej przestrzeni nazw w portalu, danych wyjściowych interfejsu wiersza polecenia platformy Azure i usługi Azure Resource Manager. Ta rola umożliwia również użytkownikowi pobranie poświadczeń w celu nawiązania połączenia z tą przestrzenią nazw.
    2. Przypisz rolę składnika zapisywania RBAC usługi Azure Kubernetes Service , aby zapewnić im dostęp do tworzenia zasobów w przestrzeni nazw przy użyciu interfejsu API kubernetes.
  8. Wybierz pozycję Przejrzyj i utwórz , aby uruchomić walidację konfiguracji. Po zakończeniu walidacji wybierz Utwórz.

Wyświetlanie listy zarządzanych przestrzeni nazw

Przestrzenie nazw zarządzanych można wyświetlić w różnych zakresach przy użyciu interfejsu wiersza polecenia platformy Azure.

Poziom subskrypcji

Uruchom następujące polecenie, aby wyświetlić listę wszystkich zarządzanych przestrzeni nazw w subskrypcji.

az aks namespace list --subscription <subscription-id>

Poziom grupy zasobów

Uruchom następujące polecenie, aby wyświetlić listę wszystkich zarządzanych przestrzeni nazw w określonej grupie zasobów.

az aks namespace list --resource-group <rg-name>

Na poziomie klastra

Uruchom następujące polecenie, aby wyświetlić listę wszystkich zarządzanych przestrzeni nazw w określonym klastrze.

az aks namespace list --resource-group <rg-name> --cluster-name <cluster-name>

Wyświetlanie listy zarządzanych przestrzeni nazw

Przestrzenie nazw zarządzanych można wyświetlić w różnych zakresach przy użyciu interfejsu wiersza polecenia platformy Azure.

Poziom subskrypcji

Uruchom następujące polecenie, aby wyświetlić listę wszystkich zarządzanych przestrzeni nazw w subskrypcji.

az aks namespace list --subscription <subscription-id>

Poziom grupy zasobów

Uruchom następujące polecenie, aby wyświetlić listę wszystkich zarządzanych przestrzeni nazw w określonej grupie zasobów.

az aks namespace list --resource-group <rg-name>

Na poziomie klastra

Uruchom następujące polecenie, aby wyświetlić listę wszystkich zarządzanych przestrzeni nazw w określonym klastrze.

az aks namespace list --resource-group <rg-name> --cluster-name <cluster-name>

Połącz się z klastrem

Poświadczenia można pobrać, aby nawiązać połączenie z przestrzenią nazw za pomocą następującego polecenia.

az aks namespace get-credentials --name <namespace-name> --resource-group <rg-name> --cluster-name <cluster-name>

Połącz się z klastrem

Poświadczenia można pobrać, aby nawiązać połączenie z przestrzenią nazw za pomocą następującego polecenia.

az aks namespace get-credentials --name <namespace-name> --resource-group <rg-name> --cluster-name <cluster-name>

Dalsze kroki

W tym artykule skoncentrowano się na używaniu funkcji zarządzanych przestrzeni nazw do logicznego izolowania zespołów i aplikacji. Możesz dokładniej zapoznać się z innymi zabezpieczeniami i najlepszymi rozwiązaniami, które należy zastosować za pomocą zabezpieczeń wdrożenia.