AKS için esnek düğümleri planlayın (önizleme)

Important

AKS önizleme özellikleri self servis ve kabul temelinde kullanılabilir. Önizlemeler "olduğu gibi" ve "mevcut olduğu şekilde" sağlanmakta olup, hizmet seviyesi anlaşmalarına ve sınırlı garantilere dahil edilmemektedir. AKS önizlemeleri, müşteri desteği ekibi tarafından maksimum çaba gösterilerek kısmen ele alınmaktadır. Bu nedenle, bu özellikler üretim kullanımı için tasarlanmamıştır. Daha fazla bilgi için aşağıdaki destek makalelerine bakın:

Esnek düğümler, bir Azure Kubernetes Service (AKS) kümesini, kümenin Azure yönetilen düğüm havuzlarının dışında yönettiğiniz Linux makinelerine genişletir. Bir esnek düğüm eklemeden önce, konağın Azure’a nasıl kimlik doğrulayacağını, Kubernetes API sunucusuna nasıl erişeceğini ve ağ trafiğinin AKS ile esnek düğüm ortamları arasında nasıl hareket edeceğini belirleyin.

Bu makale, bu kararları vermenizi, eşleme olmayan adres aralıklarını planlamanıza ve kalan dağıtım makaleleri için paylaşılan bir ortam dosyası oluşturmanıza yardımcı olur.

Başlamadan önce

  • AKS'ye genel bakış için esnek düğümleri gözden geçirin.
  • Esnek düğümler için kimlik ve erişim kavramlarını gözden geçirin.
  • Esnek düğümler için ağ kavramlarını gözden geçirin.
  • Gerekli araçlara ve ağ erişimine sahip Linux uyumlu bir Bash ortamı kullanın. Bu dağıtım serisi, bu ortamdan Bash ortamınız diye söz eder. Kümeyi birleştiren ayrı makine esnek düğüm konağıdır.
  • Azure CLI yükleyin. Yüklü sürümü bulmak için az --version komutunu çalıştırın. Yüklemek veya yükseltmek için Install the Azure CLI bölümüne bakın.
  • Hedef aboneliği ve sanal ağ yapılandırmasını okuyabilen bir hesapla Azure oturum açın.
  • Azure tarafından yönetilen AKS düğümleri için mevcut bir Azure sanal ağı ve alt ağı hazırlayın. Sanal ağ AKS kümesinden farklı bir kaynak grubunda olabilir. Bu durumda, AKS kümesi kimliğinin alt ağda gerekli izinlere sahip olduğundan emin olun.

Dağıtım kararlarını verme

Kaynakları oluşturmadan veya yapılandırmadan önce aşağıdaki kararları planlayın.

Karar Options Karar neleri denetler?
Konak kimliği Yönetilen kimlik, Azure Arc yönetilen kimlik veya hizmet sorumlusu Esnek düğüm aracısı Azure'a nasıl kimlik doğrular
AKS API erişimi Genel veya özel AKS kümesi Bash ortamınızın ve flex node ana bilgisayarlarınızın Kubernetes API sunucusunu nasıl çözümleyip ona nasıl eriştiği
Flex düğüm bağlantısı Katman 3 bağlantısı veya Unbounded-Net WireGuard ağ geçidi AKS tarafından yönetilen düğümler, esnek düğümler, podlar ve Kubernetes hizmetleri nasıl iletişim kurar?

Bu kararlar dağıtımın farklı bölümlerini ele alır. Örneğin, genel AKS API uç noktası seçildiğinde AKS tarafından yönetilen düğümler ile esnek düğüm konakları arasında ağ bağlantısı oluşturulmaz.

Konak kimliğini seçin

Esnek düğüm aracısının kullandığı Azure kimliğini seçmek için esnek düğümler için kimlik ve erişim kavramlarında karar tablosunu kullanın.

Konak kimliği, Azure işlemlerini yetkiler. Konağın kümeye katılması için gereken ağ bağlantısının veya Kubernetes bootstrap yapılandırmasının yerini almaz. Kimlik bilgilerini paylaşılan ortam dosyasında depolamayın.

Genel veya özel AKS API erişimini seçme

