Özel Azure Kubernetes Service (AKS) kümesi oluşturma

Bu makale, Azure CLI veya Terraform kullanarak özel bağlantı tabanlı aks kümesi dağıtmanıza yardımcı olur. Özel bağlantı veya tünel gerektirmeden bir AKS kümesi oluşturmak istiyorsanız, bkz. Create an Azure Kubernetes Service (AKS) cluster with API Server VNet integration.

AKS'de özel kümelere genel bakış

Özel bir kümede, denetim düzlemi veya API sunucusu, RFC1918 - Özel İnternet için Adres Ayırma belgesinde tanımlanan iç IP adreslerine sahiptir. Özel küme kullanarak API sunucunuzla düğüm havuzlarınız arasındaki ağ trafiğinin yalnızca özel ağda kaldığından emin olabilirsiniz.

Denetim düzlemi veya API sunucusu AKS tarafından yönetilen bir Azure kaynak grubunda ve kümeniz veya düğüm havuzunuz kaynak grubunuzda yer alır. Sunucu ve küme veya düğüm havuzu, API sunucusu sanal ağındaki Azure Özel Bağlantı hizmeti ve AKS kümenizin alt ağında kullanıma sunulan özel uç nokta aracılığıyla birbirleriyle iletişim kurabilir.

Özel bir AKS kümesi oluşturduğunuzda, AKS varsayılan olarak karşılık gelen DNS bölgeleriyle birlikte hem özel hem de genel tam etki alanı adları (FQDN) oluşturur. Ayrıntılı DNS yapılandırma seçenekleri için Özel DNS bölgesi, özel DNS alt bölgesi veya özelleştirilmiş alt etki alanı yapılandırma bölümüne bakın.

Bölgesel kullanılabilirlik

Özel kümeler, AKS'in desteklendiği Microsoft Azure, Azure Kamu ve 21Vianet tarafından işletilen bölgelerdeki genel bölgelerde mevcuttur.

Önemli

Tüm Bulut için Microsoft Defender özellikleri 18 Ağustos 2026'da Çin bölgesindeki Azure resmi olarak kullanımdan kaldırılacaktır. Yaklaşan bu kullanımdan kaldırma nedeniyle, Çin'deki Azure müşterileri artık hizmete yeni abonelik ekleyemiyor. Yeni abonelik, kullanımdan kaldırma duyurusunun tarihi olan 18 Ağustos 2025 tarihinden önce Bulut için Microsoft Defender hizmetine önceden eklenmemiş olan aboneliktir. Kullanımdan kaldırma hakkında daha fazla bilgi için 21Vianet tarafından işletilen Microsoft Azure'da Bulut için Microsoft Defender'un kullanımdan kaldırılması Duyurusu'na bakın.

Müşteriler, 21Vianet tarafından sağlanan Microsoft Azure için hesap temsilcileriyle birlikte çalışarak bu emekliliğin kendi işlemleri üzerindeki etkisini değerlendirmelidir.

Özel AKS kümeleri için önkoşullar

  • Etkin bir Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce free hesabı oluşturun.

  • komutunu kullanarak az account set abonelik bağlamınızı ayarlayın. Örneğin:

    az account set --subscription "00000000-0000-0000-0000-000000000000"
    
  • Azure CLI sürüm 2.28.0 veya üzeri. komutunu kullanarak az --version sürümünüzü bulun. Yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure CLI yükleme.

  • Azure Resource Manager (ARM) veya Azure REST API kullanıyorsanız AKS API sürümü 2021-05-01 veya üzeri olmalıdır.

  • Özel DNS sunucusu kullanmak için, Azure genel IP adresini 168.63.129.16 özel DNS sunucusuna yukarı akış DNS sunucusu olarak ekleyin ve bu genel IP adresini first DNS sunucusu olarak eklediğinizden emin olun. Azure IP adresi hakkında daha fazla bilgi için bkz. IP adresi 168.63.129.16 nedir?

  • API Server sanal ağ tümleştirmesi ile etkinleştirilen mevcut AKS kümelerinde özel küme modu etkinleştirilebilir. Daha fazla bilgi için bkz. API Server sanal ağ tümleştirmesi ile var olan bir kümede özel küme modunu etkinleştirme veya devre dışı bırakma.

  • Özel bir AKS kümesinde Azure Container Registry etkinleştirmeniz gerekiyorsa küme sanal ağında (VNet) kapsayıcı kayıt defteri için özel bir bağlantı ayarlayın veya kapsayıcı kayıt defterinin sanal ağı ile özel kümenin sanal ağı arasında eşleme ayarlayın.

  • kubectl yüklendi. komutunu kullanarak az aks install-cli yerel olarak yükleyebilirsiniz.

Önemli

