Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Kubernetes Service (AKS), kümeleri hızla dağıtmanızı ve yönetmenizi sağlayan yönetilen bir Kubernetes hizmetidir. Bu makalede, Azure CLI kullanarak Windows Server kapsayıcılarını çalıştıran bir AKS kümesi dağıtacaksınız. Ayrıca bir Windows Server kapsayıcısında ASP.NET örnek uygulamasını kümeye dağıtırsınız.
Uyarı
Aks kümesini hızlı bir şekilde sağlamaya başlamak için, bu makale yalnızca değerlendirme amacıyla varsayılan ayarlarla küme dağıtma adımlarını içerir. Üretime hazır bir kümeyi dağıtmadan önce, iş gereksinimlerinizle nasıl uyumlu olduğunu göz önünde bulundurmak için temel başvuru mimarimizi tanımanızı öneririz.
Başlamadan önce
Bu hızlı başlangıç, Kubernetes kavramlarının temel olarak bilindiğini varsayar. Daha fazla bilgi için bkz . Azure Kubernetes Service (AKS) için Kubernetes temel kavramları.
- Azure hesabınız yoksa, başlamadan önce ücretsiz hesap oluşturun.
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'i kullanmaya başlama.
CLI referans komutlarını yerel olarak çalıştırmayı tercih ediyorsanız, Azure CLI'yi yükleyin. Windows veya macOS üzerinde çalışıyorsanız, Azure CLI'yi bir Docker konteynerinde çalıştırmayı düşünün. Daha fazla bilgi için Azure CLI'nin bir Docker konteynerında nasıl çalıştırılacağını inceleyin.
Yerel bir kurulum kullanıyorsanız, az login komutunu kullanarak Azure CLI'ye giriş yapın. Kimlik doğrulama işlemini tamamlamak için, terminalinizde görüntülenen adımları takip edin. Diğer oturum açma seçenekleri için bkz. Azure CLI kullanarak Azure'da kimlik doğrulaması.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz . Azure CLI ile uzantıları kullanma ve yönetme.
Yüklü olan sürümü ve bağımlı kütüphaneleri bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
- Bu makale, Azure CLI'nın 2.0.64 veya sonraki bir sürümünü gerektirir. Azure Cloud Shell kullanıyorsanız en son sürüm zaten orada yüklüdür.
- Kümenizi oluşturmak için kullandığınız kimliğin uygun minimum izinlere sahip olduğundan emin olun. AKS erişimi ve kimliği hakkında daha fazla bilgi için bkz . Azure Kubernetes Service (AKS) için erişim ve kimlik seçenekleri.
- Birden çok Azure aboneliğiniz varsa, komutu kullanılarak
az account setkaynakların faturalandırılacağı uygun abonelik kimliğini seçin. Daha fazla bilgi için bkz. Azure aboneliklerini yönetme – Azure CLI . - Eğer
--os-sku Windows2025kullanıyorsanız,aks-previewuzantısını yüklemeniz ve önizleme bayrağını kaydetmeniz gerekir. En düşük sürüm 18.0.0b40'tır.
Uzantıyı aks-preview yükle
Önemli
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:
-
aks-previewkomutunu kullanarak Azure CLI uzantısınıaz extension addyükleyin.
az extension add --name aks-preview
- komutunu kullanarak uzantının en son sürümüne güncelleştirin
az extension update. Windows Server 2025 için en az 18.0.0b40 gerekir.
az extension update --name aks-preview
Özellik bayrağını AksWindows2025Preview kaydetme
-
AksWindows2025Preview[az feature register][az-feature-register] komutunu kullanarak özellik bayrağını kaydedin.
az feature register --name AksWindows2025Preview --namespace Microsoft.ContainerService
- [
az feature show][az-feature-show] komutunu kullanarak kayıt durumunu doğrulayın. Durumun Kayıtlı olarak gösterilmesi birkaç dakika sürer.
az feature show --name AksWindows2025Preview --namespace Microsoft.ContainerService
Durum Kayıtlı olarak yansıtıldığında, [][az-provider-register] komutunu kullanarak
az provider registerkaynak sağlayıcısının kaydını yenileyin.az provider register --namespace Microsoft.ContainerService
Bir kaynak grubu oluşturun
Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği mantıksal bir grupdur. Bir kaynak grubu oluşturduğunuzda, bir konum belirtmeniz istenir. Kaynak oluşturma sırasında başka bir bölge belirtmezseniz kaynak grubu meta verilerinin depolandığı ve kaynaklarınızın Azure'da çalıştırıldığı konumdur.
az group createkomutunu kullanarak bir kaynak grubu oluşturun. Aşağıdaki örnek, WestUS2 konumunda myResourceGroup adlı bir kaynak grubu oluşturur.export RANDOM_SUFFIX=$(openssl rand -hex 3) export REGION="canadacentral" export MY_RESOURCE_GROUP_NAME="myAKSResourceGroup$RANDOM_SUFFIX" az group create --name $MY_RESOURCE_GROUP_NAME --location $REGIONSonuçlar:
{ "id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupxxxxx", "location": "WestUS2", "managedBy": null, "name": "myResourceGroupxxxxx", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" }
AKS kümesi oluşturma
Bu bölümde, aşağıdaki yapılandırmaya sahip bir AKS kümesi oluşturacağız:
- Küme, güvenilir bir şekilde çalıştığından emin olmak için iki düğümle yapılandırılır. Düğüm, Kubernetes düğüm bileşenlerini ve kapsayıcı çalışma zamanını çalıştıran bir Azure sanal makinesidir (VM).
-
--windows-admin-passwordve--windows-admin-usernameparametreleri, kümedeki tüm Windows Server düğümleri için yönetici kimlik bilgilerini ayarlar ve Windows Server parola gereksinimlerini karşılamalıdır. - Düğüm havuzu kullanır
VirtualMachineScaleSets.
Azure CLI ile AKS kümesini oluşturmak için aşağıdaki adımları kullanın:
Kümenizdeki Windows Server düğümleri için yönetici kimlik bilgileri olarak kullanılacak bir kullanıcı adı oluşturun.
export WINDOWS_USERNAME="winadmin"Önceki adımda oluşturduğunuz yönetici kullanıcı adı için bir parola oluşturun. Parola en az 14 karakter olmalı ve Windows Server parola karmaşıklığı gereksinimlerini karşılamalıdır.
export WINDOWS_PASSWORD=$(echo "P@ssw0rd$(openssl rand -base64 10 | tr -dc 'A-Za-z0-9!@#$%^&*()' | cut -c1-6)")az aks createkomutunu kullanarak kümenizi oluşturun ve--windows-admin-usernameile--windows-admin-passwordparametrelerini belirtin. Aşağıdaki örnek komut, önceki komutlarda ayarladığınızWINDOWS_USERNAMEveWINDOWS_PASSWORDdeğerlerini kullanarak bir küme oluşturur. Benzersizlik için küme adına rastgele bir sonek eklenir.export MY_AKS_CLUSTER="myAKSCluster$RANDOM_SUFFIX" az aks create \ --resource-group $MY_RESOURCE_GROUP_NAME \ --name $MY_AKS_CLUSTER \ --node-count 2 \ --enable-addons monitoring \ --generate-ssh-keys \ --windows-admin-username $WINDOWS_USERNAME \ --windows-admin-password $WINDOWS_PASSWORD \ --vm-set-type VirtualMachineScaleSets \ --network-plugin azureBirkaç dakika sonra komut tamamlanıp kümeyle ilgili JSON biçimli bilgileri döndürür. Bazen kümenin hazırlanması birkaç dakikadan uzun sürebilir. Sağlama işlemi için 10 dakikaya kadar bekleyin.
Parola doğrulama hatası alırsanız ve ayarladığınız parola uzunluk ve karmaşıklık gereksinimlerini karşılıyorsa kaynak grubunuzu başka bir bölgede oluşturmayı deneyin. Ardından yeni kaynak grubuyla küme oluşturmayı deneyin.
Düğüm havuzunu oluştururken yönetici kullanıcı adı ve parola belirtmezseniz, kullanıcı adı azureuser olarak ayarlanır ve parola rastgele bir değere ayarlanır. Daha fazla bilgi için bkz. Windows Server SSS
Yönetici kullanıcı adını değiştiremezsiniz, ancak
az aks updatekullanarak AKS kümenizin Windows Server düğümleri için kullandığı yönetici parolasını değiştirebilirsiniz. Daha fazla bilgi için bkz. Windows Server SSS.Windows Server kapsayıcıları için düğüm havuzlarını destekleyen bir AKS kümesi çalıştırmak için kümenizin Azure CNI (gelişmiş) ağ eklentisi kullanan bir ağ ilkesi kullanması gerekir.
--network-plugin azureparametresi Azure CNI'yi belirtir.
Düğüm havuzu ekle
Varsayılan olarak, tüm AKS kümeleri Linux kapsayıcılarını çalıştırabilen bir düğüm havuzuyla oluşturulur. Linux düğüm havuzuyla birlikte Windows Server kapsayıcılarını çalıştırabilen bir Windows düğüm havuzu eklemeniz gerekir. Kümenizde Windows düğüm havuzu olup olmadığını denetlemek için komutunu kullanarak kümenizdeki düğümleri kubectl get nodes -o wide görüntüleyebilirsiniz.
Windows düğüm havuzu oluşturmak için desteklenen OsType ve OsSkubelirtmeniz gerekir. Kümeniz için uygun olan bilgileri belirlemek için aşağıdaki tabloda yer alan bilgileri kullanın:
OsType |
OsSku |
Varsayılan | Desteklenen K8s sürümleri | Ayrıntılar |
|---|---|---|---|---|
windows |
Windows2025 |
Şu anda önizlemede. Varsayılan değildir. | 1.32+ | Güncellenmiş varsayılanlar: containerd 2.0, 2. Nesil imaj varsayılan olarak kullanılır. |
windows |
Windows2022 |
K8s 1.25-1.35'te standart ayar olarak | K8s 1.36+ ile kullanılamaz | Mart 2027'de emekli olur. Güncelleştirilmiş varsayılanlar: FIPS varsayılan olarak etkindir. |
windows |
Windows2019 |
K8s 1.24 ve altında varsayılan | K8s 1.33+ için mevcut değil | Mart 2026'da kullanımdan kaldırma. |
Windows Server 2022, Kubernetes sürüm 1.25-1.35 için varsayılan işletim sistemidir. Windows Server 2019, önceki sürümler için varsayılan işletim sistemidir. Belirli bir işletim sistemi SKU'su belirtmezseniz Azure, küme tarafından kullanılan Kubernetes sürümü için varsayılan SKU'ya sahip yeni düğüm havuzunu oluşturur.
Uyarı
- Windows Server 2019, 1 Mart 2026'da kullanımdan kaldırmaya devam eder. Bu tarihten sonra AKS artık yeni düğüm görüntüleri üretmez veya güvenlik düzeltme ekleri sağlamaz. Bu tarihten sonra, herhangi bir Kubernetes sürümünde Windows Server 2019 ile yeni düğüm havuzları oluşturamayacaksınız. Windows Server 2019 ile var olan tüm düğüm havuzları desteklenmez. Windows Server 2019, Kubernetes sürüm 1.33 ve üzeri sürümlerde desteklenmez. 1 Nisan 2027'den itibaren AKS, Windows Server 2019 için tüm mevcut düğüm görüntülerini kaldıracak ve bu da ölçeklendirme işlemlerinin başarısız olacağı anlamına gelir.
- Windows Server 2022, 15 Mart 2027'de kullanımdan kaldırmaya devam eder. Bu tarihten sonra AKS artık yeni düğüm görüntüleri üretmez veya güvenlik düzeltme ekleri sağlamaz. Bu tarihten sonra, herhangi bir Kubernetes sürümünde Windows Server 2022 ile yeni düğüm havuzları oluşturamayacaksınız. Windows Server 2022 ile mevcut tüm düğüm havuzları desteklenmez. Windows Server 2022, Kubernetes sürüm 1.36 ve üzeri sürümlerde desteklenmez. 1 Nisan 2028'den itibaren AKS, Windows Server 2022 için mevcut tüm düğüm görüntülerini kaldıracak ve bu da ölçeklendirme işlemlerinin başarısız olacağı anlamına gelir.
Daha fazla bilgi için bkz . AKS sürüm notları. En son Windows Server işletim sistemi sürümleri hakkında güncel kalmak ve AKS'de destek için planlananlar yol haritamız hakkında daha fazla bilgi edinmek için AKS genel yol haritamıza bakın.
Belirtilen
az aks nodepool addveOsTypeileOsSkukomutunu kullanarak bir Windows düğüm havuzu ekleyin. Belirli bir işletim sistemi SKU'su belirtmezseniz Azure, küme tarafından kullanılan Kubernetes sürümü için varsayılan SKU'ya sahip yeni düğüm havuzunu oluşturur.az aks nodepool add \ --resource-group $MY_RESOURCE_GROUP_NAME \ --cluster-name $MY_AKS_CLUSTER \ --os-type Windows \ --os-sku Windows2022 \ --name npwin \ --node-count 1Bu komut npwin adlı yeni bir düğüm havuzu oluşturur ve bunu myAKSCluster'a ekler. Komutu çalıştırılırken
az aks createoluşturulan varsayılan sanal ağda varsayılan alt ağı da kullanır.
Kümeye bağlanma
Kubernetes kümelerinizi yönetmek için Kubernetes komut satırı istemcisi kubectl kullanırsınız. Azure Cloud Shell kullanıyorsanız zaten kubectl yüklüdür.
kubectl yerel olarak yüklemek ve çalıştırmak istiyorsanız, az aks install-cli komutunu kullanın.
kubectl'yi,az aks get-credentialskomutunu kullanarak Kubernetes kümenize bağlanmak için yapılandırın. Bu komut, kimlik bilgilerini indirir ve Kubernetes CLI'yi bunları kullanacak şekilde yapılandırır.az aks get-credentials --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_AKS_CLUSTERKüme düğümlerinin listesini döndüren komutunu kullanarak
kubectl getkümenize bağlantıyı doğrulayın.kubectl get nodes -o wideAşağıdaki örnek çıktı, kümedeki tüm düğümleri gösterir. Tüm düğümlerin durumunun Hazır olduğundan emin olun:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME aks-nodepool1-20786768-vmss000000 Ready agent 22h v1.27.7 10.224.0.4 <none> Ubuntu 22.04.3 LTS 5.15.0-1052-azure containerd://1.7.5-1 aks-nodepool1-20786768-vmss000001 Ready agent 22h v1.27.7 10.224.0.33 <none> Ubuntu 22.04.3 LTS 5.15.0-1052-azure containerd://1.7.5-1 aksnpwin000000 Ready agent 20h v1.27.7 10.224.0.62 <none> Windows Server 2022 Datacenter 10.0.20348.2159 containerd://1.6.21+azureUyarı
Her düğüm havuzu için kapsayıcı çalışma zamanı CONTAINER-RUNTIME altında gösterilir. Kapsayıcı çalışma zamanı değerleri
containerd://ile başlar, bu da her birinin kapsayıcı çalışma zamanı içincontainerdkullandığını gösterir.
Uygulamayı dağıt
Kubernetes bildirim dosyası, küme için hangi kapsayıcı görüntülerinin çalıştırılması gibi istenen bir durumu tanımlar. Bu makalede, ASP.NET örnek uygulamasını bir Windows Server kapsayıcısında çalıştırmak için gereken tüm nesneleri oluşturmak için bir bildirim kullanırsınız. Bu bildirim, ASP.NET örnek uygulaması için bir Kubernetes dağıtımı ve uygulamaya İnternet'ten erişmek için bir dış Kubernetes hizmeti içerir.
ASP.NET örnek uygulaması .NET Framework Örnekleri'nin bir parçası olarak sağlanır ve bir Windows Server kapsayıcısında çalışır. AKS, Windows Server kapsayıcılarının Windows Server 2019 veya üzeri görüntüleri temel almalarını gerektirir. Kubernetes bildirim dosyasının ayrıca AKS kümenize ASP.NET örnek uygulamanızın podunu Windows Server kapsayıcılarını çalıştırabilen bir düğümde çalıştırmasını bildirmek için bir düğüm seçici tanımlaması gerekir.
Adlı
sample.yamlbir dosya oluşturun ve aşağıdaki YAML tanımında kopyalayın:apiVersion: apps/v1 kind: Deployment metadata: name: sample labels: app: sample spec: replicas: 1 template: metadata: name: sample labels: app: sample spec: nodeSelector: "kubernetes.io/os": windows containers: - name: sample image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp resources: limits: cpu: 1 memory: 800M ports: - containerPort: 80 selector: matchLabels: app: sample --- apiVersion: v1 kind: Service metadata: name: sample spec: type: LoadBalancer ports: - protocol: TCP port: 80 selector: app: sampleYAML manifest dosyalarının detayları için, Dağıtımlar ve YAML manifestleri sayfasına bakın.
YAML dosyasını yerel olarak oluşturur ve kaydederseniz, Dosyaları Karşıya Yükle/İndir düğmesini seçip yerel dosya sisteminizden dosyayı seçerek bildirim dosyasını CloudShell'deki varsayılan dizininize yükleyebilirsiniz.
komutunu kullanarak uygulamayı dağıtın
kubectl applyve YAML bildiriminizin adını belirtin.kubectl apply -f sample.yamlAşağıdaki örnek çıktıda başarıyla oluşturulan dağıtım ve hizmet gösterilmektedir:
{ "deployment.apps/sample": "created", "service/sample": "created" }
Uygulamayı test et
Uygulama çalıştığında, bir Kubernetes hizmeti uygulamanın ön yüzünü internete açar. Bu işlemin tamamlanması birkaç dakika sürebilir. Bazen hizmetin sağlanması birkaç dakikadan uzun sürebilir. Sağlama işlemi için 10 dakikaya kadar bekleyin.
komutunu kullanarak
kubectl get podsdağıtılan podların durumunu denetleyin. Devam etmeden önce tüm podlarınRunningolduğundan emin olun.kubectl get podskubectl get servicekomutunu--watchargümanıyla kullanarak ilerleme durumunu izleyin.while true; do export EXTERNAL_IP=$(kubectl get service sample -o jsonpath="{.status.loadBalancer.ingress[0].ip}" 2>/dev/null) if [[ -n "$EXTERNAL_IP" && "$EXTERNAL_IP" != "<pending>" ]]; then kubectl get service sample break fi echo "Still waiting for external IP assignment..." sleep 5 doneBaşlangıçta çıkış, örnek hizmet için EXTERNAL-IP'yi beklemede olarak gösterir:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE sample LoadBalancer xx.xx.xx.xx pending xx:xxxx/TCP 2mEXTERNAL-IP adresi beklemeden gerçek bir genel IP adresine değiştiğinde,
CTRL-Cizleme işlemini durdurmak için kullanınkubectl.Aşağıdaki örnek çıktıda hizmete atanmış geçerli bir genel IP adresi gösterilmektedir:
{ "NAME": "sample", "TYPE": "LoadBalancer", "CLUSTER-IP": "10.0.37.27", "EXTERNAL-IP": "52.179.23.131", "PORT(S)": "80:30572/TCP", "AGE": "2m" }Birkaç dakika sonra hizmetinizin dış IP adresine bir web tarayıcısı açarak örnek uygulamanın çalıştığını görün.
Sonraki Adımlar
Bu hızlı başlangıçta bir Kubernetes kümesi dağıttınız ve ardından bir Windows Server kapsayıcısında ASP.NET örnek uygulamasını dağıttınız. Bu örnek uygulama yalnızca tanıtım amaçlıdır ve Kubernetes uygulamaları için en iyi yöntemlerin tümünü temsil etmez. Üretim için AKS ile tam çözüm oluşturma yönergeleri için bkz . AKS çözümü kılavuzu.
AKS hakkında daha fazla bilgi edinmek ve eksiksiz bir koddan dağıtım örneğine gitmek için Kubernetes kümesi öğreticisine geçin.