Distribuera Windows-program
Gäller för: AKS på Azure Stack HCI 22H2, AKS på Windows Server
Den här självstudien beskriver hur du distribuerar ett ASP.NET exempelprogram i en Windows Server-container till aks-klustret (Azure Kubernetes Service) i AKS som aktiveras av Arc och sedan testar och skalar ditt program. Du lär dig också hur du ansluter en Windows-nod till en Active Directory-domän.
Den här självstudien förutsätter en grundläggande förståelse av Kubernetes-begrepp. Mer information finns i Kubernetes kärnbegrepp för AKS-hybrid.
Innan du börjar
Kontrollera att du uppfyller följande krav:
- Ett Azure Kubernetes Service kluster med minst en Windows-arbetsnod igång.
- En kubeconfig-fil för åtkomst till klustret.
- AksHci PowerShell-modulen är installerad.
När du följer procedurerna:
- Kör kommandona i ett administrativt PowerShell-fönster.
- Se till att OS-specifika arbetsbelastningar hamnar på lämplig containervärd. Om Kubernetes-klustret har en blandning av Linux- och Windows-arbetsnoder kan du använda nodväljare eller taints och toleranser. Mer information finns i använda nodväljare och taints och toleranser.
Distribuera programmet
En Kubernetes-manifestfil definierar ett önskat tillstånd för klustret, till exempel vilka containeravbildningar som ska köras. I dessa procedurer används ett manifest för att skapa alla objekt som behövs för att köra ASP.NET exempelprogrammet i en Windows Server-container. Det här manifestet innehåller en Kubernetes-distribution för ASP.NET-exempelprogrammet och en extern Kubernetes-tjänst för åtkomst till programmet från Internet.
Det ASP.NET exempelprogrammet tillhandahålls som en del av .NET Framework-exempel och körs i en Windows Server-container. AKS Arc kräver att Windows Server-containrar baseras på avbildningar av Windows Server 2019.
Kubernetes-manifestfilen måste också definiera en nodväljare för att instruera klustret att köra ASP.NET-exempelprogrammets podd på en nod som kan köra Windows Server-containrar.
Skapa en fil med namnet sample.yaml
och kopiera/klistra in följande YAML-definition:
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
Distribuera programmet med kubectl apply
kommandot och ange namnet på ditt YAML-manifest:
kubectl apply -f sample.yaml
Följande exempelutdata visar att distributionen och tjänsten har skapats:
deployment.apps/sample created
service/sample created
Testa programmet
När programmet körs så exponerar en Kubernetes-tjänst programmets klientdel mot Internet. Den här processen kan ta ett par minuter att slutföra. Ibland kan det ta längre tid än några minuter att etablera tjänsten. Tillåt upp till 10 minuter i dessa fall.
Om du vill övervaka förloppet använder du kubectl get service
kommandot med --watch
argumentet :
kubectl get service sample --watch
Inledningsvis visas EXTERN IP förexempeltjänsten som väntande.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
sample LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
När EXTERNAL-IP-adressen ändras från väntande till en faktisk offentlig IP-adress använder du CTRL-C
för att stoppa kubectl
-övervakningsprocessen. Följande exempelutdata visar en giltig offentlig IP-adress som har tilldelats tjänsten:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
sample LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Om du vill se exempelappen i praktiken öppnar du en webbläsare till tjänstens externa IP-adress.
Om anslutningen överskrider tidsgränsen när du försöker läsa in sidan kontrollerar du om exempelappen är klar genom att köra kubectl get pods --watch
kommandot . Ibland är den externa IP-adressen tillgänglig innan Windows-containern startar.
Skala programpoddar
Vi skapade en enda replik av programmets klientdel. Om du vill se antalet och tillståndet för poddar i klustret använder du kubectl get
kommandot på följande sätt:
kubectl get pods -n default
Om du vill ändra antalet poddar i exempeldistributionen använder du kubectl scale
kommandot . I följande exempel ökar antalet klientdelspoddar till 3:
kubectl scale --replicas=3 deployment/sample
Kör kubectl get pods
igen för att kontrollera att poddarna har skapats. Efter någon minut finns de nya poddarna i klustret:
kubectl get pods -n default
Nästa steg
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för