Zelf studie: Linux-toepassingen implementeren in azure Kubernetes-service op Azure Stack HCITutorial: Deploy Linux applications in Azure Kubernetes Service on Azure Stack HCI

Van toepassing op: AKS op Azure Stack HCI, AKS runtime op Windows Server 2019 Data CenterApplies to: AKS on Azure Stack HCI, AKS runtime on Windows Server 2019 Datacenter

In deze zelf studie implementeert u een toepassing met meerdere containers die een web-front-end en een redis-data base-exemplaar bevat in uw Azure Kubernetes-service op Azure Stack HCI-cluster.In this tutorial, you deploy a multi-container application that includes a web front end and a Redis database instance in your Azure Kubernetes Service on Azure Stack HCI cluster. Vervolgens ziet u hoe u uw toepassing kunt testen en schalen.You then see how to test and scale your application.

In deze zelf studie wordt uitgegaan van een basis memorandum van Kubernetes-concepten.This tutorial assumes a basic understanding of Kubernetes concepts. Zie Kubernetes core-concepten voor Azure Kubernetes-service op Azure stack HCIvoor meer informatie.For more information, see Kubernetes core concepts for Azure Kubernetes Service on Azure Stack HCI.

Voordat u begintBefore you begin

Controleer of u de volgende vereisten hebt voor bereid:Verify you have the following requirements ready:

  • Een Azure Kubernetes-service op Azure Stack HCI-cluster met ten minste één Linux worker-knoop punt dat actief is.An Azure Kubernetes Service on Azure Stack HCI cluster with at least one Linux worker node that is up and running.
  • Een kubeconfig-bestand voor toegang tot het cluster.A kubeconfig file to access the cluster.
  • De Azure Kubernetes-service op Azure Stack HCI Power shell-module is geïnstalleerd.Have the Azure Kubernetes Service on Azure Stack HCI PowerShell module installed.
  • Voer de opdrachten in dit document uit in een Power shell-beheer venster.Run the commands in this document in a PowerShell administrative window.
  • Zorg ervoor dat specifieke workloads van het besturings systeem op de desbetreffende container host.Ensure that OS-specific workloads land on the appropriate container host. Als u een gemengd Linux-en Windows worker-knoop punt Kubernetes-cluster hebt, kunt u gebruikmaken van knooppunt selectie of taints en verdragen.If you have a mixed Linux and Windows worker nodes Kubernetes cluster, you can either use node selectors or taints and tolerations. Zie voor meer informatie gebruik maken van knooppunt selecties en taints en toleranties.For more information, see using node selectors and taints and tolerations.

De toepassing implementerenDeploy the application

In een Kubernetes-manifestbestand wordt een gewenste status voor het cluster gedefinieerd, zoals welke containerinstallatiekopieën moeten worden uitgevoerd.A Kubernetes manifest file defines a desired state for the cluster, such as what container images to run. In deze Snelstartgids wordt een manifest gebruikt om alle objecten te maken die nodig zijn om de Azure stem-toepassinguit te voeren.In this quickstart, a manifest is used to create all objects needed to run the Azure vote application. Dit manifest bevat twee Kubernetes-implementaties, een voor de Azure Vote Python-voorbeeldtoepassingen en een voor een instantie van Redis.This manifest includes two Kubernetes deployments - one for the sample Azure Vote Python applications, and the other for a Redis instance. Er zijn twee Kubernetes-Services gemaakt: een interne service voor het redis-exemplaar en een externe service voor toegang tot de Azure stem-toepassing via internet.Two Kubernetes services are also created - an internal service for the Redis instance, and an external service to access the Azure Vote application from the internet.

Maak een bestand met de naam azure-vote.yaml en kopieer de volgende YAML-definitie naar het bestand.Create a file named azure-vote.yaml and copy in the following YAML definition.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: azure-vote-back
spec:
  replicas: 1
  selector:
    matchLabels:
      app: azure-vote-back
  template:
    metadata:
      labels:
        app: azure-vote-back
    spec:
      nodeSelector:
        "beta.kubernetes.io/os": linux
      containers:
      - name: azure-vote-back
        image: redis
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 250m
            memory: 256Mi
        ports:
        - containerPort: 6379
          name: redis
---
apiVersion: v1
kind: Service
metadata:
  name: azure-vote-back
