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


Azure SQL Edge-tároló üzembe helyezése a Kubernetesben

Fontos

Az Azure SQL Edge 2025. szeptember 30-án megszűnik. További információkért és a migrálási lehetőségekért tekintse meg a kivonásról szóló közleményt.

Feljegyzés

Az Azure SQL Edge már nem támogatja az ARM64 platformot.

Az Azure SQL Edge üzembe helyezhető Kubernetes-fürtön IoT Edge-modulként is a Kubernetesen futó Azure IoT Edge-en keresztül, vagy önálló tároló podként. A cikk további részében a Kubernetes-fürtök különálló tárolótelepítésére összpontosítunk. Az Azure IoT Edge Kubernetesen való üzembe helyezéséről további információt az Azure IoT Edge-ben a Kubernetesen (előzetes verzió) talál.

Ez az oktatóanyag bemutatja, hogyan konfigurálhat magas rendelkezésre állású Azure SQL Edge-példányt egy Kubernetes-fürt tárolójában.

  • Sa-jelszó létrehozása
  • Tároló létrehozása
  • Az üzembe helyezés létrehozása
  • Csatlakozás az SQL Server Management Studióval (SSMS)
  • Hiba és helyreállítás ellenőrzése

A Kubernetes 1.6-os és újabb verziói támogatják a tárosztályokat, az állandó kötet jogcímeit és az Azure-lemezkötet típusát. Az Azure SQL Edge-példányokat natív módon hozhatja létre és kezelheti a Kubernetesben. A cikkben szereplő példa bemutatja, hogyan hozhat létre üzembe helyezést a megosztott lemez feladatátvevő fürtpéldányához hasonló magas rendelkezésre állású konfiguráció eléréséhez. Ebben a konfigurációban a Kubernetes a fürt vezénylője. Ha egy tárolóban egy Azure SQL Edge-példány meghibásodik, a vezénylő elindítja a tároló egy másik példányát, amely ugyanahhoz az állandó tárolóhoz csatlakozik.

Az Azure SQL Edge diagramja Egy Kubernetes-fürtben.

Az előző ábrán azure-sql-edge egy pod tárolója látható. A Kubernetes vezényli a fürt erőforrásait. A replikakészlet biztosítja, hogy a pod egy csomóponthiba után automatikusan helyreálljon. Az alkalmazások csatlakoznak a szolgáltatáshoz. Ebben az esetben a szolgáltatás egy terheléselosztót jelöl, amely egy IP-címet üzemeltet, amely a hiba után azure-sql-edgeis ugyanaz marad.

Az alábbi ábrán a azure-sql-edge tároló sikertelen volt. Vezénylőként a Kubernetes garantálja a replikakészlet kifogástalan állapotú példányainak megfelelő számát, és a konfigurációnak megfelelően elindít egy új tárolót. A vezénylő elindít egy új podot ugyanazon a csomóponton, és azure-sql-edge újra csatlakozik ugyanahhoz az állandó tárhoz. A szolgáltatás az újra létrehozott azure-sql-edgeszolgáltatáshoz csatlakozik.

Az Azure SQL Edge diagramja egy Kubernetes-fürtben a pod meghibásodása után.

Az alábbi ábrán a tárolót üzemeltető azure-sql-edge csomópont meghiúsult. A vezénylő elindítja az új podot egy másik csomóponton, és azure-sql-edge újra csatlakozik ugyanahhoz az állandó tárhoz. A szolgáltatás az újra létrehozott azure-sql-edgeszolgáltatáshoz csatlakozik.

Egy Kubernetes-fürtön lévő Azure SQL Edge diagramja a csomópont meghiúsulása után.

