Udostępnij przez


Tworzenie prywatnego klastra usługi Azure Kubernetes Service (AKS)

Ten artykuł ułatwia wdrożenie klastra usługi AKS opartego na łączach prywatnych. Jeśli interesuje Cię tworzenie klastra usługi AKS bez wymaganego łącza prywatnego lub tunelu, zobacz Tworzenie klastra usługi Azure Kubernetes Service (AKS) przy użyciu integracji z siecią wirtualną serwera API.

Przegląd klastrów prywatnych w usłudze AKS

W prywatnym klastrze warstwa sterująca lub serwer API ma wewnętrzne adresy IP zdefiniowane w dokumencie RFC1918 - Alokacja Adresów dla Prywatnego Internetu. Korzystając z klastra prywatnego, można zapewnić, że ruch sieciowy między serwerem interfejsu API i pulami węzłów pozostaje tylko w sieci prywatnej.

Płaszczyzna sterowania lub serwer interfejsu API znajduje się w grupie zasobów platformy Azure zarządzanej przez usługę AKS, a pula węzłów znajduje się w twojej grupie zasobów. Serwer i klaster lub pula węzłów mogą komunikować się ze sobą za pośrednictwem usługi Azure Private Link w sieci wirtualnej serwera interfejsu API i prywatnego punktu końcowego dostępnego w podsieci klastra usługi AKS.

Podczas tworzenia prywatnego klastra usługi AKS usługa AKS domyślnie tworzy zarówno prywatne, jak i publiczne w pełni kwalifikowane nazwy domen (FQDN) z odpowiednimi strefami DNS. Aby uzyskać szczegółowe opcje konfiguracji DNS, zobacz Konfigurowanie prywatnej strefy DNS, prywatnej podstrefy DNS lub niestandardowej poddomeny.

Dostępność w regionach

Klastry prywatne są dostępne w regionach publicznych, w Azure Government oraz w regionach Microsoft Azure obsługiwanych przez 21Vianet, gdzie jest obsługiwane AKS.

Wymogi dotyczące prywatnych klastrów AKS

  • Interfejs wiersza polecenia platformy Azure w wersji 2.28.0 lub nowszej. Uruchom polecenie az --version , aby znaleźć wersję i uruchomić polecenie az upgrade , aby uaktualnić wersję. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
  • Jeśli używasz usługi Azure Resource Manager (ARM) lub interfejsu API REST platformy Azure, wersja interfejsu API usługi AKS musi być 2021-05-01 lub nowsza.
  • Aby użyć niestandardowego serwera DNS, dodaj publiczny adres IP platformy Azure 168.63.129.16 jako nadrzędny serwer DNS na niestandardowym serwerze DNS i pamiętaj, aby dodać ten publiczny adres IP jako pierwszy serwer DNS. Aby uzyskać więcej informacji na temat adresu IP platformy Azure, zobacz Co to jest adres IP 168.63.129.16?
    • Strefa DNS klastra powinna być tym, co przekazujesz do 168.63.129.16. Więcej informacji na temat nazw stref można znaleźć w temacie Konfiguracja strefy DNS usług platformy Azure.
  • Istniejące klastry AKS, które mają włączoną integrację serwera API z siecią VNet, mogą mieć włączony tryb klastra prywatnego. Aby uzyskać więcej informacji, zobacz Włączanie lub wyłączanie trybu klastra prywatnego w istniejącym klastrze z integracją z siecią wirtualną API Server.

Ważne

Od 30 listopada 2025 r. usługa Azure Kubernetes Service (AKS) nie obsługuje już ani nie zapewnia aktualizacji zabezpieczeń dla systemu Azure Linux 2.0. Obraz węzła systemu Linux 2.0 platformy Azure został zamrożony w wersji 202512.06.0. Od 31 marca 2026 r. obrazy węzłów zostaną usunięte i nie będzie można skalować pul węzłów. Przeprowadź migrację do obsługiwanej wersji systemu Linux platformy Azure, uaktualniając pule węzłów do obsługiwanej wersji rozwiązania Kubernetes lub migrując do systemu osSku AzureLinux3. Aby uzyskać więcej informacji, zobacz [Wycofywanie] pul węzłów Azure Linux 2.0 w usłudze AKS.

