Fogalom – Alkalmazás üzembe helyezése

Befejeződött

Mielőtt üzembe helyeznénk az alkalmazást a Kubernetesben, tekintsük át a Kubernetes-üzemelő példányokat, és ismertessük a forgatókönyv korlátait.

Mik azok a Kubernetes-üzemelő példányok?

A diagram that shows a Kubernetes Deployment with a label and three pods.

A Kubernetes-üzembe helyezés a podok evolúciója. Az üzembe helyezések egy intelligens objektumba csomagolják a podokat, amely lehetővé teszi számukra a horizontális felskálázást. Az alkalmazás egyszerűen duplikálható és skálázható, így összetett hálózati szabályok konfigurálása nélkül is támogathatja a nagyobb terhelést.

Az üzembe helyezések lehetővé teszik az alkalmazások állásidő nélküli frissítését csak a képcímke módosításával. Az üzembe helyezés frissítése egyenként kikapcsolja az online alkalmazásokat, és lecseréli őket a legújabb verzióra az összes alkalmazás törlése és újak létrehozása helyett, ami azt jelenti, hogy az üzembe helyezés képes frissíteni a benne lévő podokat úgy, hogy az ne legyen látható hatással a rendelkezésre állásra.

Bár az üzemelő példányok podokon keresztül történő használata számos előnnyel jár, nem tudják megfelelően kezelni a forgatókönyvet.

Ez a forgatókönyv egy eseményvezérelt alkalmazást foglal magában, amely számos eseményt fogad különböző időpontokban. KEDA Scaler-objektum vagy HPA nélkül manuálisan kell módosítania a replikák számát az események számának feldolgozásához, és le kell skáláznia az üzembe helyezést, amikor a terhelés visszatér a normál értékre.

Üzembehelyezési jegyzékminta

Íme egy mintarészlet az üzembehelyezési jegyzékből:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: contoso-microservice
spec:
  replicas: 10                      # Tells K8S the number of pods needed to process the Redis list items
  selector:                         # Define the wrapping strategy
    matchLabels:                    # Match all pods with the defined labels
      app: contoso-microservice     # Labels follow the `name: value` template
  template:                         # Template of the pod inside the deployment
    metadata:
      labels:
        app: contoso-microservice
    spec:
      containers:
        - image: mcr.microsoft.com/mslearn/samples/redis-client:latest
          name: contoso-microservice

A mintajegyzékben replicas 10 értékre van állítva, amely a legmagasabb szám, amelyet az események maximális számának feldolgozásához szükséges replikákhoz állíthatunk be. Ez azonban azt eredményezi, hogy az alkalmazás túl sok erőforrást használ fel a nem nyilvános időszakokban, ami a fürt többi üzembe helyezését is éheztetheti.

Az egyik megoldás egy különálló HPA használata a podok processzorhasználatának monitorozására, ami jobb megoldás, mint a manuális skálázás mindkét irányban. A HPA azonban nem a Redis-listához kapott események számára összpontosít.

A legjobb megoldás a KEDA és a Redis-skálázó használata a lista lekérdezéséhez és annak megállapításához, hogy több vagy kevesebb podra van-e szükség az események feldolgozásához.