Distribuera ett program
Den här artikeln beskriver hur du distribuerar ett containerbaserat program i ditt Kubernetes-kluster.
Förutsättningar
Kom igång genom att konfigurera kubernetes eller fullständigt Kubernetes-kluster på en enda dator.
Distribuera ett Linux-exempelprogram
Steg 1: Uppdatera manifestfilen
Den här artikeln använder ett exempelprogram som är en enkel röstningsapp som består av en klient- och serverdel som baseras på Microsofts azure-vote-front-avbildning . Containeravbildningen för det här programmet finns på Azure Container Registry (ACR). Se linux-sample.yaml i GitHub-lagringsplatsens paket för distributionsmanifestet. I YAML angav vi en nodeSelector
tagg som Linux.
Steg 2: Distribuera programmet
För att distribuera ditt program använder du kommandot kubectl apply. Det här kommandot parsar manifestfilen och skapar de definierade Kubernetes-objekten. Ange YAML-manifestfilen enligt följande exempel:
kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml
Steg 3: Verifiera poddarna
Vänta några minuter tills poddarna körs :
kubectl get pods -o wide
Steg 4: Verifiera tjänsterna
Om du vill övervaka förloppet använder du kommandot kubectl get services med parametern --watch
:
kubectl get services
EXTERNAL-IP
Till en början visas för azure-vote-front
tjänsten som pending
.
EXTERNAL-IP
När adressen ändras från pending
till en faktisk offentlig IP-adress kan du använda den IP-adress som tilldelats till tjänsten.
Viktigt
Om du distribuerade Kubernetes-klustret utan att ange en -ServiceIPRangeSize
i klustret för en enskild dator har du inte allokerade IP-adresser för dina arbetsbelastningstjänster och du har ingen extern IP-adress. I det här fallet letar du reda på IP-adressen för din virtuella Linux-dator (Get-AksEdgeNodeAddr
):
Get-AksEdgeNodeAddr -NodeType Linux
Nu kan du lägga till den externa porten i den virtuella datorns IP-adress (till exempel 192.168.1.12:30432).
Steg 5: Testa ditt program
Om du vill se hur programmet fungerar i praktiken så öppnar du en webbläsare till den externa IP-adressen för din tjänst:
Om programmet inte läses in kan det bero på ett auktoriseringsproblem med avbildningsregistret. Du kan visa statusen för dina containrar med hjälp av kommandot kubectl get pods
. Om containeravbildningarna inte kan hämtas läser du Autentisera med Azure Container Registry från Azure Kubernetes Service.
Steg 6: Ta bort program
Rensa genom att ta bort alla resurser med följande kommando:
kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml
Distribuera ett Windows-exempelprogram till klustret
Det här exemplet kör ett exempel ASP.NET program baserat på Microsofts exempelbild. Se win-sample.yaml. YAML anger taggen nodeSelector
som Windows.
Steg 1: Distribuera programmet genom att ange namnet på yaml-manifestet
Kontrollera att du är i katalogen för YAML i ett PowerShell-fönster och kör sedan följande kommando:
kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml
Steg 2: Kontrollera att exempelpodden körs
Det kan ta en stund för podden att nå körningsstatusen, beroende på internetanslutningen. Den ASP.NET bilden är stor:
kubectl get pods -o wide
Steg 3: Kontrollera att exempeltjänsten körs
kubectl get services
Eftersom det här exemplet distribueras som en tjänst av typen NodePort kan du hämta IP-adressen för Kubernetes-noden som programmet körs på och sedan lägga till porten för NodePort. Hämta IP-adressen för Kubernetes-noden med följande Get-AksEdgeNodeAddr
kommando:
Get-AksEdgeNodeAddr -NodeType Windows
Steg 4: Verifiera windowsexemplet som körs
Öppna en webbläsare och leta upp NodePort för att få åtkomst till din tjänst:
Steg 5: Rensa
Rensa genom att ta bort alla resurser med följande kommando:
kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml
Distribuera egna program
Föregående steg visade hur du kan distribuera våra exempelprogram. Om du vill distribuera ditt eget program gör du följande:
Paketera ditt program i en containeravbildning och ladda sedan upp avbildningen till Azure Container Registry eller i ett containerregister som du väljer. Gå igenom de här stegen för att skapa en containeravbildning av ditt program.
AKS Edge-Essentials aktiverar kluster med blandade operativsystem. Se till att dina poddar schemaläggs på noder med motsvarande operativsystem. Lägg till
nodeSelector
i dina distributionsfiler. Det här alternativet instruerar Kubernetes att köra dina poddar på noder i ett visst operativsystem (OS). Om klustret är ett enda operativsystem kan du hoppa över det här steget. men för bästa praxis kan du märka varje distributionsfil med nodväljare:nodeSelector: "kubernetes.io/os": linux
nodeSelector: "kubernetes.io/os": windows