Windows uygulamalarını dağıtma
Şunlar için geçerlidir: Azure Stack HCI 22H2 üzerinde AKS, Windows Server'da AKS
Bu öğreticide, Windows Server kapsayıcısında ASP.NET örnek bir uygulamanın Arc tarafından etkinleştirilen AKS'deki Azure Kubernetes Service (AKS) kümesine nasıl dağıtılacağı ve ardından uygulamanızın nasıl test ve ölçeklendirildiği açıklanır. Ayrıca Bir Windows düğümünü Active Directory etki alanına nasıl ekleyeceğinizi de öğrenirsiniz.
Bu öğreticide Kubernetes kavramları hakkında temel bilgiler edinirsiniz. Daha fazla bilgi için bkz . Azure Arc tarafından etkinleştirilen AKS için Kubernetes temel kavramları.
Başlamadan önce
Aşağıdaki gereksinimleri karşıladığınızdan emin olun:
- En az bir Windows çalışan düğümü çalışır durumda olan bir Azure Kubernetes Service kümesi .
- Kümeye erişmek için bir kubeconfig dosyası.
- AksHci PowerShell modülü yüklenir.
Yordamları uyguladığınızda:
- Komutları bir PowerShell yönetici penceresinde çalıştırın.
- İşletim sistemine özgü iş yüklerinin uygun kapsayıcı konağına yüklendiğinden emin olun. Kubernetes kümenizde Linux ve Windows çalışan düğümlerinin bir karışımı varsa düğüm seçicileri veya toint ve toleransları kullanabilirsiniz. Daha fazla bilgi için bkz . Düğüm seçicileri, renk tonlarını ve toleransları kullanma.
Uygulamayı dağıtma
Kubernetes bildirim dosyası, hangi kapsayıcı görüntülerinin çalıştırıldığı gibi küme için istenen durumu tanımlar. Bu yordamlarda, 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ılır. 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 örneklerinin bir parçası olarak sağlanır ve bir Windows Server kapsayıcısında çalışır. AKS Arc, Windows Server kapsayıcılarının Windows Server 2019 görüntülerini temel almalarını gerektirir.
Kubernetes bildirim dosyası, 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 de tanımlamalıdır.
adlı sample.yaml
bir dosya oluşturun ve aşağıdaki YAML tanımını kopyalayıp yapıştırın:
apiVersion: apps/v1
kind: Deployment
metadata:
name: sample
labels:
app: sample
spec:
replicas: 1
template:
metadata:
name: sample
labels:
app: sample
spec:
nodeSelector:
"beta.kubernetes.io/os": windows
containers:
- name: sample
image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp
resources:
limits:
cpu: 1
memory: 800M
requests:
cpu: .1
memory: 300M
ports:
- containerPort: 80
selector:
matchLabels:
app: sample
---
apiVersion: v1
kind: Service
metadata:
name: sample
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 80
selector:
app: sample
komutunu kullanarak uygulamayı dağıtın kubectl apply
ve YAML bildiriminizin adını belirtin:
kubectl apply -f sample.yaml
Aşağıdaki örnek çıktı, dağıtımın ve hizmetin başarıyla oluşturulduğunu gösterir:
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. Bu durumlarda 10 dakikaya kadar izin verin.
İlerleme durumunu kubectl get service
izlemek için komutunu bağımsız değişkeniyle --watch
birlikte kullanın:
kubectl get service sample --watch
Başlangıçta, örnek hizmetin EXTERNAL-IP'i beklemede olarak gösterilir:
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ıda hizmete atanmış geçerli bir genel IP adresi gösterilmektedir:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
sample LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Örnek uygulamayı uygulamada görmek için, hizmetinizin dış IP adresine bir web tarayıcısı açın.
Sayfayı yüklemeye çalıştığınızda bağlantı zaman aşımına uğradıysa komutunu çalıştırarak kubectl get pods --watch
örnek uygulamanın hazır olup olmadığını doğrulayın. Bazen, dış IP adresi Windows kapsayıcısı başlamadan önce kullanılabilir.
Uygulama podlarını ölçeklendirme
Uygulama ön ucunun tek bir çoğaltmasını oluşturduk. Kümenizdeki podların sayısını ve durumunu görmek için komutunu aşağıdaki gibi kullanın kubectl get
:
kubectl get pods -n default
Örnek dağıtımdaki pod sayısını değiştirmek için komutunu kullanınkubectl scale
. Aşağıdaki örnek ön uç podlarının sayısını 3'e yükseltir:
kubectl scale --replicas=3 deployment/sample
Podların oluşturulduğunu doğrulamak için yeniden çalıştırın kubectl get pods
. Yaklaşık bir dakika sonra ek podlar kümenizde kullanılabilir duruma gelir:
kubectl get pods -n default