Kubernetes API sunucusu, kümenin yönetim uç noktasıdır. Bash ortamınız ve her esnek düğüm konağı bu uç noktayı çözümleyebilmeli ve bu uç noktaya bağlanabilmelidir.

  • Genel AKS API erişimi güvenli bir genel uç nokta kullanır. Kubernetes kimlik doğrulaması ve yetkilendirmesi kümeye erişimi denetlemeye devam eder. Genel API uç noktası, kümede çalışan uygulamaları kullanıma sunmaz.
  • Özel AKS API erişimi, AKS sanal ağında özel bir uç nokta kullanır. Bash ortamınızda Azure CLI, kubectlve küme kurulum komutlarını çalıştırın; bu komutlar bu özel ağa bağlı bir makinede çalıştırılmalıdır. Esnek düğüm ağının ayrıca kümenin özel DNS adını çözümleyebilmesi ve trafiği özel uç noktaya yönlendirebilmesi gerekir.

Esnek düğüm dağıtımları API sunucusuna hem genel hem de özel erişimi destekler. Özel yol, ek DNS, yönlendirme ve komut yürütme yapılandırması gerektirir; bunların gerekli olduğu yerler ilgili bölümlerde belirtilmiştir. Genel AKS kılavuzu için bkz. AKS için denetim düzlemi ağını planlama, Özel AKS kümesi oluşturma ve Özel AKS kümesine bağlanma.

Esnek düğüm bağlantısını seçin

Bu dağıtım serisi aks kümesini yerleşik bir ağ eklentisi olmadan oluşturur ve hem AKS tarafından yönetilen düğümlere hem de esnek düğümlere Unbounded-Net yükler. Unbounded-Net pod adres aralıkları atar ve AKS ile esnek düğüm ortamları arasında yönlendirmeyi yapılandırır. Bu makalede bu iş akışı açıklanmaktadır. Diğer CNI veya ağ yapılandırmaları farklı yönlendirme, güvenlik duvarı, DNS, ağ geçidi, güvenlik ve yaşam döngüsü yapılandırması gerektirebilir. Genel önizleme ağ modelinin açıklaması için bkz. Esnek düğümler için ağ kavramları.

AKS ile flex node ortamları arasındaki temel ağ bağlantısını sağlarsınız. Katman 3 bağlantısı, her iki düğüm ağının da IP paketlerini her iki yönde de birbirlerinin düğüm adreslerine yönlendirebileceği anlamına gelir. Mevcut ağınıza uygun yöntemi seçin:

Bağlantı yöntemi Ne zaman kullanılır?
Sanal ağ eşleme AKS kümesi ve esnek düğüm konakları, farklı bölgelerdeki sanal ağlar da dahil olmak üzere Azure sanal ağlarda yer alır.
VPN Gateway Esnek düğüm konakları, şirket içi bir ortamda veya şifreli bir siteden siteye VPN aracılığıyla Azure'a bağlanan başka bir ağda bulunur.
ExpressRoute Kuruluşunuz ağıyla Azure arasında ayrılmış bir özel bağlantı kullanıyor.
Unbounded-Net WireGuard ağ geçidi AKS ve esnek düğüm ağlarının özel yönlendirilmiş bağlantısı yoktur. WireGuard tünellerini bir AKS ağ geçidi düğüm havuzunda yapılandırıp çalıştırırsınız ve bu ağ geçidi düğümlerinin genel olarak erişilebilir olması gerekir. Ortamlar arası pod trafiği bu havuza bağlı olduğundan ağ geçidi kapasitesini ve kullanılabilirliğini planlayın. Unbounded-Net WireGuard laboratuvarıyla genel AKS kümesine bakın.

Microsoft Learn kılavuzu, Sınırsız Ağ ile Katman 3 bağlantısını kullanır.

AKS API Flex düğüm bağlantısı Rehberlik
Public Katman 3 bağlantısı Önerilen yapılandırma
Özel Katman 3 bağlantısı Ek DNS, yönlendirme ve komut yürütme yapılandırması gerektirir
Public Ortak WireGuard ağ geçidi Alternatif topoloji; bkz. AKSFlexNode laboratuvarları
Özel Ortak WireGuard ağ geçidi Bu belge kapsamında değildir

Note

