Megosztás a következőn keresztül:


Oktatóanyag: Linux-alkalmazás üzembe helyezése

A következőkre vonatkozik: AKS az Azure Stack HCI 22H2-ben, AKS Windows Serveren

Ez az oktatóanyag bemutatja, hogyan helyezhet üzembe egy többtárolós alkalmazást, amely egy webes előtér- és egy Redis-adatbázispéldányt tartalmaz a Kubernetes-fürtön az Azure Arc által engedélyezett AKS-ben. Azt is megtudhatja, hogyan tesztelheti és skálázhatja az alkalmazást.

Ez az oktatóanyag feltételezi a Kubernetes-fogalmak alapszintű megértését. További információ: Kubernetes alapfogalmak.

Előkészületek

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

  • Egy olyan AKS-fürt, amely legalább egy Linux-feldolgozó csomóponttal rendelkezik, amely működik és fut.
  • Kubeconfig-fájl a fürt eléréséhez.
  • Az AksHci PowerShell-modul telepítve van. További információ: Install-AksHci.

Az oktatóanyagok elvégzésekor:

  • Futtassa a parancsokat egy rendszergazdai jogosultságokkal megnyitott PowerShell-ablakban.
  • Győződjön meg arról, hogy az operációsrendszer-specifikus számítási feladatok a megfelelő tároló gazdagépre szállnak. Ha a Kubernetes-fürt linuxos és Windows-alapú munkavégző csomópontok keverékével rendelkezik, használhat csomópontválasztókat, illetve hibaelhárítókat és tűréseket. További információ: Csomópontválasztók, -fertőzöttek és -tűrések használata.

Megjegyzés

Ha olyan célfürtöt helyez üzembe, amely egy másik célfürttel oszt meg egy hálózatot, terheléselosztó IP-címütközéseket okozhat. IP-címütközések akkor fordulhatnak elő, ha két olyan számítási feladatot helyez üzembe, amelyek különböző portokat használnak az azonos AksHciClusterNetwork objektumot használó célfürtökben. Mivel az IP-címek és a portleképezések a HA-proxyn belül vannak lefoglalva, duplikált IP-címek hozzárendeléséhez vezethet. Ha ez történik, egy vagy mindkét számítási feladat véletlenszerű hálózati csatlakozási problémákat tapasztalhat, amíg újra üzembe nem helyezi a számítási feladatokat. A számítási feladatok újbóli üzembe helyezésekor használhatja ugyanazt a portot, amely minden számítási feladathoz hozzárendel egy szolgáltatás IP-címét, vagy újra üzembe helyezheti a számítási feladatokat a különböző AksHciClusterNetwork objektumokat használó célfürtökön.

Az alkalmazás üzembe helyezése

A Kubernetes-jegyzékfájl definiálja a fürt kívánt állapotát, például azt, hogy mely tárolólemezképeket kell futtatni. Ez az oktatóanyag jegyzékfájlt használ az Azure vote alkalmazás futtatásához szükséges összes objektum létrehozásához. Ez a jegyzék két Kubernetes-üzemelő példányt tartalmaz: az egyiket a minta Azure Vote Python-alkalmazásokhoz, a másikat 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.

Létrehozás egy azure-vote.yaml nevű fájlt, és másolja/illessze be a következő YAML-definíciót:

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éldakimenet a sikeresen létrehozott üzembe helyezéseket és szolgáltatásokat mutatja be:

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 egy Kubernetes-szolgáltatás elérhetővé teszi az alkalmazás előtérrendszerét az interneten. A folyamat eltarthat pár percig.

A folyamat figyeléséhez használja a parancsot az kubectl get service--watch argumentummal:

kubectl get service azure-vote-front --watch

Kezdetben az azure-vote-front szolgáltatás EXTERNAL-IP-címefüggőben állapotúként jelenik meg:

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

Ha a KÜLSŐ-IP-címfüggőben állapotról tényleges nyilvános IP-címre változik, a CTRL-C billentyűkombinációval állítsa le a kubectl watch folyamatot. Az alábbi példakimenet a szolgáltatáshoz rendelt érvényes nyilvános IP-címet mutatja 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 működés közbeni megtekintéséhez nyisson meg egy webböngészőt a szolgáltatás külső IP-címére.

Képernyőkép az Azure Voting App alkalmazás kezdőlapjáról, amely egy Azure-beli Kubernetes-fürtön van üzembe helyezve.

Alkalmazás podok skálázása

Az Azure Voting App előtér- és Redis-példányának egyetlen replikáját hoztuk létre. A fürtön lévő podok számának és állapotának megtekintéséhez használja a kubectl get következő parancsot:

kubectl get pods -n default

A következő példa egy előtérbeli podot és egy háttérbeli podot 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 üzembe helyezésben lévő podok számának módosításához használja a kubectl scale parancsot. A következő példa 5-re növeli az előtérbeli podok számát:

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

Futtassa újra a parancsot kubectl get pods , és ellenőrizze, hogy további podok lettek-e létrehozva. 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

A fürt és az alkalmazás monitorozása az Azure Monitor használatával