Azure CLI kullanarak Azure Kubernetes Service (AKS) kümesinde Windows Server kapsayıcısı dağıtma
Makale
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.
Not
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ı.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.
İ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.
Yüklü sürümü ve bağımlı kitaplıkları 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.
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 create komutunu kullanarak bir kaynak grubu oluşturun . Aşağıdaki örnek eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturur. Bu makaledeki bu komutu ve diğer komutları bash kabuğuna girin:
Azure CLI
az group create --name myResourceGroup --location eastus
Aşağıdaki örnek çıktı, başarıyla oluşturulan kaynak grubunu gösterir:
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-password ve --windows-admin-username parametreleri, 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ümesi oluşturmak için şu adımları izleyin:
Kümenizdeki Windows Server düğümleri için yönetici kimlik bilgileri olarak kullanılacak bir kullanıcı adı oluşturun. Aşağıdaki komutlar sizden bir kullanıcı adı ister ve sonraki bir komutta kullanmak üzere WINDOWS_USERNAME olarak ayarlar.
Azure CLI
echo "Please enter the username to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_USERNAME
Ö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.
Azure CLI
echo "Please enter the password to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_PASSWORD
Birkaç dakika sonra komut tamamlanıp kümeyle ilgili JSON biçimli bilgileri döndürür. Bazen kümenin sağlanması birkaç dakikadan uzun sürebilir. Sağlama için 10 dakikaya kadar izin verin.
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ı değiştirilemez, ancak KULLANARAK AKS kümenizin Windows Server düğümleri az aks updateiç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 azure parametresi Azure CNI'yi belirtir.
Düğüm havuzu ekleme
Varsayılan olarak, Linux kapsayıcılarını çalıştırabilen bir düğüm havuzu ile bir AKS kümesi oluşturulur. Linux düğüm havuzuyla birlikte Windows Server kapsayıcılarını çalıştırabilen başka bir düğüm havuzu eklemeniz gerekir.
Windows Server 2022, Kubernetes sürüm 1.25.0 ve üzeri 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.
Varsayılan işletim sistemi SKU'sunu kullanmak için, bir işletim sistemi SKU'su belirtmeden düğüm havuzunu oluşturun. Düğüm havuzu, kümenin Kubernetes sürümüne göre varsayılan işletim sistemi için yapılandırılır.
komutunu kullanarak az aks nodepool add bir Windows düğüm havuzu ekleyin. Aşağıdaki 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. İşletim sistemi SKU'su belirtilmediğinden düğüm havuzu, kümenin Kubernetes sürümüne göre varsayılan işletim sistemine ayarlanır:
Azure CLI
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--os-type Windows \
--name npwin \
--node-count1
Windows Server 2022'yi kullanmak için aşağıdaki parametreleri belirtin:
os-type olarak ayarlayın Windows
os-sku olarak ayarlayın Windows2022
Not
Windows Server 2022 için Kubernetes sürüm 1.23.0 veya üzeri gerekir. Windows Server 2022, Kubernetes sürüm 1.34 kullanım ömrü sonuna (EOL) ulaştıktan sonra kullanımdan kaldırılıyor. Bu kullanımdan kaldırma hakkında daha fazla bilgi için bkz . AKS sürüm notları.
komutunu kullanarak az aks nodepool add bir Windows Server 2022 düğüm havuzu ekleyin:
Azure CLI
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--os-type Windows \
--os-sku Windows2022 \
--name npwin \
--node-count1
Windows Server 2019'ı kullanmak için aşağıdaki parametreleri belirtin:
os-type olarak ayarlayın Windows
os-sku olarak ayarlayın Windows2019
Not
Windows Server 2019, Kubernetes sürüm 1.32 kullanım ömrü sonuna (EOL) ulaştıktan sonra kullanımdan kaldırılıyor ve gelecek sürümlerde desteklenmeyecektir. Bu kullanımdan kaldırma hakkında daha fazla bilgi için bkz . AKS sürüm notları.
komutunu kullanarak az aks nodepool add bir Windows Server 2019 düğüm havuzu ekleyin:
Azure CLI
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--os-type Windows \
--os-sku Windows2019 \
--name npwin \
--node-count1
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. Yerel olarak yüklemek ve çalıştırmak kubectl istiyorsanız az aks install-cli komutunu çağırın.
az aks get-credentials komutunu kullanarak Kubernetes kümenize bağlanacak şekilde yapılandırınkubectl. Bu komut kimlik bilgilerini indirir ve Kubernetes CLI'yi bunları kullanacak şekilde yapılandırmaktadır.
Azure CLI
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Küme düğümlerinin listesini döndüren kubectl get komutunu kullanarak kümenize bağlantıyı doğrulayın.
Console
kubectl get nodes -o wide
Aşağıdaki örnek çıktı, kümedeki tüm düğümleri gösterir. Tüm düğümlerin durumunun Hazır olduğundan emin olun:
Output
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+azure
Not
Her düğüm havuzu için kapsayıcı çalışma zamanı CONTAINER-RUNTIME altında gösterilir. Kapsayıcı çalışma zamanı değerleri ile containerd://başlar. Bu, her birinin kapsayıcı çalışma zamanı için kullandığı containerd anlamına gelir.
Uygulamayı dağıtma
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.yaml bir dosya oluşturun ve aşağıdaki YAML tanımında kopyalayı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.
kubectl apply komutunu kullanarak uygulamayı dağıtın ve YAML bildiriminizin adını belirtin.
Console
kubectl apply -f sample.yaml
Aşağıdaki örnek çıktıda başarıyla oluşturulan dağıtım ve hizmet gösterilmektedir:
Output
deployment.apps/sample created
service/sample created
Uygulamayı test etme
Uygulama çalıştırıldığında Kubernetes hizmeti, uygulamanın ön ucunu İnternet'te kullanıma sunar. Bu işlemin tamamlanması birkaç dakika sürebilir. Bazen hizmetin sağlanması birkaç dakikadan uzun sürebilir. Sağlama için 10 dakikaya kadar izin verin.
kubectl get pods komutunu kullanarak dağıtılan podların durumunu denetleyin. Devam etmeden önce tüm podların olmasını Running sağlayın.
Console
kubectl get pods
bağımsız değişkeniyle kubectl get service komutunu kullanarak ilerleme durumunu --watch izleyin.
Console
kubectl get service sample --watch
Başlangıçta çıkış, örnek hizmet için EXTERNAL-IP'yi beklemede olarak gösterir:
Output
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
sample LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
EXTERNAL-IP adresi beklemeden gerçek bir genel IP adresine değiştiğinde kubectl izleme işlemini durdurmak için kullanınCTRL-C. Aşağıdaki örnek çıktı hizmete atanmış geçerli bir genel IP adresini gösterir:
az group delete --name myResourceGroup --yes--no-wait
Not
AKS kümesi, sistem tarafından atanan yönetilen kimlik (bu hızlı başlangıçta kullanılan varsayılan kimlik seçeneği) ile oluşturulmuştur. Azure platformu bu kimliği yönetir, bu nedenle kaldırma gerektirmez.
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.
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.
Azure Kubernetes Service geri bildirimi
Azure Kubernetes Service, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Bu etkileşimli beceri doğrulama deneyimine hoş geldiniz. Bu modülü tamamlamak, Azure Kubernetes Service değerlendirmesiyle kapsayıcıları dağıtma ve yönetme işlemine hazırlanmanıza yardımcı olur.