Ek topoloji örnekleri için, WireGuard ağ geçidine sahip genel AKS API sunucusu ve müşteri tarafından yönetilen ağ ile özel AKS API sunucusu kullanan örnekler de dahil olmak üzere AKSFlexNode laboratuvarlarına bakın. Bu laboratuvarlar, bu makalede belgelenen yapılandırmayı tamamlar. Bu laboratuvarlar farklı ağ bileşenleri kullanabilir ve farklı işletim veya destek sorumluluklarına sahip olabilir. Laboratuvarı kullanmadan önce önkoşullarını, sınırlamalarını, geçerli bileşen sürümlerini ve müşteri sorumluluklarını gözden geçirin. GitHub laboratuvarı, Microsoft Learn'de belgelenen destek kapsamını genişletmez.

Temsil edilmeen bir topoloji hakkında geri bildirim sağlamak için AKSFlexNode deposunda bir sorun açın. Esnek düğüm konak konumunu, AKS API erişim modelini, önerilen bağlantı yöntemini, önerilen CNI'yi ve senaryonun gerektirdiği ağ yollarını ekleyin.

Gerekli ağ bağlantısını planlama

Ağ tasarımının aşağıdaki bağlantıyı sağladığından emin olmak için ağ yöneticinizle birlikte çalışın:

Requirement Neden gereklidir?
Bash ortamınız çözümlenebilir ve AKS API sunucusuna ulaşabilir. Kümeyi yapılandırmak ve yönetmek için bu bağlantıya ihtiyacınız vardır.
Her esnek düğüm ana bilgisayarı, AKS API sunucusunu çözümleyebilir ve ona erişebilir. Esnek düğüm aracısı ve kubelet, kümeye katılmak ve Kubernetes denetim düzlemi ile iletişim kurmak için bu bağlantıyı kullanır.
AKS tarafından yönetilen düğümler ile esnek düğüm ana bilgisayarları birbirlerinin özel IP adreslerine erişebilir. çoğu bağlantı yöntemi için Unbounded-Net iki ortam arasındaki temel yol olarak düğüm ağlarını kullanır.
Pod ve Kubernetes hizmet trafiği AKS tarafından yönetilen düğümler ile esnek düğümler arasında yönlendirme yapabilir. İş yükleri için düğümler arası iletişim, küme DNS'i ve Kubernetes hizmeti erişimi gerekir.
AKS kontrol düzlemi, bir flex düğümündeki kubelet'e bağlanabilir. AKS, , kubectl execve kubectl port-forwardgibi kubectl logskubelet işlemleri için bu yolu kullanır.

Yönlendirme, sanal ağ eşlemesi, VPN veya ExpressRoute bağlantıları, güvenlik duvarı ve ağ güvenlik grubu kuralları, DNS, ara sunucu ayarları ve bu seride belgelenen Unbounded-Net yapılandırması gibi dış ana bilgisayar ağını yapılandırıp çalıştırırsınız. Tam sorumluluk modeli için esnek düğümler için destek ilkesine bakın.

Ana bilgisayar yönetimi erişimini yalnızca onaylanmış kaynak adresleriyle kısıtlayın. Azure VM için bir ağ güvenlik grubunu konak alt ağı veya ağ arabirimiyle ilişkilendirin. Azure dışındaki bir konak için eşdeğer güvenlik duvarı denetimleri uygulayın. Bir esnek düğüm ana bilgisayarı oluşturmak için az vm create kullanıyorsanız komutun oluşturduğu genel IP adreslerini ve ağ güvenlik grubu kurallarını gözden geçirin. SSH kuralını kısıtlamadığınız sürece, herhangi bir genel kaynaktan 22 numaralı TCP bağlantı noktasına bağlantılara izin verebilir.

Dağıtım değerlerini toplama

Kalan makalelerde aşağıdaki değerler yeniden kullanılır.

Yaygın Azure kaynak değerleri

Variable Description Kullanıldığında
SUBSCRIPTION_ID AKS kümesini ve ilgili Azure kaynaklarını içeren abonelik. Her dağıtımda
RESOURCE_GROUP AKS kümesini içeren kaynak grubu. Her dağıtımda
CLUSTER_NAME AKS kümesinin adı. Her dağıtımda
FLEX_POOL_NAME Esnek düğüm havuzunun adı. Yalnızca harfleri ve basamakları kullanın. Her dağıtımda
AKS_API_ACCESS AKS kümesi için API erişim modeli. Değeri private veya public olarak ayarlayın. Küme hazırlığı ve API bağlantısı doğrulaması
AKS_RESOURCE_ID AKS kümesinin Azure kaynak kimliği. Azure, küme mevcut olduktan sonra bu değeri sağlar. Sonraki makaleler

