Dela via


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

Skärmbild som visar linux-poddar som körs.

Steg 4: Verifiera tjänsterna

Om du vill övervaka förloppet använder du kommandot kubectl get services med parametern --watch :

kubectl get services

Skärmbild som visar Linux-tjänster som körs.

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 -ServiceIPRangeSizei 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:

Skärmbild som visar Linux-appar som körs.

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

Skärmbild som visar Windows-poddar som körs.

Steg 3: Kontrollera att exempeltjänsten körs

kubectl get services

Skärmbild som visar Windows-tjänster som körs.

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-AksEdgeNodeAddrkommando:

Get-AksEdgeNodeAddr -NodeType Windows

Screesnhot som visar Information om Windows-kluster.

Steg 4: Verifiera windowsexemplet som körs

Öppna en webbläsare och leta upp NodePort för att få åtkomst till din tjänst:

Skärmbild som visar att Windows-appen körs.

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
    

Nästa steg