Előfeltételek

  • Kubernetes-fürt

    • Az oktatóanyaghoz Kubernetes-fürt szükséges. A lépések a kubectl használatával kezelik a fürtöt.

    • Az oktatóanyag célja az Azure Kubernetes Service használata az Azure SQL Edge üzembe helyezéséhez. Lásd: Azure Kubernetes Service-fürt üzembe helyezése egy egycsomópontos Kubernetes-fürt létrehozásához és az AKS-hez való csatlakozáshoz kubectlaz AKS-ben.

    Feljegyzés

    A csomóponthibák elleni védelemhez egy Kubernetes-fürtnek több csomópontra van szüksége.

  • Azure CLI

    • Az oktatóanyag utasításait az Azure CLI 2.10.1-ben ellenőriztük.

Kubernetes-névtér létrehozása az SQL Edge üzembe helyezéséhez

Hozzon létre egy új névteret a Kubernetes-fürtben. Ez a névtér az SQL Edge és az összes szükséges összetevő üzembe helyezésére szolgál. További információ a Kubernetes-névterekről: névterek.

kubectl create namespace <namespace name>

Sa-jelszó létrehozása

Hozzon létre egy SA-jelszót a Kubernetes-fürtben. A Kubernetes bizalmas konfigurációs információkat, például titkos jelszavakat kezelhet.

A következő parancs létrehoz egy jelszót az SA-fiókhoz:

kubectl create secret generic mssql --from-literal=MSQL_SA_PASSWORD="MyC0m9l&xP@ssw0rd" -n <namespace name>

Cserélje le MyC0m9l&xP@ssw0rd egy összetett jelszóra.

Tároló létrehozása

Konfiguráljon állandó kötetre és állandó kötetre vonatkozó jogcímet a Kubernetes-fürtben. Végezze el a következő lépéseket:

  1. Hozzon létre egy jegyzékfájlt a tárolási osztály és az állandó kötet jogcímének meghatározásához. A jegyzék meghatározza a tárkiépítési szolgáltatót, a paramétereket és a visszaigénylési szabályzatot. A Kubernetes-fürt ezt a jegyzékfájlt használja az állandó tároló létrehozásához.

    Az alábbi yaml-példa egy tárolási osztályt és egy állandó mennyiségi jogcímet határoz meg. A tárosztály-kiépítés azért van azure-disk, mert ez a Kubernetes-fürt az Azure-ban található. A tárfiók típusa a következő Standard_LRS: . Az állandó kötet jogcím neve mssql-data. Az állandó mennyiségi jogcím metaadatai egy megjegyzést tartalmaznak, amely visszakapcsozza a tárosztályhoz.

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
         name: azure-disk
    provisioner: kubernetes.io/azure-disk
    parameters:
      storageaccounttype: Standard_LRS
      kind: managed
    ---
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: mssql-data
      annotations:
        volume.beta.kubernetes.io/storage-class: azure-disk
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 8Gi
    

    Mentse a fájlt (például pvc.yaml).

  2. Hozza létre az állandó mennyiségi jogcímet a Kubernetesben.

    kubectl apply -f <Path to pvc.yaml file> -n <namespace name>
    

    <Path to pvc.yaml file> az a hely, ahová a fájlt mentette.

    Az állandó kötet automatikusan azure-tárfiókként jön létre, és az állandó kötet jogcíméhez van kötve.

    Az állandó kötet jogcímparancsának képernyőképe.

  3. Ellenőrizze az állandó mennyiségi jogcímet.

    kubectl describe pvc <PersistentVolumeClaim>  -n <name of the namespace>
    

    <PersistentVolumeClaim> az állandó kötet jogcímének neve.

    Az előző lépésben az állandó mennyiségi jogcím neve mssql-data. Az állandó kötet jogcímével kapcsolatos metaadatok megtekintéséhez futtassa a következő parancsot:

    kubectl describe pvc mssql-data  -n <namespace name>
    

    A visszaadott metaadatok egy úgynevezett Volumeértéket tartalmaznak. Ez az érték a blob nevére lesz leképzve.

    Képernyőkép a visszaadott metaadatokról, beleértve a Kötetet is.

  4. Ellenőrizze az állandó kötetet.

    kubectl describe pv -n <namespace name>
    

    kubectl az állandó kötetre vonatkozó metaadatokat adja vissza, amely automatikusan létre lett hozva, és az állandó kötet jogcíméhez van kötve.