AKS kümesi ve sanal ağ değerleri

Variable Description Kullanıldığında
LOCATION AKS kümesi için Azure bölgesi. Bu bölgenin bölgesel kullanılabilirlik gereksinimini karşıladığını onaylayın. AKS kümesini oluşturma
AKS_VNET_NAME AKS alt ağını içeren sanal ağın adı. AKS alt ağını bulma ve doğrulama
AKS_VNET_RESOURCE_GROUP AKS sanal ağını içeren kaynak grubu. 'den RESOURCE_GROUPfarklı olabilir. AKS alt ağını bulma ve doğrulama
AKS_SUBNET_NAME Azure tarafından yönetilen AKS düğümleri tarafından kullanılan alt ağın adı. AKS alt ağını bulma ve doğrulama
AKS_SUBNET_ID AKS alt ağının Azure kaynak kimliği. AKS kümesini oluşturma
AKS_NODE_VM_SIZE Azure tarafından yönetilen AKS sistem düğümü havuzu için Azure VM boyutu. Bu değer esnek düğüm ana bilgisayarını boyutlandırmaz. AKS kümesini oluşturma
SERVICE_CIDR Kubernetes hizmetleri için adres aralığı. AKS kümesi ağ profilini yapılandırma
DNS_SERVICE_IP Kubernetes DNS hizmetinin IP adresi. AKS kümesi ağ profilini yapılandırma

Ortam dosyasını oluşturmadan önce AKS alt ağı kaynak kimliğini ve adres aralıklarını alın:

az network vnet subnet show \
    --resource-group '<virtual-network-resource-group>' \
    --vnet-name '<virtual-network-name>' \
    --name '<aks-subnet-name>' \
    --query "{ResourceId:id,AddressPrefix:addressPrefix,AddressPrefixes:addressPrefixes}" \
    --output json

AKS ve Unbounded-Net adres değerleri

AKS kümesinin ağ profilini yapılandırmak için DNS_SERVICE_IP ve SERVICE_CIDR kullanırsınız. Bu kılavuzda kullanılan Unbounded-Net sitelerini kurmak için düğüm ve pod CIDR'lerini yapılandırın.

AKS düğümü, AKS podu, esnek düğüm, esnek pod ve Kubernetes hizmet aralıkları seçilen ağ tasarımını izlemeli ve sanal ağ eşlemesi, VPN veya ExpressRoute aracılığıyla erişilebilen ağlarla çakışmamalıdır. Son değerleri ağ yöneticinizle koordine edin.

Örnek CIDR'leri başka bir dağıtımdan kopyalamayın. CIDR'ler yönlendirilebilir adres alanını tanımlar; bu nedenle Azure ağınızla veya bağlı ağlarınızla çakışan örnek bir CIDR aralığının yeniden kullanılması, trafiğin belirsizleşmesine yol açabilir ya da düğümlerin ve pod'ların birbirine ulaşmasını engelleyebilir.

Variable Description Kullanıcı tarafından kullanılmaktadır
AKS_SUBNET_CIDR Azure yönetilen AKS düğümleri için alt ağa atanan adres aralığı. Azure sanal ağı ve AKS alt ağı doğrulaması
AKS_NODE_CIDR AKS düğüm alt ağını içeren Unbounded-Net Site düğüm aralığı. Unbounded-Net birincil küme Site
AKS_POD_CIDR Azure yönetilen AKS düğümlerindeki podlar için adres havuzu. Unbounded-Net birincil küme Site
FLEX_HOST_SUBNET_CIDR Esnek düğüm ana bilgisayarlarını barındıran adres aralığı. Flex düğüm ana makine ağı doğrulaması
FLEX_NODE_CIDR Unbounded-Net esnek düğüm ana bilgisayar alt ağını içeren Site düğüm aralığı. Esnek düğümler için Unbounded-Net Sitesi
FLEX_POD_CIDR Esnek düğümlerdeki podlar için adres havuzu. Esnek düğümler için Unbounded-Net Sitesi
SERVICE_CIDR Kubernetes hizmetleri için adres aralığı. AKS kümesi ağ profili
DNS_SERVICE_IP Kubernetes DNS hizmetinin IP adresi. AKS kümesi ağ profili