Ograniczenia i zagadnienia dotyczące prywatnych klastrów usługi Azure Kubernetes Service (AKS)

  • Nie można zastosować zakresów autoryzowanych adresów IP do prywatnego punktu końcowego serwera interfejsu API — mają one zastosowanie tylko do publicznego serwera interfejsu API.
  • Ograniczenia usługi Azure Private Link dotyczą klastrów prywatnych.
  • Nie ma obsługi agentów hostowanych przez firmę Microsoft w usłudze Azure DevOps z klastrami prywatnymi. Rozważ użycie samodzielnie hostowanych agentów.
  • Jeśli musisz włączyć Azure Container Registry w prywatnym klastrze AKS, skonfiguruj łącze prywatne dla rejestru kontenerów w wirtualnej sieci klastra (VNet) lub skonfiguruj łączenie równorzędne sieci między wirtualną siecią rejestru kontenerów a wirtualną siecią prywatnego klastra.
  • Usunięcie lub zmodyfikowanie prywatnego punktu końcowego w podsieci klienta powoduje zatrzymanie działania klastra.
  • Usługa Azure Private Link jest obsługiwana tylko w usłudze Azure Load Balancer w warstwie Standardowa. Usługa Azure Load Balancer w warstwie Podstawowa nie jest obsługiwana.

Piasta i szprychy z niestandardowym systemem DNS dla prywatnych klastrów usługi AKS

Architektury piasty i szprych są często używane do wdrażania sieci na platformie Azure. W wielu z tych wdrożeń ustawienia DNS w sieciach wirtualnych typu spoke są skonfigurowane do odwoływania się do centralnego serwera przesyłającego DNS w celu umożliwienia rozpoznawania nazw DNS w środowisku lokalnym oraz na platformie Azure.

Prywatny koncentrator klastra i szprycha

Podczas wdrażania prywatnych klastrów usługi AKS w architekturze piasty i szprych z niestandardowym systemem DNS należy wziąć pod uwagę następujące kwestie:

  • Po utworzeniu klastra prywatnego prywatny punkt końcowy (1) i prywatna strefa DNS (2) są domyślnie tworzone w grupie zasobów zarządzanych przez klaster. Klaster używa rekordu A w strefie prywatnej, aby rozpoznać adres IP prywatnego punktu końcowego na potrzeby komunikacji z serwerem interfejsu API.

  • Prywatna strefa DNS jest połączona tylko z siecią wirtualną, do której są dołączone węzły klastra (3), co oznacza, że prywatny punkt końcowy można rozpoznać tylko przez hosty w tej połączonej sieci wirtualnej. W scenariuszach, w których nie skonfigurowano niestandardowego systemu DNS w sieci wirtualnej (ustawienie domyślne), działa to bez problemu, gdy hosty wskazują na 168.63.129.16 jako adres DNS, który może rozpoznać rekordy w prywatnej strefie DNS dzięki połączeniu.

  • Jeśli zachowasz domyślne zachowanie prywatnej strefy DNS, usługa AKS próbuje połączyć strefę bezpośrednio z siecią wirtualną będącą szprychową, która hostuje klaster, nawet gdy strefa jest już połączona z siecią wirtualną hub.

    W sieciach wirtualnych typu spoke, które korzystają z niestandardowych serwerów DNS, ta akcja może zakończyć się niepowodzeniem, jeśli tożsamość zarządzana klastra nie ma roli Network Contributor w danej sieci VNet będącej spoke.

    Aby zapobiec awarii, wybierz jedną z następujących obsługiwanych konfiguracji:

    • Niestandardowa prywatna strefa DNS: podaj wcześniej utworzoną strefę prywatną i ustaw privateDNSZone / --private-dns-zone na jej identyfikator zasobu. Połącz strefę z odpowiednią siecią wirtualną (na przykład siecią wirtualną koncentratora) i ustaw publicDNS na false, lub użyj --disable-public-fqdn.
    • Tylko publiczny system DNS: wyłącz tworzenie strefy prywatnej, ustawiając privateDNSZone / --private-dns-zone na none, a i pozostaw publicDNS z wartością domyślną (true) / nie używaj --disable-public-fqdn.
  • Jeśli używasz tabeli tras BYO z kubenet oraz BYO DNS w prywatnych klastrach, tworzenie klastra kończy się niepowodzeniem. Aby doprowadzić do pomyślnego utworzenia, po niepowodzeniu utworzenia klastra należy skojarzyć RouteTable w grupie zasobów węzła z podsiecią.