November 30, 2025 tarihinden itibaren Azure Kubernetes Service (AKS) artık Azure Linux 2.0 için güvenlik güncelleştirmelerini desteklemez veya sağlamaz. Azure Linux 2.0 düğüm görüntüsü 202512.06.0 sürümünde dondurulur. 31 Mart 2026'dan itibaren düğüm görüntüleri kaldırılacak ve düğüm havuzlarınızı ölçeklendiremeyeceksiniz. düğüm havuzlarınızı desteklenen bir Kubernetes sürümüne yükselterek veya osSku AzureLinux3 ile desteklenen bir Azure Linux sürümüne geçin. Daha fazla bilgi için Emeklilik GitHub sorunu ve Azure Güncelleştirmeleri kullanımdan kaldırma duyurusu'na bakınız. Duyurular ve güncelleştirmeler hakkında bilgi sahibi olmak için AKS sürüm notlarını izleyin.

Sınırlamalar

  • IP yetkili aralıkları yalnızca genel API sunucusu için geçerlidir. Bu aralıkları özel API sunucusu uç noktasına uygulayamazsınız.
  • Azure Özel Bağlantı hizmet sınırlamaları özel kümeler için geçerlidir.
  • Özel kümelerle Microsoft tarafından barındırılan Azure DevOps Aracıları için destek yoktur. Kendi barındırdığı ajanları kullanmayı göz önünde bulundurun.
  • Müşteri alt ağındaki özel uç noktanın silinmesi veya değiştirilmesi kümenin çalışmayı durdurmasına neden olur.
  • Azure Özel Bağlantı hizmeti yalnızca Standart Azure Load Balancer desteklenir. Temel Azure Load Balancer desteklenmez.

Özel DNS ile merkez ve çıkışlar topolojisine sahip özel AKS kümeleri

Hub ve uç mimarileri yaygın olarak Azure'da ağ dağıtmak için kullanılır. Bu dağıtımların çoğunda uç sanal ağlarındaki DNS ayarları, şirket içi ve Azure tabanlı DNS çözümlemesine izin vermek üzere merkezi bir DNS ileticisine başvuracak şekilde yapılandırılır.

Aşağıdaki diyagramda, özel DNS'ye sahip bir özel AKS kümesi için merkez-uç mimarisi gösterilmektedir:

Özel küme merkezi ve çıkış noktası

  • Özel bir küme oluşturulduğunda, küme tarafından yönetilen kaynak grubunda varsayılan olarak bir özel uç nokta (1) ve özel DNS bölgesi (2) oluşturulur. Küme, API sunucusuyla iletişim için özel uç noktanın IP'sini çözümlemek için özel bölgedeki bir A kaydı kullanır.
  • Özel DNS bölgesi yalnızca küme düğümlerinin bağlı olduğu sanal ağa bağlanır (3), bu da özel uç noktanın yalnızca bu bağlantılı VNet'teki konaklar tarafından çözümlenebileceği anlamına gelir. Sanal ağda özel DNS yapılandırılmadığı senaryolarda (varsayılan), bağlantı nedeniyle özel DNS bölgesindeki kayıtları çözümleyebilen DNS için 168.63.129.16 ana bilgisayar noktası olarak sorunsuz çalışır.
  • Varsayılan özel DNS bölgesi davranışını sürdürdüğünüzde, AKS, bölge zaten bir hub sanal ağına bağlı olsa bile, bölgeyi doğrudan kümeyi barındıran uç sanal ağa bağlantı kurmaya çalışır.
    • Özel DNS sunucuları kullanan uç sanal ağlarda, kümenin yönetilen kimliğinde uç sanal ağda Ağ Katkısı yoksa bu işlem başarısızlıkla sonuçlanabilir. Hatayı önlemek için aşağıdaki desteklenen yapılandırmalardan birini seçin:
      • Özel DNS bölgesi: Var olan bir özel bölge sağlayın ve privateDNSZone / --private-dns-zone kaynak kimliğine ayarlayın. Bu bölgeyi uygun sanal ağa (örneğin, hub sanal ağı) bağladıktan sonra, öğesini olarak ayarlayın veya kullanın.
      • Yalnızca genel DNS: privateDNSZone / --private-dns-zone ayarlayarak özel bölge oluşturmayı devre dışı bırakın ve none olarak bırakın, publicDNS varsayılan değeriyle bırakın (true) / --disable-public-fqdn kullanmayın.
  • Kubenet ve özel kümelere sahip BYO DNS ile kendi yol tablonuzu getir (BYO) kullanıyorsanız küme oluşturma işlemi başarısız olur. Küme oluşturma başarısız olduktan sonra düğüm kaynak grubundaki RouteTable öğesini alt ağ ile ilişkilendirmeniz gerekir.

Özel DNS ile özel AKS kümeleri için sınırlamalar

  • privateDNSZone / --private-dns-zone ayarlarını none ve aynı andapublicDNS: false / --disable-public-fqdn ayarlamak desteklenmez.
  • Koşullu iletme alt etki alanlarını desteklemez.

Bir kaynak grubu oluşturun

komutunu kullanarak az group create bir kaynak grubu oluşturun. AKS kümeniz için mevcut bir kaynak grubunu da kullanabilirsiniz.

az group create \
    --name <private-cluster-resource-group> \
    --location <location>

Varsayılan temel ağ ile özel bir AKS kümesi oluşturma

az aks create komutunu, --enable-private-cluster bayrağı ile, varsayılan temel ağ yapılandırmasını kullanarak özel bir küme oluşturun.