Adres planına aşağıdaki kuralları uygulayın:

  • AKS_SUBNET_CIDR içinde AKS_NODE_CIDRbulunmalıdır.
  • FLEX_HOST_SUBNET_CIDR içinde FLEX_NODE_CIDRbulunmalıdır.
  • DNS_SERVICE_IP, SERVICE_CIDR içinde olmalıdır.

Bu sekiz değer sekiz ayrı aralık değildir. Beş, çakışmaması gereken bağımsız aralıklardır, ikisi karşılık gelen Site düğümü aralığında yer alan alt ağ aralıklarıdır ve biri hizmet aralığının içindeki tek bir IP adresidir.

Aşağıdaki değerler bu bölümdeki her kuralı karşılar. Bunları varsayılanlar olarak değil, ilişkilerin bir gösterimi olarak değerlendirin. Kullanmadan önce Azure ve bağlı ağ adres alanınızda kendi değerlerinizi onaylayın.

Variable Example Relationship
AKS_NODE_CIDR 10.10.0.0/16 Bağımsız aralık
AKS_SUBNET_CIDR 10.10.1.0/24 İçinde bulunan AKS_NODE_CIDR
AKS_POD_CIDR 10.244.0.0/16 Bağımsız aralık
FLEX_NODE_CIDR 10.20.0.0/16 Bağımsız aralık
FLEX_HOST_SUBNET_CIDR 10.20.1.0/24 İçinde bulunan FLEX_NODE_CIDR
FLEX_POD_CIDR 10.245.0.0/16 Bağımsız aralık
SERVICE_CIDR 10.96.0.0/16 Bağımsız aralık
DNS_SERVICE_IP 10.96.0.10 Içinde SERVICE_CIDR

Geçerli Azure sanal ağ adres alanlarını gözden geçirin:

az network vnet list \
    --query "[].{ResourceGroup:resourceGroup,Name:name,AddressPrefixes:addressSpace.addressPrefixes}" \
    --output table

Azure yönettiği kaynaklar içindeki çakışmaları tanımlayabilir, ancak bağlı her şirket içi veya dış ağdaki adres aralıklarını doğrulayamaz.

Bileşen sürümü değerleri

Esnek düğümler, AKS'nin uyumlu sürümlerini, Azure CLI uzantısını, Unbounded-Net'i ve esnek düğüm aracısını gerektirir. Bu makalede listelenen sürümleri kullanın ve bu bileşenleri bağımsız olarak seçmeyin veya yükseltmeyin.

Variable Description
AKS_VERSION AKS kümesi için desteklenen Kubernetes sürümü.
AKS_PREVIEW_VERSION aks-preview Azure CLI uzantısı sürümü 22.0.0b8 veya üzeri.
UNBOUNDED_VERSION Desteklenen Unbounded-Net sürümü.
AKS_FLEX_NODE_VERSION Desteklenen Flex düğüm aracısı sürümü.

Bölgesel erişilebilirlik

Esnek düğümler, kümenizin barındırıldığı bölgede AKS sürümü v20260904 veya sonraki bir sürüm gerektirir. AKS bu tarih tabanlı sürümleri otomatik olarak uygular ve içinde ayarladığınız AKS_VERSIONKubernetes sürümünden ayrıdır.

Bir küme oluşturmadan veya seçmeden önce AKS yayınizleyicisinin AKS Yayın sekmesini açın, bölgenizi bulun ve Şu anda İşlemde'nin altındaki sürümü denetleyin. AKS sürüm sürümleri biçimini vYYYYMMDD kullanır. Bölgeniz önceki bir sürümü gösteriyorsa, sürümün bölgeye ulaşmasını bekleyin veya dağıtım gereksinimleriniz izin verirse, gerekli sürümün kullanılabildiği bir bölge seçin.

Yerel çalışma alanı değeri

Variable Description
WORK_DIR Bash ortamınızda, kalan makalelerin indirmeleri, oluşturulan dosyaları ve küme kubeconfig dosyasını depoladığı dizin. ~/.local/share/aksflexnode/<deployment-name> varsayılan değerdir. Bu dosyaları dağıtımdan sonra kaldırdığınız geçici dizin gibi başka bir yerde tutmak için ortam dosyasındaki değeri değiştirin WORK_DIR .