Podczas korzystania z niestandardowego systemu DNS z prywatnymi klastrami usługi AKS należy pamiętać o następujących ograniczeniach:

  • Ustawienie i jednocześnie nie jest obsługiwane.
  • Warunkowe przekazywanie nie obsługuje poddomen.

Utwórz prywatny klaster AKS z domyślną podstawową siecią

  1. Utwórz grupę zasobów przy użyciu az group create polecenia . Możesz również użyć istniejącej grupy zasobów dla klastra AKS.

    az group create \
        --name <private-cluster-resource-group> \
        --location <location>
    
  2. Utwórz klaster prywatny z domyślną siecią podstawową przy użyciu az aks create polecenia z flagą --enable-private-cluster .

    Kluczowe parametry w tym poleceniu:

    • --enable-private-cluster: włącza tryb klastra prywatnego.
    az aks create \
        --name <private-cluster-name> \
        --resource-group <private-cluster-resource-group> \
        --load-balancer-sku standard \
        --enable-private-cluster \
        --generate-ssh-keys
    
  3. Skonfiguruj narzędzie kubectl w celu nawiązania połączenia z prywatnym klastrem usługi AKS.

Tworzenie prywatnego klastra AKS z zaawansowaną siecią

  1. Utwórz grupę zasobów przy użyciu az group create polecenia . Możesz również użyć istniejącej grupy zasobów dla klastra AKS.

    az group create \
        --name <private-cluster-resource-group> \
        --location <location>
    
  2. Utwórz klaster prywatny z zaawansowaną siecią az aks create przy użyciu polecenia .

    Kluczowe parametry w tym poleceniu:

    • --enable-private-cluster: włącza tryb klastra prywatnego.
    • --network-plugin azure: określa wtyczkę sieci azure CNI.
    • --vnet-subnet-id: identyfikator zasobu istniejącej podsieci w sieci wirtualnej.
    • --dns-service-ip: Dostępny adres IP w zakresie adresów usług Kubernetes do wykorzystania w usłudze DNS klastra.
    • --service-cidr: zakres adresów IP notacji CIDR, z którego mają zostać przypisane adresy IP klastra usług.
    az aks create \
        --resource-group <private-cluster-resource-group> \
        --name <private-cluster-name> \
        --load-balancer-sku standard \
        --enable-private-cluster \
        --network-plugin azure \
        --vnet-subnet-id <subnet-id> \
        --dns-service-ip 10.2.0.10 \
        --service-cidr 10.2.0.0/24
        --generate-ssh-keys
    
  3. Skonfiguruj narzędzie kubectl w celu nawiązania połączenia z prywatnym klastrem usługi AKS.

Używanie domen niestandardowych z prywatnymi klastrami AKS

Jeśli chcesz skonfigurować domeny niestandardowe, które można rozpoznać tylko wewnętrznie, zobacz Używanie domen niestandardowych.

Wyłączanie publicznej pełnej kwalifikowanej nazwy domeny (FQDN) w prywatnym klastrze AKS

Wyłączanie publicznej nazwy FQDN w nowym klastrze

  • Wyłącz publiczną nazwę FQDN podczas tworzenia prywatnego klastra usługi AKS przy użyciu az aks create polecenia z flagą --disable-public-fqdn .

    az aks create \
        --name <private-cluster-name> \
        --resource-group <private-cluster-resource-group> \
        --load-balancer-sku standard \
        --enable-private-cluster \
        --assign-identity <resource-id> \
        --private-dns-zone <private-dns-zone-mode> \
        --disable-public-fqdn \
        --generate-ssh-keys
    

Wyłączanie publicznej nazwy FQDN w istniejącym klastrze

  • Wyłącz publiczną nazwę FQDN w istniejącym klastrze usługi AKS przy użyciu az aks update polecenia z flagą --disable-public-fqdn .

    az aks update \
        --name <private-cluster-name> \
        --resource-group <private-cluster-resource-group> \
        --disable-public-fqdn
    

Konfigurowanie prywatnej strefy DNS, prywatnej podstrefy DNS lub niestandardowej poddomeny dla prywatnego klastra usługi AKS

Możesz skonfigurować prywatne ustawienia DNS dla prywatnego klastra usługi AKS przy użyciu interfejsu wiersza polecenia platformy Azure (z --private-dns-zone parametrem) lub szablonu usługi Azure Resource Manager (ARM) (z właściwością privateDNSZone ). W poniższej tabeli przedstawiono opcje dostępne dla parametru --private-dns-zone oraz właściwości privateDNSZone.