spec:
  ports:
  - port: 6379
  selector:
    app: azure-vote-back
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: azure-vote-front
spec:
  replicas: 1
  selector:
    matchLabels:
      app: azure-vote-front
  template:
    metadata:
      labels:
        app: azure-vote-front
    spec:
      nodeSelector:
        "beta.kubernetes.io/os": linux
      containers:
      - name: azure-vote-front
        image: mcr.microsoft.com/azuredocs/azure-vote-front:v1
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 250m
            memory: 256Mi
        ports:
        - containerPort: 80
        env:
        - name: REDIS
          value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
  name: azure-vote-front
spec:
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: azure-vote-front

Implementeer de toepassing met behulp van de kubectl apply opdracht en geef de naam van het yaml-manifest op:Deploy the application using the kubectl apply command and specify the name of your YAML manifest:

kubectl apply -f azure-vote.yaml

In de volgende voorbeelduitvoer ziet u dat je implementaties en services zijn gemaakt:The following example output shows the Deployments and Services created successfully:

deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created

De toepassing testenTest the application

Wanneer de toepassing wordt uitgevoerd, maakt een Kubernetes-service de front-end van de toepassing beschikbaar op internet.When the application runs, a Kubernetes service exposes the application front end to the internet. Dit proces kan enkele minuten duren.This process can take a few minutes to complete.

Als u de voortgang wilt bewaken, gebruikt u de kubectl get service opdracht met het --watch argument.To monitor progress, use the kubectl get service command with the --watch argument.

kubectl get service azure-vote-front --watch

Eerst wordt het EXTERNAL-IP-adres voor de service azure-vote-front weergegeven als in behandeling.Initially the EXTERNAL-IP for the azure-vote-front service is shown as pending.

NAME               TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
azure-vote-front   LoadBalancer   10.0.37.27      <pending>     80:30572/TCP   22m

Zodra het EXTERNAL-IP-adres is gewijzigd van in behandeling in een echt openbaar IP-adres, gebruikt u CTRL-C om het controleproces van kubectl te stoppen.When the EXTERNAL-IP address changes from pending to an actual public IP address, use CTRL-C to stop the kubectl watch process. In de volgende voorbeelduitvoer ziet u een geldig openbaar IP-adres dat aan de service is toegewezen:The following example output shows a valid public IP address assigned to the service:

NAME               TYPE           CLUSTER-IP   EXTERNAL-IP     PORT(S)        AGE
azure-vote-front   LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   24m

Open een webbrowser naar het externe IP-adres van uw service om de Azure Vote-app te zien.To see the Azure Vote app in action, open a web browser to the external IP address of your service.

Afbeelding van Kubernetes-cluster in Azure

Applicatie-peul schalenScale application pods

We hebben één replica van het Azure stem-front-end-en redis-exemplaar gemaakt.We have created a single replica of the Azure Vote front end and Redis instance. Als u het aantal en de status van een Peul in uw cluster wilt zien, gebruikt u de kubectl get opdracht als volgt:To see the number and state of pods in your cluster, use the kubectl get command as follows:

kubectl get pods -n default

In de volgende voorbeeld uitvoer ziet u een front-end-pod en één back-end-Pod:The following example output shows one front end pod and one back-end pod:

NAME                                READY     STATUS    RESTARTS   AGE
azure-vote-back-6bdcb87f89-g2pqg    1/1       Running   0          25m
azure-vote-front-84c8bf64fc-cdq86   1/1       Running   0          25m

Als u het aantal peulen in de implementatie van Azure-stemmen-front wilt wijzigen, gebruikt u de kubectl scale opdracht.To change the number of pods in the azure-vote-front deployment, use the kubectl scale command. In het volgende voor beeld wordt het aantal front-end met 5 verhoogd:The following example increases the number of front end pods to 5:

kubectl scale --replicas=5 deployment/azure-vote-front

Voer kubectl get pods de bewerking opnieuw uit om te controleren of er extra peulen zijn gemaakt.Run kubectl get pods again to verify that additional pods have been created. Na ongeveer een minuut zijn de extra pods beschikbaar in uw cluster:After a minute or so, the additional pods are available in your cluster:

kubectl get pods -n default

Name                                READY   STATUS    RESTARTS   AGE
azure-vote-back-6bdcb87f89-g2pqg    1/1     Running   0          31m
azure-vote-front-84c8bf64fc-cdq86   1/1     Running   0          31m
azure-vote-front-84c8bf64fc-56h64   1/1     Running   0          80s
azure-vote-front-84c8bf64fc-djkp8   1/1     Running   0          80s
azure-vote-front-84c8bf64fc-jmmvs   1/1     Running   0          80s
azure-vote-front-84c8bf64fc-znc6z   1/1     Running   0          80s

Volgende stappenNext steps