Bu komuttaki anahtar parametreleri:

  • --enable-private-cluster: Özel küme modunu etkinleştirir.
az aks create \
    --name <private-cluster-name> \
    --resource-group <private-cluster-resource-group> \
    --load-balancer-sku standard \
    --enable-private-cluster \
    --generate-ssh-keys
  1. main.tf adlı bir dosya oluşturun ve Terraform sürümünü tanımlamak ve Azure sağlayıcısını belirtmek için aşağıdaki kodu ekleyin:

    terraform {
      required_version = ">= 1.3.0"
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~> 4.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
      subscription_id = var.subscription_id
    }
    
  2. Azure abonelik kimliğiniz, kaynak grubu adınız, konumunuz ve AKS kümenizin adı için giriş değişkenleri oluşturmak üzere main.tf aşağıdaki kodu ekleyin. Varsayılan değerleri gerektiği gibi değiştirebilirsiniz.

    variable "subscription_id" {
      description = "The Azure subscription ID."
      type = string
    }
    
    variable "resource_group_name" {
      description = "The name of the resource group for the AKS cluster."
      type        = string
      default     = "rg-private-aks-basic"
    }
    
    variable "location" {
      description = "The Azure region where the resources will be created."
      type        = string
      default     = "eastus"
    }
    
    variable "aks_cluster_name" {
      description = "The name of the AKS cluster."
      type        = string
      default     = "aks-private-basic"
    }
    
  3. Azure kaynak grubu oluşturmak için aşağıdaki kodu main.tf ekleyin:

    resource "azurerm_resource_group" "this" {
      name     = var.resource_group_name
      location = var.location
    }
    
  4. Temel ağ ile özel bir AKS kümesi oluşturmak için aşağıdaki kodu main.tf ekleyin:

    resource "azurerm_kubernetes_cluster" "this" {
      name                = var.aks_cluster_name
      location            = azurerm_resource_group.this.location
      resource_group_name = azurerm_resource_group.this.name
      dns_prefix          = "privatebasicaks"
    
      private_cluster_enabled = true
    
      default_node_pool {
        name       = "system"
        node_count = 1
        vm_size    = "Standard_DS2_v2"
      }
    
      identity {
        type = "SystemAssigned"
      }
    
      network_profile {
        load_balancer_sku = "standard"
        network_plugin    = "kubenet"
      }
    }
    
  5. Terraform'u başlatmak, Terraform yapılandırmasını biçimlendirmek ve doğrulamak, terraform yürütme planı oluşturmak, Terraform yapılandırmasını uygulamak ve AKS kümesine bağlanmak için adımları izleyin.

Gelişmiş ağ ile özel AKS kümesi oluşturma

komutunu kullanarak az aks create gelişmiş ağ ile özel bir küme oluşturun.

Bu komuttaki anahtar parametreleri:

  • --enable-private-cluster: Özel küme modunu etkinleştirir.
  • --network-plugin azure: Azure CNI ağ eklentisini belirtir.
  • --vnet-subnet-id <subnet-id>: Sanal ağ içindeki mevcut bir alt ağın kaynak kimliği.
  • --dns-service-ip <dns-service-ip>: Küme DNS hizmeti için kullanılacak Kubernetes hizmet adresi aralığındaki kullanılabilir bir IP adresi. Örneğin, 10.2.0.10.
  • --service-cidr <service-cidr>: Hizmet kümesi IP adreslerinin ataması için kullanılan CIDR gösterimi IP aralığı. Örneğin, 10.2.0.0/24.
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 <dns-service-ip> \
    --service-cidr <service-cidr> \
    --generate-ssh-keys
  1. main.tf adlı bir dosya oluşturun ve Terraform sürümünü tanımlamak ve Azure sağlayıcısını belirtmek için aşağıdaki kodu ekleyin:

    terraform {
      required_version = ">= 1.3.0"
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~> 4.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
      subscription_id = var.subscription_id
    }
    
  2. Azure abonelik kimliği, kaynak grubu adı, konum, AKS kümesi adı, sanal ağ (VNet) adı ve alt ağ adı için giriş değişkenleri oluşturmak üzere main.tf aşağıdaki kodu ekleyin. Varsayılan değerleri gerektiği gibi değiştirebilirsiniz.

    variable "subscription_id" {
      description = "The Azure subscription ID."
      type = string
    }
    
    variable "resource_group_name" {
      description = "The name of the resource group for the AKS cluster."
      type = string
      default = "rg-private-aks-advanced"
    }
    
    variable "location" {
      description = "The Azure region where the resources will be created."
      type = string
      default = "eastus"
    }
    
    variable "aks_cluster_name" {
      description = "The name of the AKS cluster."
      type = string
      default = "aks-private-advanced"
    }
    
    variable "vnet_name" {
      description = "The name of the virtual network."
      type = string
      default = "vnet-private-aks"
    }
    
    variable "subnet_name" {
      description = "The name of the subnet used by AKS."
      type = string
      default = "snet-aks"
    }
    
  3. Azure kaynak grubu, sanal ağ ve alt ağ oluşturmak için aşağıdaki kodu main.tf ekleyin:

    resource "azurerm_resource_group" "this" {
      name = var.resource_group_name
      location = var.location
    }
    
    resource "azurerm_virtual_network" "this" {
      name = var.vnet_name
      location = azurerm_resource_group.this.location
      resource_group_name = azurerm_resource_group.this.name
      address_space = ["10.0.0.0/8"]
    }
    
    resource "azurerm_subnet" "aks" {
      name = var.subnet_name
      resource_group_name  = azurerm_resource_group.this.name
      virtual_network_name = azurerm_virtual_network.this.name
      address_prefixes = ["10.240.0.0/16"]
    }
    
  4. Gelişmiş ağ ile AKS kümesini oluşturmak için aşağıdaki kodu main.tf ekleyin:

    resource "azurerm_kubernetes_cluster" "this" {
      name = var.aks_cluster_name
      location = azurerm_resource_group.this.location
      resource_group_name = azurerm_resource_group.this.name
      dns_prefix = "privateadvancedaks"
    
      private_cluster_enabled = true
    
      default_node_pool {
        name = "system"
        node_count = 1
        vm_size = "Standard_DS2_v2"
        vnet_subnet_id = azurerm_subnet.aks.id
      }
    
      identity {
        type = "SystemAssigned"
      }
    
      network_profile {
        load_balancer_sku = "standard"
        network_plugin = "azure"
        dns_service_ip = "10.2.0.10"
        service_cidr = "10.2.0.0/24"
      }
    }
    
  5. Terraform'u başlatmak, Terraform yapılandırmasını biçimlendirmek ve doğrulamak, terraform yürütme planı oluşturmak, Terraform yapılandırmasını uygulamak ve AKS kümesine bağlanmak için adımları izleyin.