Setting Description
system Wartość domyślna podczas konfigurowania prywatnej strefy DNS. Jeśli pominiesz --private-dns-zone / privateDNSZone, usługa AKS utworzy prywatną strefę DNS w grupie zasobów węzła.
none Jeśli ustawisz --private-dns-zone / privateDNSZone na none, AKS nie utworzy prywatnej strefy DNS.
<custom-private-dns-zone-resource-id> Aby użyć tego parametru, należy utworzyć prywatną strefę DNS w następującym formacie dla chmury globalnej platformy Azure: privatelink.<region>.azmk8s.io lub <subzone>.privatelink.<region>.azmk8s.io. Do użycia w przyszłości potrzebny jest identyfikator zasobu prywatnej strefy DNS. Potrzebna jest również tożsamość przypisana przez użytkownika lub jednostka usługi z rolami współautora strefy Prywatna strefa DNS i współautora sieci. W przypadku klastrów korzystających z integracji usługi API Server z siecią wirtualną, prywatna strefa DNS obsługuje format nazewnictwa private.<region>.azmk8s.io lub <subzone>.private.<region>.azmk8s.io. Nie można zmienić ani usunąć tego zasobu po utworzeniu klastra, ponieważ może to spowodować problemy z wydajnością i niepowodzenia uaktualniania klastra. Możesz używać --fqdn-subdomain <subdomain> z <custom-private-dns-zone-resource-id> tylko w celu zapewnienia możliwości poddomeny dla privatelink.<region>.azmk8s.io. Jeśli określasz podstrefę, istnieje limit 32 znaków dla <subzone> nazwy.

Podczas konfigurowania prywatnej usługi DNS dla prywatnego klastra usługi AKS należy pamiętać o następujących kwestiach:

  • Jeśli prywatna strefa DNS znajduje się w innej subskrypcji niż klaster usługi AKS, musisz zarejestrować dostawcę Microsoft.ContainerServices platformy Azure w obu subskrypcjach.
  • Jeśli klaster usługi AKS jest skonfigurowany przy użyciu pryncypału usługi Active Directory, usługa AKS nie obsługuje używania systemowo przypisanej tożsamości zarządzanej z niestandardową prywatną strefą DNS. Klaster musi używać uwierzytelniania za pomocą przypisanej przez użytkownika tożsamości zarządzanej.

Tworzenie prywatnego klastra usługi AKS z prywatną strefą DNS

  1. Utwórz prywatny klaster usługi AKS z prywatną strefą DNS przy użyciu az aks create polecenia .

    Kluczowe parametry w tym poleceniu:

    • --enable-private-cluster: włącza tryb klastra prywatnego.
    • --private-dns-zone [system|none]: konfiguruje prywatną strefę DNS dla klastra. Domyślna wartość to system.
    • --assign-identity <resource-id>: identyfikator zasobu przypisanej przez użytkownika tożsamości zarządzanej z rolami Współautora prywatnej strefy DNS i Współautora sieci.
    az aks create \
        --name <private-cluster-name> \
        --resource-group <private-cluster-resource-group> \
        --load-balancer-sku standard \
        --enable-private-cluster \
        --assign-identity <resource-id> \
        --private-dns-zone [system|none] \
        --generate-ssh-keys
    
  2. Skonfiguruj narzędzie kubectl w celu nawiązania połączenia z prywatnym klastrem usługi AKS.

Tworzenie prywatnego klastra usługi AKS z niestandardową prywatną strefą DNS lub prywatną strefą DNS

  1. Utwórz prywatny klaster AKS z niestandardową prywatną strefą DNS lub podstrefą przy użyciu polecenia az aks create.

    Kluczowe parametry w tym poleceniu:

    • --enable-private-cluster: włącza tryb klastra prywatnego.
    • --private-dns-zone <custom-private-dns-zone-resource-id>|<custom-private-dns-subzone-resource-id>: Identyfikator zasobu wstępnie utworzonej prywatnej strefy DNS lub podstrefy w następującym formacie dla chmury globalnej platformy Azure: privatelink.<region>.azmk8s.io lub <subzone>.privatelink.<region>.azmk8s.io.
    • --assign-identity <resource-id>: identyfikator zasobu przypisanej przez użytkownika tożsamości zarządzanej z rolami Współautora prywatnej strefy DNS i Współautora sieci.
    # The custom private DNS zone name should be in the following format: "<subzone>.privatelink.<region>.azmk8s.io"
    
    az aks create \
        --name <private-cluster-name> \
        --resource-group <private-cluster-resource-group> \
        --load-balancer-sku standard \
        --enable-private-cluster \
        --assign-identity <resource-id> \
        --private-dns-zone [<custom-private-dns-zone-resource-id>|<custom-private-dns-subzone-resource-id>] \
        --generate-ssh-keys
    
  2. Skonfiguruj narzędzie kubectl w celu nawiązania połączenia z prywatnym klastrem usługi AKS.