Az üzembe helyezés létrehozása

Ebben a példában az Azure SQL Edge-példányt üzemeltető tároló kubernetes-üzembehelyezési objektumként van leírva. Az üzembe helyezés létrehoz egy replikakészletet. A replikakészlet létrehozza a podot.

Ebben a lépésben hozzon létre egy jegyzékfájlt, amely az Azure SQL Edge Docker-rendszerkép alapján írja le a tárolót. A jegyzék az mssql-data állandó kötet jogcímére és a mssql Kubernetes-fürtre már alkalmazott titkos kódra hivatkozik. A jegyzék egy szolgáltatást is ír le. Ez a szolgáltatás egy terheléselosztó. A terheléselosztó garantálja, hogy az IP-cím megmarad az Azure SQL Edge-példány helyreállítása után.

  1. Hozzon létre egy jegyzékfájlt (egy YAML-fájlt) az üzembe helyezés leírásához. Az alábbi példa egy üzembe helyezést mutat be, beleértve az Azure SQL Edge-tárolórendszerképen alapuló tárolót is.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: sqledge-deployment
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: sqledge
      template:
        metadata:
          labels:
            app: sqledge
        spec:
          volumes:
            - name: sqldata
              persistentVolumeClaim:
                claimName: mssql-data
          containers:
            - name: azuresqledge
              image: mcr.microsoft.com/azure-sql-edge:latest
              ports:
                - containerPort: 1433
              volumeMounts:
                - name: sqldata
                  mountPath: /var/opt/mssql
              env:
                - name: MSSQL_PID
                  value: "Developer"
                - name: ACCEPT_EULA
                  value: "Y"
                - name: MSSQL_SA_PASSWORD
                  valueFrom:
                    secretKeyRef:
                      name: mssql
                      key: MSSQL_SA_PASSWORD
                - name: MSSQL_AGENT_ENABLED
                  value: "TRUE"
                - name: MSSQL_COLLATION
                  value: "SQL_Latin1_General_CP1_CI_AS"
                - name: MSSQL_LCID
                  value: "1033"
          terminationGracePeriodSeconds: 30
          securityContext:
            fsGroup: 10001
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: sqledge-deployment
    spec:
      selector:
        app: sqledge
      ports:
        - protocol: TCP
          port: 1433
          targetPort: 1433
          name: sql
      type: LoadBalancer
    

    Másolja az előző kódot egy új, névvel ellátott sqldeployment.yamlfájlba. Frissítse a következő értékeket:

    • value: "Developer"MSSQL_PID: Beállítja a tárolót az Azure SQL Edge Developer Edition futtatására. A fejlesztői kiadás nincs éles adatokhoz licencelve. Ha az üzembe helyezés éles használatra készült, állítsa a kiadást a következőre Premium: .

      Feljegyzés

      További információ: Az Azure SQL Edge licenceléséhez.

    • persistentVolumeClaim: Ehhez az értékhez egy bejegyzésre claimName: van szükség, amely megfelel az állandó kötet jogcíméhez használt névnek. Ebben az oktatóanyagban a következőt használjuk: mssql-data.

    • name: MSSQL_SA_PASSWORD: Konfigurálja a tárolórendszerképet az sa-jelszó beállításához az ebben a szakaszban meghatározott módon.

      valueFrom:
        secretKeyRef:
          name: mssql
          key: MSSQL_SA_PASSWORD
      

      Amikor a Kubernetes telepíti a tárolót, az a jelszó értékének lekéréséhez elnevezett mssql titkos kódra hivatkozik.

    Feljegyzés

    A szolgáltatástípus használatával LoadBalancer az Azure SQL Edge-példány távolról (az interneten keresztül) elérhető az 1433-es porton.

    Mentse a fájlt (például sqledgedeploy.yaml).

  2. Hozza létre az üzembe helyezést.

    kubectl apply -f <Path to sqledgedeploy.yaml file> -n <namespace name>
    

    <Path to sqldeployment.yaml file> az a hely, ahová a fájlt mentette.

    Képernyőkép az üzembe helyezési parancsról.

    Létrejön az üzembe helyezés és a szolgáltatás. Az Azure SQL Edge-példány egy tárolóban található, és állandó tárolóhoz van csatlakoztatva.

    A pod állapotának megtekintéséhez írja be a következőt kubectl get pod -n <namespace name>:

    Képernyőkép a Pod lekérése parancsról.

    Az előző képen a pod állapota Running. Ez az állapot azt jelzi, hogy a tároló készen áll. A folyamat befejezése eltarthat néhány percig.

    Feljegyzés

    Az üzembe helyezés létrehozása után eltarthat néhány percig, amíg a pod látható lesz. A késés az, hogy a fürt lekéri az Azure SQL Edge-tárolórendszerképet a Docker Hubról. A rendszerkép első lekérése után a későbbi üzembe helyezések gyorsabbak lehetnek, ha az üzembe helyezés olyan csomóponton történik, amelyen már gyorsítótárazott a rendszerkép.

  3. Ellenőrizze, hogy futnak-e a szolgáltatások. Futtassa az alábbi parancsot:

    kubectl get services -n <namespace name>
    

    Ez a parancs a futó szolgáltatásokat, valamint a szolgáltatások belső és külső IP-címét adja vissza. Jegyezze fel a szolgáltatás külső IP-címét mssql-deployment . Ezzel az IP-címmel csatlakozhat az Azure SQL Edge-hez.

    Képernyőkép a Szolgáltatás lekérése parancsról.

    A Kubernetes-fürt objektumainak állapotával kapcsolatos további információkért futtassa a következőt:

    az aks browse --resource-group <MyResourceGroup> --name <MyKubernetesClustername>
    

