Nasazení aplikací pro Windows
Platí pro: AKS v Azure Stack HCI 22H2, AKS na Windows Serveru
Tento kurz popisuje, jak nasadit ukázkovou aplikaci ASP.NET v kontejneru Windows Serveru do clusteru Azure Kubernetes Service (AKS) v AKS povoleném službou Arc a pak otestovat a škálovat aplikaci. Dozvíte se také, jak připojit uzel Windows k doméně služby Active Directory.
V tomto kurzu se předpokládá základní znalost konceptů Kubernetes. Další informace najdete v tématu Základní koncepty Kubernetes pro AKS povolené službou Azure Arc.
Než začnete
Ujistěte se, že splňujete následující požadavky:
- Cluster Azure Kubernetes Service s alespoň jedním pracovním uzlem Windows, který je spuštěný.
- Soubor kubeconfig pro přístup ke clusteru.
- Nainstaluje se modul AksHci PowerShellu.
Když budete postupovat podle pokynů:
- Příkazy spusťte v okně správce PowerShellu.
- Ujistěte se, že úlohy specifické pro operační systém přistanou na příslušném hostiteli kontejneru. Pokud má váš cluster Kubernetes kombinaci linuxových a pracovních uzlů s Windows, můžete použít selektory uzlů nebo tainty a tolerance. Další informace najdete v tématu použití selektorů a taintů a tolerací uzlů.
Nasazení aplikace
Soubor manifestu Kubernetes definuje požadovaný stav clusteru, například které image kontejneru se mají spustit. V těchto postupech se manifest používá k vytvoření všech objektů potřebných ke spuštění ukázkové aplikace ASP.NET v kontejneru Windows Serveru. Tento manifest zahrnuje nasazení Kubernetes pro ukázkovou aplikaci ASP.NET a externí službu Kubernetes pro přístup k aplikaci z internetu.
Ukázková aplikace ASP.NET je poskytována jako součást ukázek rozhraní .NET Framework a běží v kontejneru Windows Serveru. AKS Arc vyžaduje, aby kontejnery Windows Serveru byly založené na imagích Windows Serveru 2019.
Soubor manifestu Kubernetes musí také definovat selektor uzlu, který vašemu clusteru oznámí spuštění podu ukázkové aplikace ASP.NET na uzlu, který může spouštět kontejnery Windows Serveru.
Vytvořte soubor s názvem sample.yaml
a zkopírujte nebo vložte následující definici YAML:
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
Nasaďte aplikaci pomocí kubectl apply
příkazu a zadejte název manifestu YAML:
kubectl apply -f sample.yaml
Následující příklad výstupu ukazuje, že nasazení a služba byly úspěšně vytvořeny:
deployment.apps/sample created
service/sample created
Testování aplikace
Když se aplikace spustí, služba Kubernetes zveřejní front-end aplikace na internetu. Dokončení tohoto procesu může trvat několik minut. Občas může zřízení služby trvat déle než několik minut. V těchto případech povolte až 10 minut.
Pokud chcete monitorovat průběh, použijte kubectl get service
příkaz s argumentem --watch
:
kubectl get service sample --watch
Na začátku se externí IP adresa ukázkové služby zobrazí jako čekající:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
sample LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Když se externí IP adresa změní z čekání na skutečnou kubectl
veřejnou IP adresu, použijte CTRL-C
k zastavení procesu sledování. Následující příklad výstupu ukazuje platnou veřejnou IP adresu přiřazenou službě:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
sample LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Pokud chcete zobrazit ukázkovou aplikaci v akci, otevřete webový prohlížeč na externí IP adresu vaší služby.
Pokud při pokusu o načtení stránky vyprší časový limit připojení, spuštěním příkazu ověřte, jestli je ukázková aplikace připravená kubectl get pods --watch
. Někdy je externí IP adresa k dispozici před spuštěním kontejneru Windows.
Škálování podů aplikací
Vytvořili jsme jednu repliku front-endu aplikace. Pokud chcete zobrazit počet a stav podů v clusteru, použijte kubectl get
následující příkaz:
kubectl get pods -n default
Pokud chcete změnit počet podů v ukázkovém nasazení, použijte kubectl scale
příkaz. Následující příklad zvýší počet front-endových podů na 3:
kubectl scale --replicas=3 deployment/sample
Spusťte kubectl get pods
znovu, abyste ověřili, že se pody vytvořily. Asi za minutu budou další pody dostupné ve vašem clusteru:
kubectl get pods -n default