Distribuire applicazioni Windows
Si applica a: Servizio Azure Kubernetes in Azure Stack HCI 22H2, servizio Azure Kubernetes in Windows Server
Questa esercitazione descrive come distribuire un'applicazione di esempio ASP.NET in un contenitore di Windows Server nel cluster servizio Azure Kubernetes del servizio Azure Kubernetes abilitato da Arc e quindi testare e ridimensionare l'applicazione. Si apprenderà anche come aggiungere un nodo Windows a un dominio di Active Directory.
Questa esercitazione presuppone una conoscenza di base dei concetti di Kubernetes. Per altre informazioni, vedere Concetti di base di Kubernetes per il servizio Azure Kubernetes abilitati da Azure Arc.
Prima di iniziare
Assicurarsi di soddisfare i requisiti seguenti:
- Un cluster servizio Azure Kubernetes con almeno un nodo di lavoro windows in esecuzione e in esecuzione.
- File kubeconfig per accedere al cluster.
- Il modulo AksHci PowerShell è installato.
Quando si seguono le procedure:
- Eseguire i comandi in una finestra amministrativa di PowerShell.
- Assicurarsi che i carichi di lavoro specifici del sistema operativo vengano terreni nell'host contenitore appropriato. Se il cluster Kubernetes include una combinazione di nodi di lavoro Linux e Windows, è possibile usare selettori di nodi o taints e tolerazioni. Per altre informazioni, vedere uso di selettore di nodi e taints e tolerations.
Distribuire l'applicazione
Un file manifesto Kubernetes definisce uno stato desiderato per il cluster, ad esempio le immagini del contenitore da eseguire. In queste procedure viene usato un manifesto per creare tutti gli oggetti necessari per eseguire l'applicazione di esempio ASP.NET in un contenitore di Windows Server. Questo manifesto include una distribuzione di Kubernetes per l'applicazione di esempio ASP.NET e un servizio Kubernetes esterno per accedere all'applicazione da Internet.
L'applicazione di esempio ASP.NET viene fornita come parte degli esempi di .NET Framework e viene eseguita in un contenitore di Windows Server. AKS Arc richiede che i contenitori di Windows Server siano basati su immagini di Windows Server 2019.
Il file manifesto kubernetes deve anche definire un selettore di nodi per indicare al cluster di eseguire il pod dell'applicazione di esempio ASP.NET in un nodo che può eseguire contenitori di Windows Server.
Create un file denominato sample.yaml
e copiare/incollare la definizione YAML seguente:
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
Distribuire l'applicazione usando il kubectl apply
comando e specificare il nome del manifesto YAML:
kubectl apply -f sample.yaml
L'output di esempio seguente mostra che la distribuzione e il servizio sono stati creati correttamente:
deployment.apps/sample created
service/sample created
Test dell'applicazione
Durante l'esecuzione dell'applicazione, un servizio Kubernetes espone il front-end dell'applicazione a Internet. Il processo potrebbe richiedere alcuni minuti. Occasionalmente, il servizio può richiedere più di pochi minuti per eseguire il provisioning. In questi casi, attendere al massimo 10 minuti.
Per monitorare lo stato di avanzamento, usare il comando con l'argomento kubectl get service
--watch
:
kubectl get service sample --watch
Inizialmente, l'indirizzo EXTERNAL-IP per il servizio di esempio viene visualizzato come in sospeso.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
sample LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Quando EXTERNAL-IP passa da pending a un effettivo indirizzo IP pubblico, usare CTRL-C
per arrestare il processo di controllo kubectl
. L'output di esempio seguente mostra un indirizzo IP pubblico valido assegnato al servizio:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
sample LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Per vedere in azione l'app di esempio, aprire un Web browser all'indirizzo IP esterno del servizio.
Se la connessione viene eseguita quando si tenta di caricare la pagina, verificare se l'app di esempio è pronta eseguendo il kubectl get pods --watch
comando. A volte, l'indirizzo IP esterno è disponibile prima dell'avvio del contenitore Di Windows.
Ridimensionare i pod dell'applicazione
È stata creata una singola replica del front-end dell'applicazione. Per visualizzare il numero e lo stato dei pod nel cluster, usare il kubectl get
comando come indicato di seguito:
kubectl get pods -n default
Per modificare il numero di pod nella distribuzione di esempio , usare il kubectl scale
comando . L'esempio seguente aumenta il numero di pod front-end a 3:
kubectl scale --replicas=3 deployment/sample
Eseguire kubectl get pods
di nuovo per verificare che i pod siano stati creati. Dopo circa un minuto i pod aggiuntivi sono disponibili nel cluster:
kubectl get pods -n default
Passaggi successivi
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per