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


Linux-alkalmazás üzembe helyezése

A következőkre vonatkozik: AKS on Azure Stack HCI 22H2, AKS on Windows Server

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

Ez az útmutató feltételezi a Kubernetes-fogalmak alapszintű megértését. További információkért tekintse meg a Kubernetes alapfogalmait.

Mielőtt elkezdené

Ellenőrizze, hogy rendelkezik-e a következő előfeltételekkel:

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

Az eljárások végrehajtásakor:

  • 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 Windowsos feldolgozó csomópontok keverékével rendelkezik, akkor használhat csomópontválasztókat, illetve aint és toleranciákat. További információkért tekintse meg a csomópontválasztók, a fertőzöttség és a toleranciák használatát.

Feljegyzés

Ha olyan célfürtöt helyez üzembe, amely egy másik célfürttel közös hálózatot használ, terheléselosztó IP-címütközésekhez vezethet. 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 objektumot AksHciClusterNetwork 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ákba ütközhet, amíg újra üzembe nem helyezi a számítási feladatokat. A számítási feladatok ismételt ü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 meghatározza a fürt kívánt állapotát, például hogy mely tárolólemezképek fussanak. Ez az oktatóanyag egy jegyzék használatával hozza létre az Azure szavazási alkalmazás futtatásához szükséges összes objektumot. Ez a jegyzék két Kubernetes-üzembe helyezést 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.

Hozzon létre 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: <path to image>/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érét az interneten. A folyamat eltarthat pár percig.

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

kubectl get service azure-vote-front --watch

Kezdetben az azure-vote-front szolgáltatás KÜLSŐ IP-címe fü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

Ha a külső IP-cím függőben lévőről tényleges nyilvános IP-címre változik, a CTRL-C billentyűkombinációval állítsa le a kubectl figyelés folyamatát. Az alábbi példakimenet a szolgáltatáshoz rendelt érvényes nyilvános IP-címet jeleníti meg:

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 méretezése

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

A podok számának módosításához használja kubectl scale az azure-vote-front üzembe helyezést. 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 kubectl get pods újra a további podok létrehozásának ellenőrzéséhez. 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