Özel AKS kümeleriyle özel alan adları kullanma

Özel etki alanlarını yalnızca dahili olarak çözümlenebilecek şekilde yapılandırmak istiyorsanız, bkz. Özel etki alanları kullanma.

Özel AKS kümesinde genel FQDN'yi devre dışı bırakma

Yeni bir kümede genel FQDN'yi devre dışı bırakma

az aks create komutunu --disable-public-fqdn bayrağı ile kullanarak, özel bir AKS kümesi oluştururken genel FQDN'yi devre dışı bırakın.

Bu komuttaki anahtar parametreleri:

  • --disable-public-fqdn: API sunucusu için genel tam etki alanı adını (FQDN) devre dışı bırakır.
  • --assign-identity <resource-id>: Küme için kullanılacak yönetilen kimliği belirtir.
  • --private-dns-zone [system|none]: Küme için kullanılacak özel DNS bölgesini belirtir. system , özel dns bölgesi yapılandırılırken varsayılan değerdir. --private-dns-zone değerini atlarsanız, AKS düğüm kaynak grubunda özel bir DNS bölgesi oluşturur. none özel DNS bölgesi oluşturmayı devre dışı bırakır.
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] \
    --disable-public-fqdn \
    --generate-ssh-keys
  1. Terraform yapılandırmasını ayarlamak ve senaryonuza bağlı olarak gerekli kaynakları oluşturmak için Gelişmiş ağ ile özel AKS kümesi oluşturma veya Varsayılan temel ağ ile özel AKS kümesi oluşturma makalesindeki 1-3 arası adımları izleyin. Bu örnekte gelişmiş ağ kullanılır.

  2. Özel bir AKS kümesi oluşturmak için, kullanıcı tarafından atanan bir kimlikle ve genel FQDN devre dışı bırakılmış şekilde aşağıdaki kodu main.tf ekleyin:

    resource "azurerm_user_assigned_identity" "aks" {
      name = "id-private-aks-public-fqdn-off"
      location = azurerm_resource_group.this.location
      resource_group_name = azurerm_resource_group.this.name
    }
    resource "azurerm_kubernetes_cluster" "this" {
      name = var.aks_cluster_name
      location = azurerm_resource_group.this.location
      resource_group_name = azurerm_resource_group.this.name
      dns_prefix = "privateaks"
      private_cluster_enabled = true
      private_cluster_public_fqdn_enabled = false
    
      private_dns_zone_id = "System"
    
      default_node_pool {
        name = "system"
        node_count = 1
        vm_size = "Standard_DS2_v2"
        vnet_subnet_id = azurerm_subnet.aks.id
      }
      identity {
        type = "UserAssigned"
        identity_ids = [azurerm_user_assigned_identity.aks.id]
      }
      network_profile {
        load_balancer_sku = "standard"
        network_plugin = "azure"
        dns_service_ip = "10.2.0.10"
        service_cidr = "10.2.0.0/24"
      }
    }
    
  3. Terraform'u başlatmak, Terraform yapılandırmasını biçimlendirmek ve doğrulamak, terraform yürütme planı oluşturmak, Terraform yapılandırmasını uygulamak ve AKS kümesine bağlanmak için adımları izleyin.

Mevcut bir kümede genel FQDN'yi devre dışı bırakma