Tworzenie prywatnego klastra usługi AKS z niestandardową prywatną strefą DNS i niestandardową poddomeną

  1. Utwórz prywatny klaster usługi AKS z niestandardową prywatną strefą DNS i poddomeną az aks create przy użyciu polecenia .

    Kluczowe parametry w tym poleceniu:

    • --enable-private-cluster: włącza tryb klastra prywatnego.
    • --private-dns-zone <custom-private-dns-zone-resource-id>: Identyfikator zasobu wstępnie utworzonej prywatnej strefy DNS w następującym formacie dla chmury globalnej platformy Azure: privatelink.<region>.azmk8s.io.
    • --fqdn-subdomain <subdomain>: Poddomena do użycia dla FQDN klastra w niestandardowej prywatnej strefie DNS.
    • --assign-identity <resource-id>: identyfikator zasobu przypisanej przez użytkownika tożsamości zarządzanej z rolami Współautora prywatnej strefy DNS i Współautora sieci.
    # The custom private DNS zone name should be in one of the following formats: "privatelink.<region>.azmk8s.io" or "<subzone>.privatelink.<region>.azmk8s.io"
    
    az aks create \
        --name <private-cluster-name> \
        --resource-group <private-cluster-resource-group> \
        --load-balancer-sku standard \
        --enable-private-cluster \
        --assign-identity <resource-id> \
        --private-dns-zone <custom-private-dns-zone-resource-id> \
        --fqdn-subdomain <subdomain> \
        --generate-ssh-keys
    
  2. Skonfiguruj narzędzie kubectl w celu nawiązania połączenia z prywatnym klastrem usługi AKS.

Aktualizowanie istniejącego prywatnego klastra usługi AKS z prywatnej strefy DNS do publicznej

Możesz zaktualizować tylko z byo (przynieś własne) lub system do none. Nie jest obsługiwana żadna inna kombinacja wartości aktualizacji.

Ostrzeżenie

Podczas aktualizowania klastra prywatnego z byo programu lub system do nonewęzłów agenta zmieniają się w celu używania publicznej nazwy FQDN. W klastrze AKS, który wykorzystuje Azure Virtual Machine Scale Sets, uaktualnienie obrazu węzła jest przeprowadzane, aby zaktualizować węzły z publicznym FQDN.

  • Zaktualizuj klaster prywatny z byo lub system do none używając polecenia az aks update z parametrem --private-dns-zone ustawionym na none.

    az aks update \
        --name <private-cluster-name> \
        --resource-group <private-cluster-resource-group> \
        --private-dns-zone none
    

Konfigurowanie narzędzia kubectl w celu nawiązania połączenia z prywatnym klastrem usługi AKS

Aby zarządzać klastrem Kubernetes, użyj klienta wiersza polecenia kubernetes kubectl. kubectl program jest już zainstalowany, jeśli używasz usługi Azure Cloud Shell. Aby zainstalować kubectl lokalnie, użyj az aks install-cli polecenia .

  1. Skonfiguruj kubectl, aby nawiązać połączenie z klastrem Kubernetes za pomocą polecenia az aks get-credentials. To polecenie pobiera poświadczenia i konfiguruje interfejs wiersza polecenia Kubernetes do ich użycia.

    az aks get-credentials --resource-group <private-cluster-resource-group> --name <private-cluster-name>
    
  2. Sprawdź połączenie z klastrem przy użyciu polecenia kubectl get. To polecenie zwraca listę węzłów klastra.

    kubectl get nodes
    

    Polecenie zwraca dane wyjściowe podobne do następujących przykładowych danych wyjściowych:

    NAME                                STATUS   ROLES   AGE    VERSION
    aks-nodepool1-12345678-vmss000000   Ready    agent   3h6m   v1.15.11
    aks-nodepool1-12345678-vmss000001   Ready    agent   3h6m   v1.15.11
    aks-nodepool1-12345678-vmss000002   Ready    agent   3h6m   v1.15.11