Paylaşılan ortam dosyasını oluşturma

Her dağıtım için bir ortam dosyası oluşturun. Dosya, gizli olmayan değerlerin diğer makaleler ve terminal oturumları genelinde tutarlı kalmasını sağlar.

Bu dosyada erişim belirteçlerini, önyükleme verilerini, kubeconfig içeriğini, hizmet sorumlusu kimlik bilgilerini, sertifikaları, sertifika özel anahtarlarını veya SSH özel anahtarlarını depolamayın.

  1. Kısa bir dağıtım etiketi seçin ve ortam dosyası için korumalı bir dizin oluşturun.

    export FLEXNODE_DEPLOYMENT="flexnode-demo"
    export FLEXNODE_ENV_DIR="${HOME}/.config/aks-flexnode"
    export FLEXNODE_ENV_FILE="${FLEXNODE_ENV_DIR}/${FLEXNODE_DEPLOYMENT}.env"
    
    install -d -m 0700 "${FLEXNODE_ENV_DIR}"
    
  2. Ortam dosyasını oluşturun.

    if [[ -e "${FLEXNODE_ENV_FILE}" ]]; then
        printf 'Environment file already exists: %s\n' "${FLEXNODE_ENV_FILE}" >&2
        false
    else
        install -m 0600 /dev/null "${FLEXNODE_ENV_FILE}"
    
        cat > "${FLEXNODE_ENV_FILE}" <<'EOF'
    set_flexnode_env() {
        if [[ "$#" -ne 2 || ! "$1" =~ ^[A-Za-z_][A-Za-z0-9_]*$ ]]; then
            printf 'Usage: set_flexnode_env NAME VALUE\n' >&2
            return 2
        fi
    
        local name="$1"
        local value="$2"
        local temporary_file
    
        temporary_file="$(mktemp "$(dirname "${FLEXNODE_ENV_FILE}")/flexnode.env.XXXXXX")" || return 1
        awk -v prefix="export ${name}=" 'index($0, prefix) != 1 { print }' \
            "${FLEXNODE_ENV_FILE}" > "${temporary_file}" || {
            rm -f "${temporary_file}"
            return 1
        }
    
        printf 'export %s=%q\n' "${name}" "${value}" >> "${temporary_file}" || {
            rm -f "${temporary_file}"
            return 1
        }
    
        install -m 0600 "${temporary_file}" "${FLEXNODE_ENV_FILE}" || {
            rm -f "${temporary_file}"
            return 1
        }
    
        rm -f "${temporary_file}"
        export "${name}=${value}"
    }
    
    # Customer inputs
    export SUBSCRIPTION_ID='<subscription-id>'
    export LOCATION='<supported-aks-region>'
    export RESOURCE_GROUP='<aks-resource-group>'
    export CLUSTER_NAME='<aks-cluster-name>'
    export FLEX_POOL_NAME='<flex-node-pool-name>'
    export AKS_API_ACCESS='<public-or-private>'
    
    # AKS virtual network
    export AKS_VNET_NAME='<virtual-network-name>'
    export AKS_VNET_RESOURCE_GROUP='<virtual-network-resource-group>'
    export AKS_SUBNET_NAME='<aks-subnet-name>'
    export AKS_SUBNET_ID='<aks-subnet-resource-id>'
    
    # Network address ranges
    export AKS_SUBNET_CIDR='<aks-node-subnet-cidr>'
    export AKS_POD_CIDR='<aks-pod-cidr>'
    export AKS_NODE_CIDR='<aks-site-node-cidr>'
    export FLEX_HOST_SUBNET_CIDR='<flex-host-subnet-cidr>'
    export FLEX_NODE_CIDR='<flex-site-node-cidr>'
    export FLEX_POD_CIDR='<flex-node-pod-cidr>'
    export SERVICE_CIDR='<kubernetes-service-cidr>'
    export DNS_SERVICE_IP='<kubernetes-dns-service-ip>'
    
    # Azure-managed AKS system node pool
    export AKS_NODE_VM_SIZE='<supported-and-available-aks-node-vm-size>'
    
    # Compatible component versions for flex nodes (preview)
    export AKS_VERSION='1.36.2'
    export AKS_PREVIEW_VERSION='22.0.0b8'
    export UNBOUNDED_VERSION='v0.8.0'
    export AKS_FLEX_NODE_VERSION='v0.2.0'
    
    # Local paths
    export WORK_DIR="${HOME}/.local/share/aksflexnode/${FLEXNODE_DEPLOYMENT}"
    
    # Values recorded by later articles
    export AKS_RESOURCE_ID=''
    export FLEXNODE_KUBECONFIG=''
    export FLEX_POOL_RESOURCE_ID=''
    export FLEX_MACHINE_NAME=''
    export FLEX_HOST_NAME=''
    export FLEX_HOST_SSH_TARGET=''
    export FLEX_HOST_PRIVATE_IP=''
    export HOST_PRINCIPAL_OBJECT_ID=''
    export HOST_IDENTITY_CLIENT_ID=''
    export SSH_PUBLIC_KEY_PATH=''
    export SSH_PRIVATE_KEY_PATH=''
    export VM_RESOURCE_GROUP=''
    export VM_NAME=''
    export VM_RESOURCE_ID=''
    export ARC_RESOURCE_GROUP=''
    export ARC_MACHINE_NAME=''
    export ARC_RESOURCE_ID=''
    export SP_TENANT_ID=''
    export SP_CLIENT_ID=''
    export SP_OBJECT_ID=''
    EOF
    fi
    

    set_flexnode_env yardımcısı, sonraki makalelerin dosyaya yinelenen tanımlar eklemeden Azure tarafından oluşturulan değerleri kaydetmesine olanak tanır.

  3. ${FLEXNODE_ENV_FILE} öğesini bir düzenleyicide açın ve açılı ayraçlar içine alınmış her değeri değiştirin. Sonraki makaleler tarafından kaydedilen değerler'in altındaki değerleri boş bırakın.

  4. Yer tutucu kalmadığını kontrol edin.

    if grep -n '<[^>]*>' "${FLEXNODE_ENV_FILE}"; then
        printf 'Replace the unresolved placeholders before you continue.\n' >&2
        false
    else
        printf 'No unresolved placeholders found.\n'
    fi
    
  5. Ortam dosyasını yükleyin, çalışma dizinini oluşturun ve etkin Azure aboneliğini ayarlayın.

    source "${FLEXNODE_ENV_FILE}"
    install -d -m 0700 "${WORK_DIR:?Load the deployment environment first.}"
    az account set --subscription "${SUBSCRIPTION_ID}"
    az account show \
        --query "{Name:name,SubscriptionId:id}" \
        --output table
    

    Döndürülen abonelik kimliğinin SUBSCRIPTION_ID ile eşleştiğini onaylayın.

    AKS_API_ACCESS öğesinin desteklenen bir yolu tanımladığını doğrulayın:

    case "${AKS_API_ACCESS}" in
        public|private)
            printf 'AKS API access: %s\n' "${AKS_API_ACCESS}"
            ;;
        *)
            printf 'Set AKS_API_ACCESS to public or private.\n' >&2
            false
            ;;
    esac
    

    Dağıtım etiketini ayarlayarak ve ortam dosyasını yükleyerek her yeni terminal oturumunu başlatın:

    export FLEXNODE_DEPLOYMENT="flexnode-demo"
    export FLEXNODE_ENV_FILE="${HOME}/.config/aks-flexnode/${FLEXNODE_DEPLOYMENT}.env"
    test -s "${FLEXNODE_ENV_FILE}"
    source "${FLEXNODE_ENV_FILE}"
    install -d -m 0700 "${WORK_DIR:?Load the deployment environment first.}"
    

Planlama değerlerini doğrulama

Seçili AKS alt ağını doğrulayın.

az network vnet subnet show \
    --resource-group "${AKS_VNET_RESOURCE_GROUP}" \
    --vnet-name "${AKS_VNET_NAME}" \
    --name "${AKS_SUBNET_NAME}" \
    --query "{AddressPrefix:addressPrefix,AddressPrefixes:addressPrefixes,ResourceId:id}" \
    --output json

Döndürülen kaynak kimliğinin ve adres aralığının AKS_SUBNET_CIDR ve AKS_SUBNET_ID ile eşleştiğini doğrulayın.

Sonraki adım

Ardından, esnek düğümler için bir AKS kümesi hazırlayın. Sonraki makale, genel veya özel AKS kümesini oluşturur ve küme kaynak kimliğini kaydeder.