Mevcut bir AKS kümesinde genel bir FQDN'yi az aks update komutunu --disable-public-fqdn bayrağıyla kullanarak devre dışı bırakın.

Bu komuttaki anahtar parametreleri:

  • --disable-public-fqdn: API sunucusu için genel tam etki alanı adını (FQDN) devre dışı bırakır.
az aks update \
    --name <private-cluster-name> \
    --resource-group <private-cluster-resource-group> \
    --disable-public-fqdn
  1. Mevcut main.tf aks kümesinde genel FQDN'yi devre dışı bırakmak için aşağıdaki kodu var olan koda ekleyin. Bu örnekte gelişmiş ağ kullanılır. İlgili Terraform kaynaklarını ve parametrelerini değiştirerek varsayılan temel ağı kullanacak şekilde değiştirebilirsiniz.

    resource "azurerm_kubernetes_cluster" "this" {
      name = var.aks_cluster_name
      location = azurerm_resource_group.this.location
      resource_group_name = azurerm_resource_group.this.name
      dns_prefix = "privateaks"
    
      private_cluster_enabled = true
      private_cluster_public_fqdn_enabled = false
      private_dns_zone_id = "System"
    
      default_node_pool {
        name = "system"
        node_count = 1
        vm_size = "Standard_DS2_v2"
        vnet_subnet_id = azurerm_subnet.aks.id
      }
    
      identity {
        type = "UserAssigned"
        identity_ids = [azurerm_user_assigned_identity.aks.id]
      }
    
      network_profile {
        load_balancer_sku = "standard"
        network_plugin = "azure"
        dns_service_ip = "10.2.0.10"
        service_cidr = "10.2.0.0/24"
      }
    }
    
  2. Güncelleştirilmiş Terraform yapılandırmasını terraform plan ve terraform apply komutlarını kullanarak uygulayın.

    terraform plan
    terraform apply
    

Özel DNS için yapılandırma seçenekleri

Azure CLI (--private-dns-zone parametresiyle) veya Azure Resource Manager (ARM) şablonunu (privateDNSZone özelliğiyle) kullanarak özel AKS kümesi için özel DNS ayarlarını yapılandırabilirsiniz. Aşağıdaki tabloda, --private-dns-zone parametresi / privateDNSZone özelliği için kullanılabilen seçenekler özetlenmiştir.

Setting Description
system Özel DNS bölgesi yapılandırılırken varsayılan değer. tr-TR: --private-dns-zone / privateDNSZone değerini atlarsanız, AKS, düğüm kaynak grubunda özel bir DNS bölgesi oluşturur.
none Eğer --private-dns-zone / privateDNSZone'yi none olarak ayarlarsanız, AKS özel DNS bölgesi oluşturmaz.
<custom-private-dns-zone-resource-id> Bu parametreyi kullanmak için, Azure genel bulut için şu biçimde bir özel DNS bölgesi oluşturmanız gerekir: privatelink.<region>.azmk8s.io veya <subzone>.privatelink.<region>.azmk8s.io. Gelecekte kullanmak için özel DNS bölgesinin kaynak kimliğine ihtiyacınız vardır. Ayrıca Özel DNS Zone Contributor ve Network Contributor rollerine sahip kullanıcı tarafından atanan bir kimlik veya hizmet sorumlusuna da ihtiyacınız vardır. API Server sanal ağ tümleştirmesi kullanan kümeler için, özel bir DNS bölgesi private.<region>.azmk8s.io veya <subzone>.private.<region>.azmk8s.io adlandırma biçimini destekler. Performans sorunlarına ve küme yükseltme hatalarına neden olabileceğinden, kümeyi oluşturduktan sonra bu kaynak kaynağını değiştiremez veya silemezsiniz. Sadece --fqdn-subdomain <subdomain><custom-private-dns-zone-resource-id> ile, privatelink.<region>.azmk8s.io'ye alt etki alanı özellikleri sağlamak amacıyla kullanabilirsiniz. Bir alt bölge belirtiyorsanız, ad için <subzone> 32 karakter sınırı vardır.

Özel DNS ile ilgili dikkat edilmesi gerekenler

Özel AKS kümesi için özel DNS yapılandırırken aşağıdaki noktaları göz önünde bulundurun:

  • Özel DNS bölgesi AKS kümesinden farklı bir abonelikteyse, her iki aboneliğe de Microsoft.ContainerService Azure sağlayıcısını kaydetmeniz gerekir.
  • AKS kümeniz bir Active Directory hizmet sorumlusuyla yapılandırılmışsa AKS, özel özel DNS bölgesi ile sistem tarafından atanan yönetilen kimlik kullanmayı desteklemez. Küme, kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulamasını kullanmalıdır.

Özel DNS bölgesi ile özel AKS kümesi oluşturma

komutunu kullanarak az aks create özel DNS bölgesiyle özel bir AKS kümesi oluşturun.