Csatlakozás az Azure SQL Edge-példányhoz

Ha a leírtak szerint konfigurálta a tárolót, az Azure-beli virtuális hálózaton kívülről csatlakozhat egy alkalmazáshoz. Használja a szolgáltatás fiókját sa és külső IP-címét. Használja a Kubernetes-titkos kódként konfigurált jelszót. További információ az Azure SQL Edge-példányhoz való csatlakozásról: Csatlakozás az Azure SQL Edge-hez.

Hiba és helyreállítás ellenőrzése

A hiba és a helyreállítás ellenőrzéséhez törölheti a podot. Hajtsa végre a következő lépéseket:

  1. Az Azure SQL Edge-t futtató pod listázása.

    kubectl get pods -n <namespace name>
    

    Jegyezze fel az Azure SQL Edge-t futtató pod nevét.

  2. Törölje a podot.

    kubectl delete pod sqledge-deployment-7df66c9999-rc9xl
    

    sqledge-deployment-7df66c9999-rc9xl A podnév előző lépéséből visszaadott érték.

A Kubernetes automatikusan újra létrehozza a podot egy Azure SQL Edge-példány helyreállításához, és csatlakozik az állandó tárolóhoz. Az új pod üzembe helyezésének ellenőrzésére használható kubectl get pods . Annak ellenőrzésére, kubectl get services hogy az új tároló IP-címe megegyezik-e.

Összegzés

Ebben az oktatóanyagban megtanulta, hogyan helyezhet üzembe Azure SQL Edge-tárolókat egy Kubernetes-fürtön a magas rendelkezésre állás érdekében.

  • Sa-jelszó létrehozása
  • Tároló létrehozása
  • Az üzembe helyezés létrehozása
  • Csatlakozás az Azure SQL Edge Management Studioshoz (SSMS)
  • Hiba és helyreállítás ellenőrzése