Oktatóanyag: Linux-alkalmazások üzembe helyezése a Azure Stack HCI-n üzemelő Azure Kubernetes Service

A következőkre vonatkozik: AKS a Azure Stack HCI, AKS-Windows Server 2019 Datacenteren

Ebben az oktatóanyagban egy többtárolós alkalmazást fog üzembe helyezni, amely egy webes előfeltűt és egy Redis-adatbázispéldányt tartalmaz a Azure Stack HCI-n üzemelő Azure Kubernetes Service fürtben. Ezután láthatja, hogyan tesztelje és skálázja az alkalmazást.

Ez az oktatóanyag feltételezi a Kubernetes alapfogalmainak alapszintű megértését. További információ: A Kubernetes alapfogalmai a Azure Stack HCI-n üzemelő Azure Kubernetes Service.

Előkészületek

Ellenőrizze, hogy a következő követelmények állnak-e készen:

  • Egy Azure Stack HCI-n üzemelő Azure Kubernetes Service legalább egy futó Linux feldolgozó csomóponttal.
  • Egy kubeconfig-fájl a fürt eléréséhez.
  • Telepítve kell Azure Stack HCI-n üzemelő Azure Kubernetes Service PowerShell-modult.
  • Futtassa a dokumentumban található parancsokat egy PowerShell felügyeleti ablakban.
  • Győződjön meg arról, hogy az operációs rendszerre jellemző számítási feladatok a megfelelő tárológazdán vannak. Ha vegyes Linux- és Windows kubernetes-fürttel dolgozik, csomópontválasztókat vagy fertőzötteket és lerátorokat használhat. További információkért lásd a csomópontválasztók, a fertőzöttek és a toleranák használatával kapcsolatos részt.

Az alkalmazás üzembe helyezése

A Kubernetes-jegyzékfájl meghatározza a fürt célállapotát, például azt, hogy milyen tárolólemezképeket kell futtatni. Ebben a rövid útmutatóban egy jegyzékfájlt fogunk használni az Azure Vote alkalmazás futtatásához szükséges összes objektum létrehozásához. Ez a jegyzékfájl két Kubernetes-üzemelő példányt tartalmaz – egyet az Azure Vote Python-mintaalkalmazások, egyet pedig egy Redis-példányhoz. Két Kubernetes-szolgáltatás is létrejön – egy belső szolgáltatás a Redis-példányhoz, és egy külső szolgáltatás az Azure Vote alkalmazás internetről való eléréséhez.

Hozzon létre egy nevű azure-vote.yaml fájlt, és másolja be az alábbi YAML-definícióba.

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

Telepítse az alkalmazást a kubectl apply paranccsal, és adja meg a YAML-jegyzék nevét:

kubectl apply -f azure-vote.yaml

Az alábbi példakimeneten a sikeresen létrehozott üzemelő példányok és szolgáltatások láthatóak:

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

Az alkalmazás tesztelése

Az alkalmazás futtatásakor a Kubernetes-szolgáltatás elérhetővé teszi az alkalmazás előtere számára az internetet. A folyamat eltarthat pár percig.

A folyamat előrehaladásának figyelése érdekében kubectl get service használja a parancsot a --watch argumentummal.

kubectl get service azure-vote-front --watch

Kezdetben az azure-vote-front szolgáltatás EXTERNAL-IP-címefüggőben van.

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

Amikor az EXTERNAL-IP cím függőben értékről tényleges nyilvános IP-címre változik, a használatával állítsa le a figyelés folyamatát. Az alábbi példakimenet egy érvényes, a szolgáltatáshoz rendelt nyilvános IP-címet mutat be:

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

Az Azure Vote alkalmazás használatban való megnyitásához nyisson meg egy webböngészőt a szolgáltatás külső IP-címéhez.

Kubernetes-fürt képe az Azure-ban

Alkalmazáspodok méretezése

Egyetlen replikát hoztunk létre az Azure Vote előtér és a Redis-példány számára. A fürtben a podok számának és állapotának az alábbi paranccsal kubectl get használhatja:

kubectl get pods -n default

Az alábbi példakimenet egy előoldali podot és egy háttérpodot mutat be:

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

Az azure-vote-front üzemelő példányban található podok számának az paranccsal módosíthatja. Az alábbi példa 5-re növeli az előoldali podok számát:

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

Futtassa újra a következőt annak ellenőrzéséhez, hogy kubectl get pods létrejöttek-e további podok. Hozzávetőleg egy perc elteltével az újabb podok elérhetők a fürtön:

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

Következő lépések