Bu komuttaki anahtar parametreleri:

  • --enable-private-cluster: Özel küme modunu etkinleştirir.
  • --private-dns-zone [system|none]: Küme için özel DNS bölgesini yapılandırır. system , özel dns bölgesi yapılandırılırken varsayılan değerdir. --private-dns-zone değerini atlarsanız, AKS düğüm kaynak grubunda özel bir DNS bölgesi oluşturur. none özel DNS bölgesi oluşturmayı devre dışı bırakır.
  • --assign-identity <resource-id>: Özel DNS Zone Contributor ve Network Contributor rolleriyle kullanıcı tarafından atanan yönetilen kimliğin kaynak kimliği.
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
  1. Terraform yapılandırmasını ayarlamak ve senaryonuza bağlı olarak gerekli kaynakları oluşturmak için Gelişmiş ağ ile özel AKS kümesi oluşturma veya Varsayılan temel ağ ile özel AKS kümesi oluşturma makalesindeki 1-3 arası adımları izleyin. Bu örnekte gelişmiş ağ kullanılır.

  2. AKS tarafından yönetilen özel DNS bölgesiyle özel bir AKS kümesi oluşturmak için aşağıdaki kodu main.tf ekleyin:

    resource "azurerm_kubernetes_cluster" "this" {
     name                = var.aks_cluster_name
     location            = azurerm_resource_group.this.location
     resource_group_name = azurerm_resource_group.this.name
     dns_prefix          = "aks-system-dns"
     private_cluster_enabled = true
     private_dns_zone_id     = "System"
     default_node_pool {
       name           = "system"
       node_count     = 1
       vm_size        = "Standard_DS2_v2"
       vnet_subnet_id = azurerm_subnet.aks.id
     }
     identity {
       type = "SystemAssigned"
     }
     network_profile {
       network_plugin    = "azure"
       load_balancer_sku = "standard"
       dns_service_ip    = "10.2.0.10"
       service_cidr      = "10.2.0.0/24"
     }
    }
    
  3. Terraform'u başlatmak, Terraform yapılandırmasını biçimlendirmek ve doğrulamak, terraform yürütme planı oluşturmak, Terraform yapılandırmasını uygulamak ve AKS kümesine bağlanmak için adımları izleyin.

Özel DNS bölgesi olmadan özel AKS kümesi oluşturma

  1. Terraform yapılandırmasını ayarlamak ve senaryonuza bağlı olarak gerekli kaynakları oluşturmak için Gelişmiş ağ ile özel AKS kümesi oluşturma veya Varsayılan temel ağ ile özel AKS kümesi oluşturma makalesindeki 1-3 arası adımları izleyin. Bu örnekte gelişmiş ağ kullanılır.

  2. Aks kümesini özel DNS bölgesi olmadan oluşturmak için aşağıdaki kodu main.tf ekleyin:

    resource "azurerm_kubernetes_cluster" "this" {
     name                = var.aks_cluster_name
     location            = azurerm_resource_group.this.location
     resource_group_name = azurerm_resource_group.this.name
     dns_prefix          = "aks-no-dns"
     private_cluster_enabled = true
     private_dns_zone_id     = "None"
     default_node_pool {
       name           = "system"
       node_count     = 1
       vm_size        = "Standard_DS2_v2"
       vnet_subnet_id = azurerm_subnet.aks.id
     }
     identity {
       type = "SystemAssigned"
     }
     network_profile {
       network_plugin    = "azure"
       load_balancer_sku = "standard"
       dns_service_ip    = "10.2.0.10"
       service_cidr      = "10.2.0.0/24"
     }
    }
    
  3. Terraform'u başlatmak, Terraform yapılandırmasını biçimlendirmek ve doğrulamak, terraform yürütme planı oluşturmak, Terraform yapılandırmasını uygulamak ve AKS kümesine bağlanmak için adımları izleyin.

Özel bir DNS bölgesi veya özel bir DNS alt bölgesi ile özel bir AKS kümesi oluşturma

Özel bir DNS bölgesi veya alt bölgesi olan özel bir AKS kümesi oluşturmak için az aks create komutunu kullanın.

Bu komuttaki anahtar parametreleri:

  • --enable-private-cluster: Özel küme modunu etkinleştirir.
  • --private-dns-zone [<custom-private-dns-zone-resource-id>|<custom-private-dns-subzone-resource-id>]: Azure küresel bulutu için mevcut bir özel DNS bölgesinin veya alt bölgenin kaynak kimliği şu formatlardadır: privatelink.<region>.azmk8s.io veya <subzone>.privatelink.<region>.azmk8s.io.
  • --assign-identity <resource-id>: Özel DNS Zone Contributor ve Network Contributor rolleriyle kullanıcı tarafından atanan yönetilen kimliğin kaynak kimliği.
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

Özel bir özel DNS bölgesi kullanırken, Azure yönetilen DNS'ye güvenmek yerine DNS altyapısını oluşturmak ve yönetmek sizin sorumluluğunuzdadır. Bu, DNS bölgesini oluşturmayı, sanal ağınıza bağlamayı ve AKS'nin kayıtları yönetmesi için gerekli izinleri atamayı içerir.

Özel DNS yapılandırmaları için, Özel DNS Bölge Katkıcısı ve Ağ Katkıcısı rolleri ile kullanıcı tarafından atanan yönetilen bir kimlik kullanmanız gerekir.

  1. Terraform yapılandırmasını ayarlamak ve senaryonuza bağlı olarak gerekli kaynakları oluşturmak için Gelişmiş ağ ile özel AKS kümesi oluşturma veya Varsayılan temel ağ ile özel AKS kümesi oluşturma makalesindeki 1-3 arası adımları izleyin. Bu örnekte gelişmiş ağ kullanılır.

  2. main.tf etiketine özel bir DNS bölgesi veya alt bölgesi ile özel bir AKS kümesi oluşturmak için kodu ekleyin.

    resource "azurerm_user_assigned_identity" "aks" {
     name                = "aks-custom-dns-id"
     location            = azurerm_resource_group.this.location
     resource_group_name = azurerm_resource_group.this.name
    }
    resource "azurerm_private_dns_zone" "aks" {
     name                = "privatelink.eastus.azmk8s.io"
     resource_group_name = azurerm_resource_group.this.name
    }
    resource "azurerm_private_dns_zone_virtual_network_link" "link" {
     name                  = "aks-dns-link"
     resource_group_name   = azurerm_resource_group.this.name
     private_dns_zone_name = azurerm_private_dns_zone.aks.name
     virtual_network_id    = azurerm_virtual_network.this.id
    }
    resource "azurerm_role_assignment" "dns" {
     scope                = azurerm_private_dns_zone.aks.id
     role_definition_name = "Private DNS Zone Contributor"
     principal_id         = azurerm_user_assigned_identity.aks.principal_id
    }
    resource "azurerm_role_assignment" "network" {
     scope                = azurerm_virtual_network.this.id
     role_definition_name = "Network Contributor"
     principal_id         = azurerm_user_assigned_identity.aks.principal_id
    }
    resource "azurerm_kubernetes_cluster" "this" {
     name                = var.aks_cluster_name
     location            = azurerm_resource_group.this.location
     resource_group_name = azurerm_resource_group.this.name
     dns_prefix          = "aks-custom-dns"
     private_cluster_enabled = true
     private_dns_zone_id     = azurerm_private_dns_zone.aks.id
     default_node_pool {
       name           = "system"
       node_count     = 1
       vm_size        = "Standard_DS2_v2"
       vnet_subnet_id = azurerm_subnet.aks.id
     }
     identity {
       type         = "UserAssigned"
       identity_ids = [azurerm_user_assigned_identity.aks.id]
     }
     network_profile {
       network_plugin    = "azure"
       load_balancer_sku = "standard"
       dns_service_ip    = "10.2.0.10"
       service_cidr      = "10.2.0.0/24"
     }
     depends_on = [
       azurerm_role_assignment.dns,
       azurerm_role_assignment.network
     ]
    }
    
  3. Terraform'u başlatmak, Terraform yapılandırmasını biçimlendirmek ve doğrulamak, terraform yürütme planı oluşturmak, Terraform yapılandırmasını uygulamak ve AKS kümesine bağlanmak için adımları izleyin.

Özel bir özel DNS bölgesi ve özel alt etki alanı ile bir özel AKS kümesi oluşturun.

az aks create komutunu kullanarak özel bir özel DNS bölgesi ve alt etki alanı ile özel bir AKS kümesi oluşturun.

Bu komuttaki anahtar parametreleri:

  • --enable-private-cluster: Özel küme modunu etkinleştirir.
  • --private-dns-zone <custom-private-dns-zone-resource-id>: Azure genel bulut için var olan bir özel DNS bölgesinin kaynak kimliği: privatelink.<region>.azmk8s.io.
  • --fqdn-subdomain <subdomain>: Özel DNS bölgesi içindeki küme FQDN'si için kullanılacak alt etki alanı.
  • --assign-identity <resource-id>: Özel DNS Zone Contributor ve Network Contributor rolleri ile atanmış bir kullanıcı yönetimli kimliğin kaynak kimliği.
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
  1. Terraform yapılandırmasını ayarlamak ve senaryonuza bağlı olarak gerekli kaynakları oluşturmak için Gelişmiş ağ ile özel AKS kümesi oluşturma veya Varsayılan temel ağ ile özel AKS kümesi oluşturma makalesindeki 1-3 arası adımları izleyin. Bu örnekte gelişmiş ağ kullanılır.

  2. Özel bir DNS bölgesi ve alt etki alanı ile özel bir AKS kümesi oluşturmak için aşağıdaki kodu main.tf ekleyin:

    resource "azurerm_kubernetes_cluster" "this" {
     name                = var.aks_cluster_name
     location            = azurerm_resource_group.this.location
     resource_group_name = azurerm_resource_group.this.name
     dns_prefix          = "aks-subdomain"
     private_cluster_enabled = true
     private_dns_zone_id     = azurerm_private_dns_zone.aks.id
     fqdn_subdomain          = "team1"
     default_node_pool {
       name           = "system"
       node_count     = 1
       vm_size        = "Standard_DS2_v2"
       vnet_subnet_id = azurerm_subnet.aks.id
     }
     identity {
       type         = "UserAssigned"
       identity_ids = [azurerm_user_assigned_identity.aks.id]
     }
     network_profile {
       network_plugin    = "azure"
       load_balancer_sku = "standard"
       dns_service_ip    = "10.2.0.10"
       service_cidr      = "10.2.0.0/24"
     }
    }
    
  3. Terraform'u başlatmak, Terraform yapılandırmasını biçimlendirmek ve doğrulamak, terraform yürütme planı oluşturmak, Terraform yapılandırmasını uygulamak ve AKS kümesine bağlanmak için adımları izleyin.

Mevcut bir özel AKS kümesini özel DNS bölgesinden genele güncelleştirme

Yalnızca byo (kendi cihazınızı getir) veya system 'a none güncelleştirebilirsiniz. Güncelleştirme değerlerinin başka bir bileşimi desteklenmez.

Uyarı

Özel bir kümeyi byo veya system'den none'ye güncelleştirdiğinizde, aracı düğümler kamuya açık bir FQDN kullanacak şekilde değişir. Azure Sanal Makine Ölçek Kümeleri kullanan bir AKS kümesinde, düğümlerinizi genel FQDN ile güncelleştirmek için node görüntü yükseltme gerçekleştirilir.

byo komutunu, system olarak ayarlanmış none parametresi ile kullanarak özel kümeyi az aks update veya --private-dns-zone'den none'ye güncelleyin.

az aks update \
    --name <private-cluster-name> \
    --resource-group <private-cluster-resource-group> \
    --private-dns-zone none
  1. Özel AKS kümesini bir özel DNS bölgesinden genele güncelleştirmek için aşağıdaki kodu var olan main.tf koda ekleyin. Bu örnekte gelişmiş ağ kullanılır. İlgili Terraform kaynaklarını ve parametrelerini değiştirerek varsayılan temel ağı kullanacak şekilde değiştirebilirsiniz.

    resource "azurerm_kubernetes_cluster" "this" {
     name                = var.aks_cluster_name
     location            = azurerm_resource_group.this.location
     resource_group_name = azurerm_resource_group.this.name
     dns_prefix          = "aks-update"
     private_cluster_enabled = true
     private_dns_zone_id     = "None"
     default_node_pool {
       name           = "system"
       node_count     = 1
       vm_size        = "Standard_DS2_v2"
       vnet_subnet_id = azurerm_subnet.aks.id
     }
     identity {
       type         = "UserAssigned"
       identity_ids = [azurerm_user_assigned_identity.aks.id]
     }
     network_profile {
       network_plugin    = "azure"
       load_balancer_sku = "standard"
       dns_service_ip    = "10.2.0.10"
       service_cidr      = "10.2.0.0/24"
     }
    }
    
  2. Güncelleştirilmiş Terraform yapılandırmasını terraform plan ve terraform apply komutlarını kullanarak uygulayın.

    terraform plan
    terraform apply
    

Terraform'u başlatma

main.tf komutunu kullanarak terraform init dosyanızın bulunduğu dizinde Terraform'u başlatın. Bu komut Terraform ile Azure kaynakları yönetmek için gereken Azure sağlayıcısını indirir.

terraform init

Terraform yapılandırmasını biçimlendirme ve doğrulama

terraform fmt ve terraform validate komutlarını kullanarak Terraform yapılandırmasını biçimlendirin ve doğrulayın.

terraform fmt
terraform validate

Terraform için bir yürütme planı oluşturun

terraform plan komutunu kullanarak bir Terraform yürütme planı oluşturun. Bu komut, Terraform'un Azure aboneliğinizde oluşturacağı veya değiştireceği kaynakları gösterir.

terraform plan -var="subscription_id=<your-subscription-id>"

Terraform yapılandırmasını uygulama

Yürütme planını gözden geçirip onayladıktan sonra komutunu kullanarak terraform apply Terraform yapılandırmasını uygulayın. Bu komut, Azure aboneliğinizdeki main.tf dosyanızda tanımlanan kaynakları oluşturur veya değiştirir.

terraform apply -var="subscription_id=<your-subscription-id>"

kubectl'yi özel aks kümesine bağlanacak şekilde yapılandırma

Kubernetes kümesini yönetmek için kubectl adlı Kubernetes komut satırı istemcisini kullanın. Azure Cloud Shell kullanıyorsanız kubectl zaten yüklüdür. kubectl yerel olarak yüklemek için az aks install-cli komutunu kullanın.

  1. Önce kubectl'ü Kubernetes kümenize bağlanacak şekilde az aks get-credentials komutunu kullanarak yapılandırın. Bu komut kimlik bilgilerini indirir ve Kubernetes CLI'yi bunları kullanacak şekilde yapılandırmaktadır.

    az aks get-credentials --resource-group <private-cluster-resource-group> --name <private-cluster-name>
    
  2. komutunu kullanarak kubectl get kümenize bağlantıyı doğrulayın. Bu komut, küme düğümlerinin listesini döndürür.

    kubectl get nodes
    

    komut, aşağıdaki örnek çıktıya benzer bir çıktı döndürür:

    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